- Équipe Enseignante :
- Professeur titulaire : Sébastien Mosser (Site web personnel, Groupe de recherche ACE)
- Enseignant : William Flageol
- Démonstrateur : À déterminer
- Correcteur : À déterminer
- Horaire du groupe, session d'été 2020 :
- Cours : Lundi, 09h30 - 12h30, Zoom
- Atelier : Mercredi, 09h30 - 11h30, Zoom
- Communication :
- Mattermost
- Courriel (À éviter)
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 le Github du cours.
-
Les dates de remise s'entendent sur le fuseau horaire de Montréal, à 23:50 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 |
05-04 | 06-15 | Comprendre l'utilité de la conception et gérer du code légataire. | 20% | |
07-13 | 08-10 |
Travail 2 |
Utiliser les patrons de conception et expérimenter avec des concepts avancés | 30% |
06-01 | 06-29 |
Projet de session - Phase 1 |
Implémenter un logiciel de jeu non-trivial | 20% |
07-06 | 08-03 |
Projet de session - Phase 2 |
Appliquer un changement majeur à un logiciel | 30% |
Pour les travaux et le projet de session, le rendu se fera à travers la plateforme Github Classroom. 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 1 à 4 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 (3 ou 4 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 déposé sur Github.
Les travaux et projets sont placés de façon à balancer la charge de travail au cours de la session.
À noter que la date limite d'abandon sans échec (XX) pour cette session est le 20 août, soit à la fin du cours.
Semaine |
Date |
Sujet |
Travail |
Séance de cours |
1 | 2020-05-04 | |||
2 | 2020-05-11 |
Encapsulation, Types et Interfaces |
Travail 1 - Poker |
|
3 | 2020-05-18 |
Composition versus Héritage, Tests |
||
4 | 2020-05-25 |
Principes de conception (GRASP, SOLID) |
||
5 | 2020-06-01 |
Étude de cas Jeu de Dés |
Projet de session - Phase 1 |
|
6 | 2020-06-08 |
Intro aux Patrons de Conception (padawan) |
||
7 | 2020-06-15 |
Séance de travail |
Remise du travail 1 |
|
8 | 2020-06-22 |
Étude de cas |
||
9 | 2020-06-29 |
Présentations |
Présentation de la phase 1 |
|
10 | 2020-07-06 |
Patrons de conception (chevalier) |
Projet de session - Phase 2 |
|
11 | 2020-07-13 |
Patrons de conception (maître) |
Travail 2 |
|
12 | 2020-07-20 |
Étude de cas |
||
13 | 2020-07-27 |
Code as a crime scene |
||
14 | 2020-08-03 |
Présentations |
Présentation de la phase 2 |
|
15 | 2020-08-10 |
Séance de travail |
Remise travail 2 |
Le cours utilise la grille d'évaluation standard de l'UQAM définie dans RESULTATS. La note de passage est de 50%.
- Introduction to Software Design with Java. Springer, 2019.
- Martin Robillard (McGill University).
- Accès PDF SpringerLink via UQAM
- UML@Classroom, Springer Verlag, 2015.
- Martina Seidl, Marion Scholz, Christian Huemer & Gerti Kappel (Université de Technologie de Vienne).
- Accès PDF SpringerLink via UQAM
- Site web ressource (diapos additionelles)
- Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives, Addison Wesley, 2011.
- Nick Rozanski & Eoin (pronounced “Owen”) Woods.
- Disponible en bibliothèque (BU Sciences, cote QA 76.76 D47 R69 .2012)
- Head First Design Patterns, a brain friendly guide. O'REILLY.
- Eric Freeman, Elisabeth Robson.
- (Existe en version française: "Design patterns tête la première")
- Clean Code.
- Robert Martin. Prentice Hall.
- Disponible en bibliothèque (BU Sciences, cote QA 76.76 D47 M38 .2009)
- (Existe en version française: "Coder proprement")
- Pragmatic Unit Testing. The pragmatic programmers.
- Jeff Langr, with Andy Hunt and Dave Thomas.
- Disponible en bibliothèque (BU Sciences, cote QA 76.73 J38 L36 .2015)
- Implementing Domain-Driven Design, Addison-Wesley Professional, 2013.
- Vaughn Vernon
- Design Patterns: Elements of Reusable Object-Oriented Software, Addison Wesley, 1994.
- Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides.
- Disponible en bibliothèque (BU Sciences, cote QA76.64D49)
- (Existe en version française: "Design patterns catalogue de modèles de conception réutilisables")
- Refactoring: Improving the Design of Existing Code, Addison Wesley, 2018 (2nd edition)
- Martin Fowler.
- Disponible en bibliothèque (BU Sciences, cote QA 76.76 R42 F69 .1999)
Tout acte de plagiat, fraude, copiage, tricherie ou falsification de document commis par un.e étudiant.e, de même que toute participation à ces actes ou tentative de les commettre, à l’occasion d’un examen ou d’un travail faisant l’objet d’une évaluation ou dans toute autre circonstance, constituent une infraction au sens de ce règlement.
La liste non limitative des infractions est définie comme suit :
- la substitution de personnes ;
- l’utilisation totale ou partielle du texte d’autrui en le faisant passer pour sien ou sans indication de référence ;
- la transmission d’un travail aux fins d’évaluation alors qu’il constitue essentiellement un travail qui a déjà été transmis aux fins d’évaluation académique à l’Université ou dans une autre institution d’enseignement, sauf avec l’accord préalable de l’enseignante, l’enseignant ;
- l’obtention par vol, manœuvre ou corruption de questions ou de réponses d’examen ou de tout autre document ou matériel non autorisés, ou encore d’une évaluation non méritée ;
- la possession ou l’utilisation, avant ou pendant un examen, de tout document non autorisé ;
- l’utilisation pendant un examen de la copie d’examen d’une autre personne ;
- l’obtention de toute aide non autorisée, qu’elle soit collective ou individuelle ;
- la falsification d’un document, notamment d’un document transmis par l’Université ou d’un document de l’Université transmis ou non à une tierce personne, quelles que soient les circonstances ;
- la falsification de données de recherche dans un travail, notamment une thèse, un mémoire, un mémoire-création, un rapport de stage ou un rapport de recherche.
Les sanctions reliées à ces infractions sont précisées à l’article 3 du Règlement no 18 sur les infractions de nature académique.
Vous pouvez consulter sur le site r18.uqam.ca des capsules vidéos qui vous en apprendront davantage sur l’intégrité académique et le R18, tout en vous orientant vers les ressources mises à votre disposition par l’UQAM pour vous aider à éliminer le plagiat de vos travaux.