Licence Professionnelle en Cyber et Cybercriminalité (CYB) › Licence 2 › CYB · S3 · UE3 — Programmation / Base de données
Algorithmique et programmation 3
👤 Abdoul Salam Issifou Karimou — Ingénieur de conception
Présentation
Ce cours d’Algorithmique et programmation de 2e année (semestre 3) est consacré au langage C, langage des systèmes d’exploitation (noyau Linux), des pilotes, des équipements réseau et de nombreux outils de sécurité (OpenSSH, OpenSSL, Snort, Suricata). Le maîtriser est indispensable au spécialiste en cybersécurité : pour écrire des outils efficaces, pour lire et auditer du code, et pour comprendre l’origine des vulnérabilités de corruption mémoire afin de les prévenir. Le cours reprend les notions algorithmiques de L1 et les traduit rigoureusement en C : genèse et philosophie du langage, chaîne de compilation, structure d’un programme, types et opérateurs (y compris les opérateurs bit à bit utilisés pour les masques réseau et les permissions), instructions et structures de contrôle, tableaux et chaînes, fonctions et procédures, structures de données (struct, enum, typedef) et bibliothèque standard. Chaque leçon insiste sur les bonnes pratiques de programmation sûre (norme SEI CERT C) et se termine par des TP guidés sur la machine virtuelle de l’étudiant, jusqu’à un petit outil de dessin en mode texte.
Objectifs d’apprentissage
- Situer l’histoire et les normes du C, et décrire la chaîne préprocesseur – compilateur – assembleur – éditeur de liens.
- Écrire des programmes C structurés, compilés sans avertissement avec
gcc -Wall -Wextra. - Utiliser correctement les types et opérateurs, y compris conversions et opérateurs bit à bit.
- Employer les structures de contrôle et manipuler tableaux et chaînes sans débordement.
- Découper un programme en fonctions et en modules, et modéliser des données avec struct, enum et typedef.
- Exploiter la bibliothèque standard et réaliser un petit outil de dessin.
Prérequis
Algorithmique et programmation S1 et S2 (pseudo-code, structures de contrôle, tableaux, sous-programmes, notions de pointeurs, listes et piles).
Plan du cours
- Genèse du langage C, concepts de base et structure générale d’un programme
- Opérateurs sur les types de données simples et instructions simples
- Structures de contrôle et tableaux
- Procédures, fonctions et structures de données
Modalités d’évaluation
Volume horaire : 10 h de CM, 10 h de TD, 10 h de TP et 30 h de TPE ; 3 crédits. Évaluation : contrôle continu (comptes rendus de TP avec code source, quiz en ligne, mini-projet « outil de dessin ») pour 40 % et examen terminal (écrit : lecture et écriture de code C, traces d’exécution) pour 60 %.
Bibliographie
- B. W. Kernighan, D. M. Ritchie, Le langage C : norme ANSI, Dunod.
- C. Delannoy, Programmer en langage C, Eyrolles.
- K. N. King, C Programming: A Modern Approach, W. W. Norton.
- R. C. Seacord, Secure Coding in C and C++, Addison-Wesley.
- SEI CERT, SEI CERT C Coding Standard, Carnegie Mellon University (en ligne).
Évaluation globale de la matière
Connectez-vous pour suivre votre progression.
Programme
- 🔒 Leçon 1 — Genèse du langage C, concepts de base et structure générale d'un programme · 90 min
- 🔒 Leçon 2 — Opérateurs sur les types de données simples et instructions simples · 90 min
- 🔒 Leçon 3 — Structures de contrôle et tableaux · 90 min
- 🔒 Leçon 4 — Procédures, fonctions et structures de données · 90 min
- 🔒 Quiz — Algorithmique et programmation 3 · quiz
Évaluation globale de la matière
Connectez-vous pour suivre votre progression.
