Descriptif
Le cours s'architecture en 3 grands blocs :
-. la présentation des concepts objets : la généricité, la spécialisation ou déspécialisation, la sérialisation ainsi que les méthodes et paradigme de programation comme les modèles objets (objet models) les patrons de conception (design patterns). La modélisation dans des langages de modélisation comme UML sera rapidement abordé.
-. la présentation des constructions offertes par les différents langages de programmation objet, l'utilisation et la mise-en-ouvre des différents concepts.
-. un projet permettant aux étudiants d'aller de la modélisation d'un problème à l'implantation en C++ en utilisant les notions précédemment acquises.
Diplôme(s) concerné(s)
Parcours de rattachement
Pour les étudiants du diplôme Diplôme d'Ingénieur de l'Ecole Nationale Supérieure de Techniques Avancées
Aucun pré-requis.
Format des notes
Numérique sur 20Littérale/grade européenPour les étudiants du diplôme Diplôme d'Ingénieur de l'Ecole Nationale Supérieure de Techniques Avancées
Vos modalités d'acquisition :
- le rattrapage est obligatoire si :
- Note initiale < 6
- le rattrapage peut être demandé par l'étudiant si :
- 6 ≤ note initiale < 10
- Crédits ECTS acquis : 4 ECTS
- Scientifique acquis : 4
Le coefficient de l'UE est : 4
La note obtenue rentre dans le calcul de votre GPA.
L'UE est évaluée par les étudiants.
Programme détaillé
1. CM: Présentation de la programmation objet. Notion d'objets de classe. Création, instanciation et finalisation/destruction.
2. TD: <a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD01/TD01.html">TD01</a> [<a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD01/TD01.pdf">pdf</a>] -> Elements de solution [<a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD01_elements_sol.zip">zip</a>]
Présentation des syntaxes C++ et Java. Introduction aux objets. Ecriture de classes en C++ et en Java.
<a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/OOP_cpp_java_charp.html">Glossaire_POO</a> [<a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/OOP_cpp_java_charp_md.pdf">pdf</a>]
3. CM: Introduction de l'héritage. Opposition entre héritage simple et multiples (Problèmes de l'héritage multipe)
4. TD: <a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD02/TD02.html">TD02</a> [<a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD02/TD02.pdf">pdf</a>] -> Elements de solution [<a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD02/TD02_sol.tar.gz">.tar</a>]
Hiérarchie de classes en C++, C# et Java.
Introduction du polymorphisme.
5. CM: <a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD03/Lecture03.pdf">Lecture03</a>
Polymorphisme et surchages.
6. TD: <a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD03/TD03.html">TD03</a> [<a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD03/TD03.pdf">pdf</a>]
Etude de l'utilisation du polymorphisme. Evaluation de l'impact sur la conception et les performances.
7. CM: La programmation par contrat. Version native (Java, C#) par rapport à la version ad hoc (C++)
8. TD: <a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD04/TD04.html">TD04</a> [<a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD04/TD04.pdf">pdf</a>]
Définition d'interface. Classe virtuelle en C++ et interface en C#/Java. Différence dans les deux approches.
9. CM: La robustesse des applications: Comment récupérer d'une violation d'un contrat
10. TD: <a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD05/TD05.html">TD05</a> [<a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD05/TD05.pdf">pdf</a>]
Les exceptions
11. CM: La notion de pattern. Définition des patterns. Définition d'un zoo de patterns.
12. TD: La généricité
<a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD06/TD06.html">TD06</a> [<a href="http://perso.ensta-paristech.fr/~paun/ENSTA/IN204/TD06/TD06.pdf">pdf</a>]
13. CM: Premiers pas vers les architectures objets. La notion de composant.
14. TD: Utilisation par spécialisation de patterns prédéfinis et implantation
15. CM: Modèle d'architectures objets
16. TD: Définition de composants en C#. Exportation et interopérabilité.
17. CM: Parallélisme et Programmation Objet. Apport des objets dans la mise en œuvre de la concurrence.
18. TD: La STL
19. CM: Programmation distribuée & Programmation objets
20. TD: Programmation système & parallèle
21. CM: Dernières évolution des langages au regard de C1y et de C# 5.0
22. TD: Expérimentation des nouvelles approches + Présentation des projets
23. TD: Séance consacrée au projet
24. TD: Séance consacrée au projet
25. TD: Séance consacrée au projet