Créneau
| Sem 3 Sem 2 |
| 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, Thomas BELOS, Clément RIU, Thomas DAUMAIN, Emanuele CONCAS, Laura ECHEVERRI, Niloufar FULADI |
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 cours de S1 comporte 12 séances de cours d'1 heure et 12 séances de TP d'1h30. A ces créneaux s'ajoutent deux séances de travail personnel accompagné (TPA) de 2h30, l'une à mi-parcours du cours et l'autre en dernier en vue de préparation à l'examen final, ainsi que 2h réservés à l'examen final. Un des premiers créneaux de TPA sera utilisé pour aider les élèves ayant des difficultés à installer les logiciels sur leur ordinateur portable personnel. D'autres créneaux de TPA pourront être utilisés pour l'aide personnalisée aux exercices. Les TP ont tous un format ludique, avec graphisme, interaction 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 l'examen final individuel sur machine (40%). |
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 |