C++ est un langage de programmation compilé permettant la programmation sous de multiples paradigmes (comme la programmation procédurale, orientée objet ou générique).
Ses bonnes performances et sa compatibilité avec le C en font un des langages de programmation les plus utilisés en robotique, où la performance est critique.
L'objectif de ce cours est d'apprendre les bases du C++ via des applications liées à la robotique.
Il aborde en particulier les notions de base telles que les structures de données, l'allocation dynamique, la programmation orientée objet, la lecture de fichiers.
D'autres notions liées au développement logiciel, telles que la création de bibliothèques ou la compilation organisée par CMake, seront étudiées.
1. Introduction au C++
[4cr] Mar 30/08, 08h10-12h15
CM 01 : Introduction au C++
QCM du CM 01 prévu pour le 07/09
TD 01 : Simuler une voiture sur une route circulaire
TD 01 à rendre pour le 19/09/2022 minuit
TD 01 : correction
Utiliser le type float ou le type double ?
Pour utiliser le AppImage de VIBes sur Ubuntu 22.04 : sudo apt install libfuse2
2. Programmation orientée objet
[4cr] Mer 07/09, 08h10-12h15
[4cr] Mar 20/09, 08h10-12h15
CM 02 : Programmation orientée objet
QCM du CM 02 prévu pour le 07/10
TD 02 : Platooning (n voitures autonomes)
TD 02 à rendre pour le 06/10/2022 minuit
Résultat attendu à la fin du TD :
Vidéo de correction du TD 02 :
Pour le cours sur CMake, Git, etc. voir la section 5. Outils de développement
3. Tableaux et pointeurs
[4cr] Ven 07/10, 13h30-17h35
CM 03 : tableaux et pointeurs
QCM du CM 03 prévu pour le 17/11 (remplace le QCM blanc du 18/10)
TD 03 : résoudre un labyrinthe
TD 03 à rendre pour le 16/11/2022 minuit
Vidéo de correction du TD 03 :
4. Fichiers et conteneurs
[4cr] Mar 18/10, 08h10-12h15
Cours 04 : fichiers et conteneurs
QCM du CM 04 prévu pour le 24/11
TD 04 : sérialiser un labyrinthe
TD 04 à rendre pour le 23/11/2022 minuit
TD 04 : correction (fusion des TD 03 et 04)
Labyrinthes à télécharger :
5. Outils de développement
[4cr] Jeu 17/11, 08h10-12h15
[4cr] Jeu 24/11, 08h10-12h15
Cours 05 : outils de développement
QCM du CM 05 (slides 1-24) prévu pour le 08/12
6. Projet MNT : Modèle Numérique de Terrain
[4cr] Jeu 01/12, 08h10-12h15
[4cr] Jeu 08/12, 08h10-12h15
[4cr] Jeu 15/12, 08h10-12h15
Présentation du projet
Deadline : 11/01 (minuit)
Proj : quick start
Proj : configurer CMake (voir aussi : un autre CMakeLists.txt)
Proj : une configuration possible pour WGS84 -> Lambert93
MNT d'une portion de la rade de Brest
- réalisé par l'ENSTA Bretagne / Shom (Brest), 2018, 1m, WGS84 (rendu)
MNT du Lac de Guerlédan
- réalisé par l'ENSTA Bretagne, février 2019, 0.5m, WGS84 (rendu)
Nouveau : comprendre comment optimiser la recherche de triangles dans le maillage (slides)
(optionnel) Infos pour ombrage (hillshading) (ArcGIS)
Comprendre pourquoi les coordonnées Lambert93 sont grandes en Nord
7. Évaluation
[4cr] Jeu 05/01, 08h10-12h15
Sujet de l'évaluation
Fichiers nécessaires pour l'évaluation
Résultat attendu à la fin de l'évaluation :
Archives : évaluation de janvier 2022
Sujet de l'évaluation
Fichiers nécessaires pour l'évaluation