Descriptif
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.
- Moodle Période 1 (en Français)
 - Moodle Période 2 (en Français)
 - Moodle Période 2 (in English)
 - Synapses
 
Programme
- Principes et paradigmes:
 - 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++:
 - 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.
 
Travaux pratiques et supports de cours
- Principes et paradigmes
 
- Programmation orientée objet et autres concepts illustrés en C++
 - Cours
 - Travaux Pratiques
 - Voir aussi : cplusplus.com C++ Reference Boost
 
- Programmation événementielle et interfaces graphiques Java
 - Cours
 - Travaux Pratiques
 - Voir aussi : Doc Swing / Doc Java / Démo Swing / Démo Java2D
 
- Liens utiles
 - Toolkit graphique Qt
 - TP Gdb
 - Tutoriel C# (H.Mossenbock - U. Linz, Austria)
 
- Pour aller plus loin
 - UE IG02 : Interactive 2D/Mobile/Web Application Development
 - Filère IGR : Filière 3D et Systèmes Interactifs