Introduction à la Programmation Orientée Objet



Equipe pédagogique

  • Valentin HONORE (ENSIIE, responsable du cours)
  • Nicolas THIERION (Takima)

  • Emploi du temps

    Date Heure Type de séance
    27/01 14h - 17h45 x2 Cours
    03/02 14h - 17h45 x2 TP
    23/02 09h - 12h45 x2 Cours
    24/02 09h - 12h45 x2 TP
    08/03 09h - 12h45 x2 TP
    15/03 09h - 12h45 x2 Cours
    22/03 09h - 12h45 x2 TP
    30/03 14h - 17h45 x2 TP
    05/04 14h - 17h45 x2 TP
    06/04 14h - 17h45 x2 TP
    13/04 14h - 15h45 Révisions
    13/04 16h - 17h45 Examen écrit
    19/04 09h - 12h45 TP noté

    Supports de cours 2022 - 2023

    Vous trouverez ci-joint les slides présentées lors des séances de cours. Les slides en elles-mêmes ne suffisent pas, il faut écouter la présentation attentivement et surtout pratiquer la programmation en Java et les principes de modélisation.

    Les slides seront ajoutées au fur et à mesure des séances.

    N'hésitez pas à me signaler des typos ou erreurs (ça peut arriver!)
    1. Introduction et organisation du cours
    2. Eléments de programmation Java
    3. Tableaux, tuples, objets et classes
    4. Méthodes de classe, méthodes d'instance, constructeur et encapsulation'
    5. Héritage, classes abstraites, interfaces
    6. Exceptions, gestion et types d'exception
    7. Classes génériques
    8. Collections d'éléments et arbre d'héritage, tables d'association
    9. Classes internes, classes internes de méthode, classes anonymes, fonctions lambda
    10. Modélisation UML, diagrammes de cas d'utilisation, séquence, classe et états-transtitions
    11. Introduction aux patrons de conception, présentation de Singleton, Factory et Strategy
    12. Principes SOLID et bonnes pratiques de conception

    Devoirs maison

    Chaque demi-journée de cours fera l'objet d'un devoir maison sous la forme d'exercices de programmation.
    L'objectif est de vous entraîner à programmer en Java et mettre en pratique les notions vues en cours.

    Les devoirs maison ne doivent pas vous prendre plus de 2-3h. Il y aura des questions bonus à faire pour les plus motivé.e.s!

    Vos codes doivent être commentés, et indiqués les choix d'implémentation si nécessaire.
    Toute erreur de compilation ou plantage à l'exécution entraînera la note de 0.

    Vous fournirez également un makefile permettant de compiler et lancer votre classe exécutable.

    Le travail attendu est un travail individuel.

    Vos rendus doivent être fait par mail, sous la forme d'une archive avec vos sources avec la dénomination suivante
    DMX_nom_prenom.tar.gz
    où X est le numéro du DM, avec ensuite vos nom et prénom.

    Le sujet du mail doit être de la formet
    [IPOO DM X]
    où X est le numéro du DM concerné.

    Vos archives seront à envoyer à l'adresse
    valentin dot honore at ensiie dot fr

  • Devoir maison n°1 [FINI]
  • Devoir maison n°2 [FINI]

  • Sources

    Développons en Java, tutoriel en ligne de J.M Doudoux (pour la partie sur les fonctions lambda)
    UML en français, cours d'UML en libre accès, pour la partie modélisation en UML
    Le cours de Delphine Longuet (LRI) pour la partie UML
    "La programmation orientée objet" par Hugues BERSINI, Librairie Eyrolles
    "Head First Design Patterns" par Elisabeth & Eric Freeman, O'Reilly's Head First series [PDF]

    Remerciements

    Gaël THOMAS (Télécom SudParis) pour les supports de cours Java et les exercices de DM!