Génie Informatique - Programmation

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 :

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)

Contact(s) administratif(s)

Mikhael MYARA (mikhael.myara @ umontpellier.fr)

Olivier STRAUSS (olivier.strauss @ umontpellier.fr)