Matière
Programmation orientée objets 2
Description
Cette matière a pour objectif apprendre à concevoir une solution à un problème logiciel par la conception d’une solution orientée objets.
Les différents sujets abordés seront :
- Famille de langages : les différents langages orientés, et en particulier les langages orientés objets seront regroupés et classés en fonction des concepts implémenté. Les catégories vues seront : langage orienté objets à classes ou langage orienté objet à prototype ? Langages typés (et règles de typage) ou non typé ? Objet pur ou utilisation possible de type de base ? Langage généralement compilé ou interprété ?
- Famille d'héritage : simple, multiple, dynamique, alimentaire, par interface, par trait, par mixins.
– Gestion des erreurs : protection par exception, programmation par contrat.
– Gestion automatique de la mémoire : principes de fonctionnement du ramasse-miettes. Comparaison d’algorithmes standard de gestion automatique de la mémoire.
- Parallélisme : définition et utilisation de thread, problème des accès concurrent.
Différents langages de programmation pourront être présentés et utilisés au cours de l’UE. En particulier, les langages principalement utilisés seront :
- Java : Langage à classe, typé, semi-compilé ; héritage simple ; interface ; exception ; généricité ; thread ; gestion de la mémoire par ramasse miette
– C++ : Langage à classe, typé, compilé ; héritage multiple ; gestion de la mémoire manuelle ;
Compétences requises
Algorithmique et programmation de base
Bases de la Programmation Orientée Objet (voir UE « Programmation Orientée Objet 1 » du L2 S3)
Connaissances systèmes : adresse mémoire, pile, tas, etc.
Compétences visées
À l'issue de cette UE, un étudiant est capable de :
-
Programmer des solutions orientées objet pour résoudre des problèmes informatiques.
-
Comprendre les différences entre différents langages orientés objet.
-
Prévenir ou réduire les erreurs en utilisant la programmation par contrat ou par la gestion par exceptions.
-
Comprendre la complexité et les implications en termes de performance de l'utilisation des concepts de programmation orienté objet.
-
Utiliser la modélisation orientée objet pour la gestion efficace de projets informatiques d'envergure, en travail collaboratif.
Discipline(s)
- Informatique