CS-108 – Pratique de la programmation orientée-objet

Introduction

Le but de ce cours est d'approfondir les connaissances théoriques et pratiques en programmation orientée-objets en Java acquises au premier semestre. Il se compose d'une partie « théorique », le cours et les exercices, et d'une partie pratique, le projet.

Le projet de cette année, nommé Isochrone-TL, consiste à réaliser un programme de calcul et de visualisation de cartes isochrones pour les transports publics de la région lausannoise (tl). Ce projet est présenté rapidement dans le document d'introduction et plus en détails dans les descriptions des étapes hebdomadaires, référencées depuis le calendrier ci-dessous.

Forum

Toutes les discussions liées au cours, aux exercices et au projet auront lieu sur la page dédiée au cours de piazza.com. Toutes les personnes inscrites au cours sur IS-Academia devraient avoir été inscrites automatiquement à piazza, mais si tel n'est pas le cas, merci de nous le faire savoir.

Cours

Le calendrier ci-dessous présente les sujets abordés au cours. Les transparents peuvent être obtenus en cliquant sur le sujet. Une version sans animations et en 4 pages par feuilles (4ppf) est également proposée pour l'impression.

Les transparents sont généralement mis à disposition au plus tard le matin du jour où ils sont présentés.

Date Sujet(s)
1 17.02 Introduction au cours / Eléments de génie logiciel (4ppf)
2 24.02 Enumérations et classes imbriquées (4ppf)
3 03.03 Collections et généricité (4ppf)
4 10.03 Mise en œuvre des collections : introduction (4ppf)
5 17.03 Mise en œuvre des listes (4ppf)
6 24.03 Mise en œuvre des ensembles (I) (4ppf)
7 31.03 Mise en œuvre des ensembles (II) (4ppf)
8 07.04 Mise en œuvre des tables associatives (4ppf)
9 14.04 Patrons de conception : Iterator, Builder, fabriques (4ppf)
  21.04 Vacances de Pâques
10 28.04 Patrons : Adapter, Observer, MVC (4ppf)
11 05.05 Patrons : Strategy, Decorator, Composite (4ppf)
12 12.05 Héritage et modifiabilité (4ppf)
13 19.05 Généricité avancée / gestion mémoire (4ppf)
14 26.05 Pas de cours : projet de 13h à 17h en CO

Exercices

Le calendrier ci-dessous présente les sujets abordés lors des séances d'exercices. L'énoncé de chaque série peut être obtenu en cliquant sur le sujet.

Date Sujet(s)
1 19.02 Test unitaire (corrigé)
2 26.02 Images continues 1 (corrigé)
3 05.03 Images continues 2 (corrigé)
4 12.03 Animations (corrigé)
5 19.03 Listes (corrigé)
6 26.03 Ensembles par hachage (corrigé)
7 02.04 Ensembles par arbres de recherche (corrigé)
8 09.04 Examen intermédiaire
9 16.04 Itérateurs (corrigé)
  23.04 Vacances de Pâques
10 30.04 Diagrammes à tige et à feuille (corrigé)
11 07.05 Flots et cryptographie (corrigé)
12 14.05 Piles immuables (corrigé)
13 21.05 Jokers (solution) / Réponse aux questions en CM1120 (13h15-14h00)
14 28.05 Pas d'exercices : projet de 13h à 15h en CO

Projet

Le calendrier ci-dessous présente le découpage en étapes du projet. On accède à la description d'une étape en cliquant sur son lien. Les descriptions des étapes sont mises à disposition au cours du semestre, généralement une semaine avant l'échéance de l'étape.

Vous êtes libres de travailler à votre rythme, mais il est néanmoins fortement conseillé d'avoir toujours terminé les étapes aux dates données, afin de ne pas prendre de retard. De plus, pour chacun des deux rendus, vous devez absolument fournir les fichiers demandés à la date du rendu.

Le projet se fait par groupes de 2 personnes au maximum. La formation de ces groupes est libre et peut changer au cours du semestre, pour peu que les directives concernant le plagiat soient respectées. En particulier, si deux personnes ayant travaillé en commun se séparent, elles doivent se partager le code et ne peuvent chacune l'emporter en totalité de leur côté.

Date Sujet(s)
1 21.02 (1) Introduction / (2) Configuration d'Eclipse / (3) Points
2 28.02 Dates et heures
3 07.03 Arrêts, services et horaires
4 14.03 Arcs de graphe
5 21.03 Graphe et arbre des trajets
6 28.03 Lecture des horaires
7 04.04 Entretiens / Recherche d'horaire
8 11.04 Rendu intermédiaire (tests) / Cartes en tuiles
9 18.04 Vendredi Saint
  25.04 Vacances de Pâques
10 02.05 Tuiles de cartes isochrones
11 09.05 Interface graphique initiale
12 16.05 Interface graphique finale
13 19.05 Rendu final anticipé (pour bonus)
  23.05 Pas de projet : Examen final de 11h à 15h
14 28.05 Rendu final ou Rendu bonus

Equipe

Enseignant