Automne 2025,  ITI 1520 A: Introduction à l’Informatique I 

Horaire et salle de classe

Nouvelles

Évaluation

Devoirs et dates importantes

Notes de cours

Labos

Manuel

Liens utiles

 

Professeur: Diana Inkpen

 

Horaire et salle de classe: Voir uOzone

Heures de bureau: vendredi 14:30-15 :30 en SITE 5015

 

Description: Résolution des problèmes et conception d’algorithmes. Principes de base du génie logiciel: décomposition, documentation, tests et correction. Types de variables, expressions et affectation. Contrôle conditionnel et itératif. Modules et passage de paramètres. Récursivité. Structures de données fondamentales. Introduction aux objets. Applications aux diverses disciplines, incluant le génie.

 

Nouvelles

·       Le premier cours magistral est le 5 septembre. Les labos commencent la semaine de 8 septembre.

·       Voir en BrightSpace

Évaluation

         Moyenne des 5 devoirs: 17.5% (3.5% par devoir)

         Labos:  5.5%   (0.55% chacun, 5.5% pour 10 labos, il y a 11 labos, donc vous pouvez manquer un sans perdre des points)

         Un quizz   5%

         Examen de mi-session:  25% 

         Examen final:  47%

         Bonus pour participer en classe.

 

Règlements

·       La présence au cours est obligatoire. Comme le stipulent l’ensemble des règlements scolaires, l’étudiant(e) qui ne se présente pas à au moins 80 % du cours ne pourra pas écrire l'’examen final.

·       Toutes les composantes du cours (tels que les devoirs, etc.) doivent être remplies sinon l’étudiant(e) pourrait recevoir la note de INC comme note finale (équivalente à un F). Les étudiants qui répètent un cours doivent aussi refaire toutes les composantes du cours, incluant les laboratoires.

·       Règlements de la Faculté de génie.

·       Politique sur le plagiat.

 

Devoirs et dates importantes :

·       Devoir 1 date de remise: mardi le 23 septembre, 22:00

·       Devoir 2 date de remise: mardi le 7 octobre, 22:00

·       Quiz, en classe, vendredi le 10 octobre

·       Devoir 3 date de remise:  mardi le 21 octobre, 22:00

·       Examen de mi-session - dimanche, le 26 octobre, 16:00-17:30 (toutes les sections)

·       Devoir 4 (en groupes de 2 étudiants), date de remise: mardi le 18 novembre, 22:00

·       Devoir 5 (en groupes de 2 étudiants), date de remise: mardi le 2 décembre, 22:00

·       Examen final  (pendant la période d’examens)

Note: Vous aurez à compléter les devoirs à la maison et à remettre via le système de campus virtuel BrightSpace. Tous devoirs devront être remis à temps, sinon vous recevrez une note de 0 pour le devoir non-remis.

 

Logiciels:
    
Python 3. On va utiliser l’éditeur de code IDLE qui arrive avec Python 3.

 

Notes de cours

Notes et exercices seront affichés dans le campus virtuel.

 

Notes de laboratoire  

Notes et exercices seront affichés dans le campus virtuel pour chaque labo. Envoyez vos solutions pour chaque labo par BrightSpace.

Horaire et salles de labos –  voir uOzone pour votre section

 

Assistants à l’enseignement (AE) – heures de bureau: 

Nicholas Dallaire ndall068@uottawa.ca   mardi 11:30-12:30 en UCU 303

Ilyas Ait Ali iaita020@uottawa.ca  jeudi 11:30-12:30 en SITE 5112

Noura Offia yoffi066@uottawa.ca  vendredi 9:00-10:00 en SITE 5058

Rim Ghalbi rghal083@uottawa.ca  mercredi 18:00-19:00 en SITE 5058

Marwa Goudar mgoud101@uottawa.ca  samedi 11:30-12:30 en SITE5058

 

Manuel  (recommandé)

Apprendre à programmer avec Python 3, de Gérard Swinnen, PDF disponible

 

Plan de Cours :

 

Module 1

Concepts généraux du module

1.     Introduction au génie logiciel

2.     Premier programme Python

3.     Algorithmes et modèles logiciels

Objectif general : Vous serez en mesure de développer un programme Python très simple.

Objectifs d'apprentissage

À la fin de ce module, vous serez en mesure de :

1.     Expliquer la production de logiciels (conception des algorithmes et implémentation)

2.     Développer un programme Python qui affiche un message

3.     Expliquer la production d’un modèle logiciel

4.     Expliquer et écrire un algorithme

 

Module 2

Concepts généraux du module

1.     Le langage Python

2.     Opérateurs et précédence

3.     Variables and types de données

4.     Lecture et affichage de valeurs

5.     Fonctions simples

Objectif general: Vous serez en mesure de développer des programmes Python qui font des calculs.

Objectifs d'apprentissage

À la fin de ce module, vous serez en mesure de :

1.     Décrire les caractéristiques du langage Python

2.     Exécuter de calcules en Python

3.     Définir le concept de variable

4.     Exécuter des lectures du clavier et des affichages en Python

5.     Développer des fonctions en Python

 

Module 3

Concepts généraux du module

1.     Modèles logiciels avec branchements

2.     Instructions de branchement en Python

3.     Expressions booléennes

Objectif general: Vous serez en mesure de d'écrire, compiler, et exécuter des programmes Python avec des instructions de branchements.

Objectifs d'apprentissage

À la fin de ce module, vous serez en mesure de :

1.     Identifier et dessiner des diagrammes de modèles logiciels qui permettent une description visuelle des algorithmes

2.     Concevoir des solutions pour des problèmes donnés

3.     Trouvez un algorithme et écrivez un programme Python pour chaque problème donné

4.     Développer une expression booléenne

5.     Évaluer des expressions booléennes complexes

 

Module 4

Concepts généraux du module

1.     Boucles while

2.     Boucle for

Objectif general: Vous serez en mesure de développer des programmes Python avec des boucles.

Objectifs d'apprentissage

À la fin de ce module, vous serez en mesure de :

1.     résoudre des problèmes en Python avec des boucle while

2.     résoudre des problèmes en Python avec des boucle for

 

Module 5

Concepts généraux du module

1.     Listes et boucles

2.     Chaînes de caractères et boucles

Objectif general: Vous serez en mesure de développer des programmes Python avec des listes et des chaînes de caractères.

Objectifs d'apprentissage

À la fin de ce module, vous serez en mesure de :

1.     résoudre des problèmes en Python avec des listes et des boucles

2.     résoudre des problèmes en Python avec des chaînes de caractères et des boucles

 

Module 6

Concepts généraux du module

1.     Fonctions Python

2.     Passages des paramètres

Objectif general: Vous serez en mesure de comprendre les transferts des paramètres aux fonctions.

Objectifs d'apprentissage

À la fin de ce module, vous serez en mesure :

1.     de définir et d'utiliser des fonctions

2.     de passer des listes comme paramètres et de retourner des listes comme résultats

 

Module 7

Concepts généraux du module

1.     Approfondir les structures de données

Objectif general: Vous serez en mesure de résoudre des problèmes qui utilisent des structures de données.

Objectifs d'apprentissage

À la fin de ce module, vous serez en mesure de :

1.     Apprendre plus de structures de données (tuples, dictionnaires, sets) pour contrôler l’accès aux données.

 

Module 8

Concepts généraux du module

1.     Matrices et listes 2D

2.     Algorithmes sur les matrices

Objectif général : Vous serez en mesure de résoudre des problèmes qui utilisent des matrices.

Objectifs d'apprentissage

À la fin de ce module, vous serez en mesure de :

1.     Créer des matrices et listes 2D

2.     Résoudre des problèmes en utilisant des matrices

 

Module 9

Concepts généraux du module

1.     Algorithmes de recherche et de tri sur les structures de données

Objectif général : Vous serez en mesure de résoudre des problèmes qui nécessitent des algorithmes efficaces de recherche et de tri.

Objectifs d'apprentissage

À la fin de ce module, vous serez en mesure de :

1.     Résoudre des problèmes qui nécessitent parcourir des structures de données de manière efficace pour chercher des éléments ou pour trier les données.

 

Module 10

Concepts généraux du module

1.     Classes et objets

2.     Diagrammes UML et traductions vers Python

3.     Constructeurs

4.     Équivalence des objets

5.     Classes avec des champs complexes

6.     Variables de classe et d’instance

7.     Héritage

8.     Conception de classes

Objectif general: Vous serez en mesure de concevoir des classes et utiliser des objets.

Objectifs d'apprentissage

À la fin de ce module, vous serez en mesure de :

1.     d’identifier le concept de classe et d’objet

2.     d’utiliser des diagrammes UML et d’implémenter des classes simples en Python

3.     d’initialiser des objets

4.     de définir des méthodes pour tester l’équivalence des objets

5.     de créer des classes avec des champs complexes

6.     d’utiliser des variables de classe

7.     de dériver des classes

8.     de résoudre des problèmes complexes avec des objets

 

Module 11

Concepts généraux du module

1.     Définition et illustration de la récursivité

2.     Exemples d’utilisation systématique de la récursivité

Objectif général: Vous serez en mesure de résoudre des problèmes avec des algorithmes récursifs.

Objectifs d'apprentissage

À la fin de ce module, vous serez en mesure :

1.     de reconnaître le concept de fonction récursive

2.     de résoudre des problèmes complexes avec des algorithmes récursifs efficaces

 

Autres références / liens (optionnelles)

Livres Python http://python.developpez.com/livres/

Livres Python gratuits en anglais:

 How to Think Like a Computer Scientist by Allen B. Downey

 Learn Python the Hard Way

 http://www.onlineprogrammingbooks.com/python/