Ce cours est obligatoire pour les filières IGR (P1), SLR et SE (P1 ou P2) ; il est recommandé pour les filières IMA, SD, SR2I
Cette UE présente les principaux langages et approches de programmation. Divers concepts importants ou difficultés typiques sont introduits via une introduction au langage C++, en comparant à d'autres langages comme C ou Java. Le cours comprend enfin une partie consacrée à la programmation événementielle et aux interfaces graphiques Java Swing. Une large part est consacrée aux travaux pratiques, qui visent à la création d'un logiciel complet comprenant une partie principale en C++ communiquant avec une interface graphique Java/Swing servant de télécommande.
Programme :
Cette UE présente les principaux langages et approches de programmation. Divers concepts importants ou difficultés typiques sont introduits via une introduction au langage C++, en comparant à d'autres langages comme C ou Java. Le cours comprend enfin une partie consacrée à la programmation événementielle et aux interfaces graphiques Java Swing. Une large part est consacrée aux travaux pratiques, qui visent à la création d'un logiciel complet comprenant une partie principale en C++ communiquant avec une interface graphique Java/Swing servant de télécommande.
Programme :
- Langages de l'informatique:
- Présentation des principaux langages informatiques et les approches approches associées (impérative, orientée objet, fonctionnelle)
- Programmation orientée objet et autres concepts illustrés en C++11:
- De Java à C++: classes, instances, méthodes, encapsulation, espaces de nommage ; héritage, polymorphisme, méthodes et classes abstraites ; exceptions
- Notions absentes, cachées ou différentes en Java: gestion mémoire, destruction et copie des objets ; pointeurs, références et smart pointers ; passage par valeur et par référence ; constance ; templates et programmation générique ; surcharge des opérateurs ; typage dynamique ; héritage multiple ; sérialisation.
- Programmation événementielle et interfaces graphiques:
- Introduction à Java/Swing, principaux widgets, arbre d'instanciation, gestion des événements (listeners, interfaces, inner classes...), gestion spatiale, graphique et dessin interactif, MVC.
- Enseignant: Elise Bonnail
- Enseignant: Reda Dehak
- Enseignant: Daniel Pires De Sa Medeiros
- Enseignant responsable de l'UE: Eric Lecolinet