Skip to content

Latest commit

 

History

History
361 lines (243 loc) · 6.69 KB

README.md

File metadata and controls

361 lines (243 loc) · 6.69 KB

INF1035 - Concepts Avancés en Objet

Informations Générales

  • 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 :

Objectif du cours

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.

Évaluation & Planning de rendus

  • 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

Travail 1

Comprendre l'utilité de la conception. 10%
09-16 10-21

Travail 2

Gérer du code légataire. 20%
11-18 12-16

Travail 3

Utiliser les patrons de conception et expérimenter avec des concepts avancés 30%
10-07 11-04

Projet de session - Phase 1

Implémenter un logiciel de jeu non-trivial 20%
11-11 12-09

Projet de session - Phase 2

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.

Agenda des séances

Semaine

Date

Sujet

Travail

1 2021-09-09

Introduction : génie logiciel

Travail Pratique 1 - Code Kata : Harry Potter

2 2021-09-16

Encapsulation, types et interfaces

Travail Pratique 2 - Poker

3 2021-09-23

Composition versus héritage, tests

4 2021-09-30

Principes de conception (GRASP, SOLID)

5 2021-10-07

Études de cas Jeu de Dés

Projet de session - Phase 1

6 2021-10-14

Intro aux patrons de conception (stratégie)

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)

Travail Pratique 3

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

Barème

Le cours utilise la grille d'évaluation suivante. La note de passage est de 50%.