- Enseignant : William Flageol
- Horaire du groupe, session d'automne 2021 :
- Cours : Jeudi, 15h30 - 18h30, 4020-R
- Laboratoires : Jeudi, 17h00 - 18h30, 3043-R et 3045-R
- Communication :
- Discord
- Courriel: [email protected], [email protected]
Les notes de cours vont reprendre des principes de base de la programmation orientée objet, mais du point de vue du génie logiciel et non plus de l'informatique pure. Pour tous les cours passé le premier, la lecture des notes de cours de la semaine précédente est obligatoire pour vous préparer à bien comprendre les notions et exemples qui seront démontrées en présentation.
Les notes de cours seront mises à disposition au fur et à mesure sur ce Github.
-
Les dates de remise s'entendent sur l'heure de l'est, à 23:00 le jour de la date de remise. Tout rendu hors délais recevra automatiquement la note de zéro (0).
-
Les règles concernant le plagiat seront appliquées sans aucune tolérance.
Début |
Remise |
Travail à rendre |
Objectif |
Poids |
09-09 | 10-21 | Comprendre l'utilité de la conception. | 10% | |
09-16 | 10-21 | Gérer du code légataire. | 20% | |
11-18 | 12-16 | Utiliser les patrons de conception et expérimenter avec des concepts avancés | 30% | |
10-07 | 11-04 | Implémenter un logiciel de jeu non-trivial | 20% | |
11-11 | 12-09 | Appliquer un changement majeur à un logiciel | 20% |
Pour les travaux et le projet de session, le rendu se fera à travers la plateforme Github Classroom (les liens pour joindre la plateforme sont dans les pages de description des différents travaux). Les dépôts de code seront clônés automatiquement par un script, et tout travail non rendu via ce biais ou hors délais ne sera pas évalué. La couverture fonctionnelle de vos travaux est automatiquement vérifiée par la bonne exécution de scénarios de tests unitaires.
Il n'y aura pas d'examen durant cette session. À la place, les travaux et projet de session couvriront l'essentiel de la matière en vous demandant d'appliquer les concepts vus dans les notes de cours et en classe. Les pondérations réflètent la difficulté et niveau d'effort relatif de chaque travail.
Le projet de session est à faire en équipe (4 ou 5 personnes). L'évaluation se fera par le biais de présentations de chacune des équipes. Les présentations sont à huis clos. La correction tiendra compte du nombre de membres des équipes. Un dépôt du code complet du projet devra aussi être fait sur Github.
Veuillez entrer les membres de votre équipe dans ce classeur avant le 7 octobre (date de début du travail de session).
Les travaux et projets sont placés de façon à balancer la charge de travail au cours de la session.
Semaine |
Date |
Sujet |
Travail |
1 | 2021-09-09 | ||
2 | 2021-09-16 | ||
3 | 2021-09-23 | ||
4 | 2021-09-30 | ||
5 | 2021-10-07 | ||
6 | 2021-10-14 | ||
7 | 2021-10-21 |
Séance de travail libre |
Remise des TP 1 et 2 |
8 | 2021-10-28 |
Semaine de travaux et d'études |
|
9 | 2021-11-04 |
Présentations phase 1 |
Présentation de la phase 1 |
10 | 2021-11-11 |
Patrons de conception (singleton, observateur, décorateur, façade, fabrique et adaptateur) |
Projet de session - Phase 2 |
11 | 2021-11-18 |
Patrons de conception (state, builder, prototype, composite, visiteur, template method et proxy) |
|
12 | 2021-11-25 |
Étude de cas |
|
13 | 2021-12-02 |
Tests unitaires, inversion de dépendence et types génériques |
|
14 | 2021-12-09 |
Présentations phase 2 |
Présentation de la phase 2 |
15 | 2021-12-16 |
Séance de travail |
Remise TP3 |
Le cours utilise la grille d'évaluation suivante. La note de passage est de 50%.