Génie Informatique - ProgrammationCode de l'UE : HLEE303
Présentation
Les objectifs de ce module sont de renforcer les connaissances en langage C à partir d'une connaissance basique de ce langage (variables, conditions, boucles, fonctions) et de connaissances élémentaires en algorithmique. Les étudiants seront amenés à rentrer plus profondément dans le fonctionnement du langage, avec pour objectif de maîtriser un ensemble de techniques qui peuvent sembler avancées (passage par adresses, structures avec pointeurs, etc) mais qui forment la boîte à outils de tout programmeur. Ainsi, l'accent sera mis sur l'exploitation des pointeurs, fonctions et structures en vue de créer des sous-ensembles fonctionnels, exprimant des concepts structurants pour les programmes et pour les données (bibliothèques, listes chainées, structures aborescentes, etc.).
Parallèlement, les aspects " programmation bas niveau " seront séparés des aspects " programmation système " en vue d'aborder l'état d'esprit relatif à ces deux contextes de développement très différents, auxquels sont confrontés les développeurs en électronique. Ainsi, les étudiants seront sensibilisés à la programmation par "registres" (mapping) en opposition à la programmation par API (Application Program Interface), qu'il s'agisse d'API normalisées dans le langage (mémoire, fichiers) ou externes (librairies graphiques / OpenGL).
Objectifs
En matière d'acquis à l'issue du module, l'étudiant devra maitriser un ensemble de "réflexes" de programmation l'aidant à structurer et organiser ses programmes et ses données. En particulier, il devra complètement maîtriserde l'utilisation des pointeurs dans différents contextes et pour différents usages habituels en programmation.
Plus techniquement, il devra savoir interpréter les "errors" et "warnings" affichées par les compilateurs standards (gcc) en vue de corriger de façon autonome et pertinente les erreurs de son programme.
Volume horaire
- CM : 18
- TD : 0
- TP : 33
Syllabus
Un ensemble de notes de cours (plus ou moins à jour) sont disponibles pour les étudiants.
Les étudiants n'ayant jamais programmé peuvent se référer au cours et surtout aux exercices du L1 de l'université de Montpellier qui rassemble l'ensemble des connaissances utiles pour aborder ce module. Ces mêmes étudiants pourront aussi se référer au livre issu de "openclassroom" (M. Nebra: apprenez à programmer en C) ou à divers tutoriels que l'on trouve sur internet. Attention toutefois avec cet ouvrage et avec ces sources d'information : s'il en général ils sont assez simples à aborder et être un moyen facile et agréable de "se lancer", mais ils ne doivent
en aucun cas
être votre seul document de référence. En effet, les concepts y sont présentés de façon un peu trop approximative, et certaines représentations y sont abusives. On complètera ou préfèrera " le livre du C premier langage" de C. Delannoy.
Pour les étudiants plus avancés ou ceux qui ont déjà suivi l'enseignement de L1, un grand classique est le livre de C. Delannoy "Programmer en langage C : Cours et exercices corrigés". Le cours est bien écrit et les exercices intéressants. Le "style" de l'écriture des programmes est en revanche parfois un peu "viellot".
Autres références utiles :
- la norme actualisée du Langage C (qui a beaucoup évolué depuis sa création dans les années 1970) : http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1539.pdf
- La référence de l'API OpenGL https://www.opengl.org/sdk/docs/man/
Diplômes intégrant cette UE
En bref
Crédits ECTS 5
Nombre d'heures 51 HE
Période de l'année
S3
Langue d'enseignement
fr
Contact(s)
Composante
Faculté des Sciences