Acquis d'apprentissage

L'objectif de ce cours est d'apprendre aux étudiants les concepts fondamentaux de la programmation orientée-objet. Les concepts sont illustrés et mis en œuvre à l'aide du langage Java. Au terme de ce cours, l'étudiant sera capable de structurer, spécifier et implémenter des programmes robustes en faisant usage de l'abstraction de données et du sous-typage. Une importance particulière est accordée à la correction des programmes (respect des spécifications, principe de substitution, tests...).

Contenu

Le cours est d'abord motivé par la nécessité de techniques d'abstraction puissantes qui facilitent le développement et la maintenance de programmes de grande taille. Après une brève introduction aux bases du langage Java, il développe l'une après l'autre ces techniques d'abstraction qui font chacune l'objet d'un chapitre : abstraction procédurale (rappel), abstraction de données, abstraction de l'itération et abstraction par hiérarchie de types. Des chapitres supplémentaires sont consacrés aux exceptions, aux génériques et aux tests. Dans chacun des chapitres, les concepts sont illustrés et mis en œuvre à l'aide du langage Java. Le cours se base sur le livre « Program Development in Java: Abstraction, Specification and Object-Oriented Design Barbara » de Liskov et John Guttag, paru chez Addison-Wesley

Méthodes d'enseignement

Cours théorique avec travaux pratiques + classe inversée pour certaines parties.

Méthode d'évaluation

Examen écrit.

Sources, références et supports éventuels

Program Development in Java: Abstraction, Specification and Object-Oriented Design Barbara Liskov & John Guttag, Addison-Wesley

Langue d'instruction