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.
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 IGR201 : Interactive 2D/Mobile/Web Application Development
- Filère IGR : Filière 3D et Systèmes Interactifs