Descriptif
Ce cours vise à apprendre le langage C et les mécanismes "bas niveau" qu'il rend explicites au contraire de langages de plus haut niveau comme Python.
Outre la syntaxe du langage, les aspects de compilation, typage, organisation mémoire, pointeurs et allocation dynamique seront étudiés.
Objectifs pédagogiques
Maîtriser la programmation en langage C, être capable de concevoir et implémenter des algorithmes en C. En particulier, être capable :
- Compiler et exécuter un programme ;
- Comprendre la portée des variables (locale / globale) ;
- Connaître les constructions syntaxiques : opérateurs arithmétiques et logiques, conditionnelle, boucles, "switch", fonctions, opérateurs bit-à-bit ;
- Connaître les constructions de types: "struct", tableau / chaîne de caractères, scalaires, transtypage, (si possible "enum", "typedef") ;
- Comprendre la notion de préprocesseur, "#define", "#include", prototypes de variables / fonctions ;
- Comprendre les pointeurs, l'allocation dynamique, le passage par adresse ;
- Connaître les particularités des scalaires: signe, taille, problèmes de conversions "int" <-> "float", de débordements ;
- Utiliser la récursivité.
21 heures en présentiel (7 blocs ou créneaux)
réparties en:
- Contrôle : 3
- Travaux dirigés en salle info : 18
effectifs minimal / maximal:
145/220Diplôme(s) concerné(s)
Format des notes
Numérique sur 20Littérale/grade européenPour les étudiants du diplôme Diplôme d'Ingénieur de l'Ecole Nationale Supérieure de Techniques Avancées
Vos modalités d'acquisition :
Examen sur machine.
Contrôle continu (TPs notés et quizz)
Le rattrapage est autorisé (Max entre les deux notes écrêté à une note seuil)- le rattrapage est obligatoire si :
- Note initiale < 6
- le rattrapage peut être demandé par l'étudiant si :
- 6 ≤ note initiale < 10
- Crédits ECTS acquis : 2 ECTS
- Scientifique acquis : 2
Le coefficient de l'UE est : 1
La note obtenue rentre dans le calcul de votre GPA.
L'UE est évaluée par les étudiants.
Programme détaillé
- Motivation et historique
- Créer un programme : compilation
- Types et variables
- Expressions et instructions
- Branchements et boucles
- Pointeurs
- Fonction, passage par valeur, passage par adresse
- Entrées/Sorties
- Structures
- Chaînes de caractères
- Tableaux
- Passage d'arguments par la ligne de commande
- Pile (Stack)
- Tas (Heap)
- Types enumérés
- Constantes littérales
- Variables - initialisation, débordement, conversions
- Débogage manuelle (sans debuggeur)
Mots clés
Programmation, Langage CMéthodes pédagogiques
Polycopié à télécharger, vidéos et dispositifs interactifs (Jupyter Notebook) en ligneSupport pédagogique multimédia