Algorithmique et Programmation en C¶
Volume horaire : 15h CM · 15h TP (30h)
Objectifs pédagogiques¶
À l'issue du cours, l'étudiant est capable de :
- concevoir un algorithme structuré pour résoudre un problème donné, avant toute écriture de code ;
- écrire, compiler et déboguer des programmes en langage C ;
- manipuler les structures de données fondamentales (tableaux, chaînes, structures) et la mémoire (pointeurs, allocation dynamique) ;
- lire et modifier du code C existant, compétence indispensable pour l'analyse de vulnérabilités, l'exploitation logicielle et la rétro-ingénierie abordées plus loin dans le programme (Sécurité des applications, Cryptanalyse).
Prérequis¶
Aucun prérequis en programmation n'est exigé ; des bases de logique mathématique (algèbre de Boole, notions d'arithmétique) sont utiles.
Plan de séances¶
Cours magistraux (15h)¶
| Séance | Chapitre | Durée |
|---|---|---|
| 1 | Introduction à l'algorithmique et au langage C | 2h |
| 2 | Variables, types, opérateurs et entrées-sorties | 2h |
| 3 | Structures de contrôle | 2h |
| 4 | Fonctions et portée des variables | 2h |
| 5 | Tableaux et chaînes de caractères | 3h |
| 6 | Pointeurs et gestion mémoire | 2h |
| 7 | Structures (struct) et fichiers |
2h |
Travaux pratiques (15h)¶
| Séance | Sujet | Durée |
|---|---|---|
| 1 | Prise en main : compilation et premiers programmes | 2h |
| 2 | Structures de contrôle | 2h |
| 3 | Fonctions | 2h |
| 4 | Tableaux | 2h |
| 5 | Chaînes de caractères | 2h |
| 6 | Pointeurs et allocation dynamique | 3h |
| 7 | Mini-projet : gestionnaire de contacts | 2h |
Évaluation¶
- Contrôle continu (exercices notés en TP) : 40 %
- Mini-projet final (TP7) : 20 %
- Examen final sur table (algorithmique + lecture/écriture de code C) : 40 %
Environnement technique¶
- Compilateur : GCC (
gcc -Wall -Wextra -std=c11) - Éditeur recommandé : VS Code, ou tout éditeur avec coloration syntaxique C
- Système : Linux/macOS/WSL recommandé pour la cohérence des TP
Bibliographie¶
- B. W. Kernighan, D. M. Ritchie, The C Programming Language, 2nd ed.
- C. Delannoy, Programmer en langage C, Eyrolles.
- Documentation : cppreference.com/w/c
Dr. Zakaria Sawadogo — École Polytechnique de Ouagadougou