·
Le
premier cours magistral est le 11 septembre. Les labos commencent la semaine de
14 septembre.
·
Voir
en BrightSpace
•
Moyenne des 5 devoirs: 20% (4%
par devoir)
•
Labos: 5% (0.5% chacun, 5% pour 10 labos. Il y a 11 labos, mais le premier labo ne
sera pas corrigé)
•
Un quizz 5%
•
Examen de
mi-session: 25%
•
Examen final: 45%
•
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.
· Devoir 1 date de remise: mardi le 29
septembre, 22:00
· Devoir 2 date
de remise: mardi le 13 octobre, 22:00
· Quiz, en classe, vendredi le 16
octobre
· Devoir 3 date
de remise: mardi le 3 novembre, 22:00
· Examen de mi-session - dimanche, le
8 novembre, 18 :00-20:00 (toutes les sections)
· Devoir 4 (en groupes de 2
étudiants), date de remise: mardi le 24 novembre, 22:00
· Devoir 5 (en groupes de 2
étudiants), date de remise: mardi le 8 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
et exercices seront affichés dans le campus virtuel.
David: Lundi 13:00-14:00 dmale026@uottawa.ca (en SITE 5000G)
Owen: Lundi 16:00-17:00 touob053@uottawa.ca
(en SITE 5000G)
Youssef: Mercredi 17:30-18:30 ycher048@uottawa.ca
(en SITE 5000G)
Dominic: Jeudi 16:00-17:00 dpetr069@uottawa.ca
(en SITE 5000G)
Ilyas: Samedi 10:30 - 11:30 iaita020@uottawa.ca
(en SITE 5000G)
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
Livres Python http://python.developpez.com/livres/
Livres Python gratuits en anglais:
How to Think Like a Computer
Scientist by Allen B. Downey
http://www.onlineprogrammingbooks.com/python/