Créneau
| Sem 1/Sem 3 Sem 3 |
| Aucune |
Prérequis
| Aucun, cependant la formation dispensée en classes préparatoires, y compris BCPST, du langage Python aidera les élèves issus du concours commun à maîtriser certains concepts. De même, beaucoup d'admis sur titre ont déjà suivi en licence un enseignement dans un langage avancé de type C ou Java et leur apprentissage en sera facilité. |
Enseignant responsable
|
Pascal MONASSE
|
Equipe enseignante
| Pascal MONASSE, Clement RIU, Thomas BELOS, Thomas DAUMAIN, Emanuele CONCAS, Arthur LEQUERTIER, Tanguy FARDET |
Objectifs du module
| Apporter aux élèves de première année une formation de base en programmation informatique. Les bases conceptuelles nécessaires à la programmation sont facilement assimilables pour nos élèves, l'accent est donc mis sur la pratique et l'acquisition de bons " réflexes " de programmation : utilisation efficace de l'environnement de programmation et de ses outils, documentation du code, factorisation du code, concision… Le langage enseigné est le C++. Ce choix est justifié par l'importance de son utilisation dans les grands groupes, l'industrie, aussi bien que les start-ups. Sa souplesse en termes de choix de programmation bas niveau ou plus élaborée en objets, sa portabilité, la richesse de ses bibliothèques et son efficacité en font un langage privilégié qui a servi (exemple : Java) et sert encore de paradigme pour des langages en développement (ex : Go développé par Google ou Rust de Mozilla). Les aspects les plus avancés du langage, comme l'héritage et le polymorphisme, sont exclus de cette introduction. |
Programme du module
| Ce module de S1 comporte 12 séances de cours en petite classe d'1 heure et 12 séances de TP d'1h30. A ces créneaux s'ajoutent quelques séances de travail personnel accompagné (TPA) facultatives de 1h30, l'une à mi-parcours du cours et l'autre en dernier en vue de préparation à l'examen final. Les deux examens durent chacun 2h. Des créneaux de TPA accompagnant les premières séances seront utilisées pour résoudre des difficultés éventuelles à installer les logiciels sur l'ordinateur portable personnel. Les TP ont tous un format ludique, avec graphisme, interaction utilisateur et parfois animation. Thèmes abordés : 1. Environnement de programmation 2. Fonctions, variables, boucles 3. Tableaux 4. Structures 5. Organisation du code en plusieurs fichiers 6. Mémoire, fonctions récursives, file et pile 7. Allocation dynamique 8. Introduction aux objets 9. Constructeurs et destructeurs 10. Gestion des classes et mémoire 11. Fichiers, chaînes de caractères 12. Templates et utilisation de la STL (Standard Template Library) |
Contrôle des connaissances - Règles de validation du module
| La validation se fait sur les rendus de TP (30 %) en binôme ou monôme, les exercices à la maison individuels (30 %) et les deux examens individuels sur machine (40%). Une note d'au moins 8/20 à un des deux examens est nécessaire et non suffisante pour valider le module. |
Adresse du site du module
| http://imagine.enpc.fr/~monasse/Info1/ |
Documents pédagogiques - Bibliographie
| Un polycopié couvrant tout le cours, des programmes de base illustrant le cours et squelettes de code à compléter pour les TP, bibliothèques C++ pour l'interface graphique. |
Effectif maximal
| Effectif illimité |
Département de rattachement
| Département de 1ère année |
Nombre de crédits ECTS
| 3,5 crédits ECTS |
Code
| 1PROG |