Programmation orientée objets 2
Licence InformatiqueParcours Informatique
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.
Disciplines
- Informatique