| Course code | MP01 |
| Course title | Le langage C++ |
| Institution | Mines ParisTech |
| Course address | Ecole des Mines de Paris – 60 boulevard Saint Michel 75272 Paris cedex 6 |
| City | Paris |
| Minimum year of study | 4th year |
| Minimum level of English | None |
| Minimum level of French | Good |
| Key words | Langage orienté objet, typage, héritage, généricité, contrôle d’accès, mécanisme d’exception, gestion de la mémoire, bibliothèque de programmes - STL, introspection |
| Language | French |
| Professor responsible | Valérie Roy, Centre de Mathématiques Appliquées, ENSMP |
| Telephone | +33 4 97 15 70 70 |
| Fax | +33 4 97 15 70 66 |
| valerie.roy@ensmp.fr | |
| Participating professors | Valérie Roy, CMA, cours et travaux pratiques Ce cours a maintenant lieu à Paris. |
| Number of places | Minimum: 6, Maximum: 20, Reserved for local students: |
| Objectives | C++ est devenu le langage industriel normalisé incontournable. En effet, il combine les grandes qualités des langages de haut niveau orientés objets à la puissance des langages proches de la machine. Comme toutes les applications comportent des contraintes de temps d’exécution et d’espace mémoire, il permet l’implémentation des logiciels qui nécessitent une manipulation directe des cibles matérielles (systèmes d’exploitation, drivers de périphériques, réseaux,_) tout en apportant l’expressivité, la réutilisation, la maintenance, la simplicité d’évolution, la facilité de test, la gestion de gros projets, le passage à l’échelle, la stabilité des codes écrits et la portabilité. C++ est un langage généraliste à large spectre. Ayant été intensivement utilisé dans de nombreux domaines, il devient désormais possible de l’utiliser efficacement dans les applications qui imbriquent une grande variété de disciplines : réseau, calcul numérique, applications graphiques, interfaces utilisateur, etc. C++ est un des langages de référence des logiciels libres Open Source. C++ est un des principaux langages utilisés dans le monde industriel et dont la connaissance est indispensable à tout futur ingénieur désireux de s’impliquer dans les nombreux domaines connexes aux technologies de l’information et de la communication. |
| Programme to be followed | Dans le cours nous aborderons exhaustivement toutes les constructions du langage. Lors de travaux pratiques, l’accent est mis sur l’apprentissage du langage lui même, en dehors d’environnement de programmation intégré, afin que les mécanismes de compilation, d’édition de liens, de déboguage et d’exécution soient bien compris Nous introduirons, au besoin, quelques notions d’algorithmique et de complexité nécessaires pour une bonne compréhension des difficultés inhérentes à la programmation. Contenu - la réutilisabilité et la généricité (pour réduire les coûts de développement : mécanismes orientés objets, classes template) ; -le contrôle d’accès (séparation de la spécification et de l’implémentation) ; - le typage fort et le polymorphisme (pour détecter les erreurs le plus tôt possible dans le cycle de développement : structures et classes, dérivation simple et multiple, surcharge des fonctions et des opérateurs, etc.) ; - les mécanismes d’exceptions pour la gestion des erreurs à l’exécution ; - la gestion de la mémoire (mémoire statique, pile d’exécution, mémoire dynamique, surcharge des opérateurs d’allocation et de désallocation) ; - l’introspection sur les types de données lors de l’exécution ; - l’utilisation de la STL, bibliothèque normalisée de classes et de fonctions C++, - l'utilisation de la norme du langage C++.
Support de cours La photocopie des transparents. Les livres cités dans la bibliographie seront consultables et empruntables pendant la durée du cours. |
| Prerequisites | Quelques notions légères de programmation et d’informatique. Nous (re)verrons à la demande des élèves les différentes notions qui pourraient leur faire défaut. |
| Course exam | Projet de programmation avec choix entre différents sujets suivant les thèmes du cours que les élèves souhaiteront approfondir. |
The ATHENS Programme