S7 INF Renforcement POO
Présentation
Ce cours a pour objectif de renforcer la maîtrise de l'algorithmique, des structures de données et de la programmation orientée objet, en particulier avec le langage Java.
Dans un premier temps, les notions élémentaires de structures de données statiques (enregistrements, tableaux) et dynamiques (tables de hachage, chaînes, arbres) sont rappelées. Ces concepts et leurs variantes sont mis en œuvre et outillés en Java.
Dans un deuxième temps, ces structures élémentaires sont utilisées pour concevoir une authentique API orientée objet sur le modèle de la hiérarchie des collections Java (listes, queues, ensembles, ensembles ordonnés). Cette API est ensuite elle-même utilisée pour réaliser des applications exigeantes en termes de performance.
Pré-requis nécessaires
Connaissances élémentaires de la programmation orientée objet en général et du langage Java en particulier.
Objectifs
- Consolider les acquis de licence concernant la conception et la programmation orientée objet, l’algorithmique élémentaire et les structures de données.
- Illustrer la séparation des préoccupations liées à la conception d’une API, à son utilisation et à sa mise en œuvre.
- Uniformiser les prérequis de programmation Java nécessaires à d’autres UE du M1, quel que soit le parcours d’origine avant l’admission en M1.
Compétences visées
- Savoir utiliser à bon escient les constructions élémentaires du langage Java.
- Reconnaître la solution algorithmique adaptée à un besoin standard de programmation.
- Distinguer l'usage d’une API et sa mise en œuvre.
- Distinguer le besoin fonctionnel du besoin technique.
Bibliographie
- Mickaël Kerboeuf : Fondements de la programmation orientée objet avec Java 8. Références Sciences, Ellipses, décembre 2016, ISBN 9782340014824.
- Mickaël Kerboeuf : Algorithmique et programmation objet. Références Sciences, Ellipses, mai 2020, ISBN 9782340037984.
- James Gosling, Bill Joy, Guy Steele et Gilad Bracha : The Java(TM) Language Specification (3rd Edition). Addison-Wesley Professional, 2005, ISBN 0321246780.
- Erich Gamma, Richard Helm, Ralph Johnson et John Vlissides : Design Patterns, Elements of Reusable Object-oriented Software. Addison-Wesley Longman Publishing Co., 1995, ISBN 0-201-63361-2.
Langue d'enseignement
Français