École Privée d’Ingénierie du Niger — L’école du nouveau monde

✉ elearning@epiniger.edu.ne    🌐 epiniger.edu.ne

Écrit par

dans

Licence Professionnelle en Cyber et Cybercriminalité (CYB) › Licence 2 › CYB · S3 · UE3 — Programmation / Base de données

Algorithmique et programmation 3

Code APR2331 3 crédits CM 10h · TD 10h · TP 10h · TPE 30h Évaluation : CC + ET

👤 Abdoul Salam Issifou Karimou — Ingénieur de conception

Se connecter pour s'inscrire Créer un compte

4 leçon(s) · 1 quiz · 0 inscrit(s)

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

  1. Genèse du langage C, concepts de base et structure générale d’un programme
  2. Opérateurs sur les types de données simples et instructions simples
  3. Structures de contrôle et tableaux
  4. 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

  1. 🔒 Leçon 1 — Genèse du langage C, concepts de base et structure générale d'un programme · 90 min
  2. 🔒 Leçon 2 — Opérateurs sur les types de données simples et instructions simples · 90 min
  3. 🔒 Leçon 3 — Structures de contrôle et tableaux · 90 min
  4. 🔒 Leçon 4 — Procédures, fonctions et structures de données · 90 min
  5. 🔒 Quiz — Algorithmique et programmation 3 · quiz

Évaluation globale de la matière

Connectez-vous pour suivre votre progression.