Format des notes
Numérique sur 20
Littérale/grade européen
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 projetMots clés
Génie Logiciel, Programmation Orientée Objet, C++, JAVA, Projet complexe