·
Le
premier cours magistral est le 5 septembre. Les labos commencent la semaine de
8 septembre.
·
Voir
en BrightSpace
•
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.
· 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
et exercices seront affichés dans le campus virtuel.
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
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/