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

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

Filière : Licence Professionnelle en Cyber et Cybercriminalité (CYB)

  • Théorie des langages 1

    La théorie des langages est le socle formel de l’analyse lexicale et syntaxique, de la compilation, de la recherche de motifs et de la validation des données. Ce cours de deuxième année (S3) de la Licence Professionnelle en Informatique, option Cybersécurité, en présente la première partie : notions fondamentales (mots, langages, opérations, grammaires, hiérarchie de Chomsky, propriétés de fermeture) puis langages réguliers et automates à états finis. Les exemples sont reliés aux usages professionnels : analyseurs lexicaux, signatures d’IDS, validation d’entrées par liste blanche, politiques de mots de passe. La suite (S4) traitera des langages algébriques, des automates à pile et des machines de Turing.

    Objectifs d’apprentissage

    • Manipuler les notions de mot, de langage et les opérations sur les langages.
    • Définir une grammaire syntagmatique, effectuer des dérivations et classer une grammaire dans la hiérarchie de Chomsky.
    • Utiliser les propriétés de fermeture des langages réguliers et algébriques.
    • Construire des automates finis (AFD, AFN, ε-AFN), les transformer et les déterminiser.
    • Passer d’une expression régulière à un automate et inversement, minimiser un AFD.
    • Démontrer qu’un langage n’est pas régulier avec le lemme de l’étoile.

    Prérequis

    Notions de base de logique et de théorie des ensembles (union, intersection, relations, récurrence), algorithmique de première année.

    Plan du cours

    1. Alphabets, mots, langages et opérations
    2. Grammaires syntagmatiques, hiérarchie de Chomsky et propriétés de fermeture
    3. Automates à états finis : définitions, variantes et déterminisation
    4. Expressions régulières, minimisation et langages réguliers

    Modalités d’évaluation

    Volume horaire : 13 h de cours magistral, 7 h de travaux dirigés, 20 h de travail personnel (2 crédits). Évaluation : contrôle continu (quiz en ligne, exercices de TD rendus) et examen terminal écrit (constructions d’automates, dérivations, preuves courtes).

    Bibliographie

    • John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation, Pearson (Addison-Wesley).
    • Michael Sipser, Introduction to the Theory of Computation, Cengage Learning.
    • Olivier Carton, Langages formels, calculabilité et complexité, Vuibert, 2008.
    • Pierre Wolper, Introduction à la calculabilité, Dunod.
    • Alfred Aho, Monica Lam, Ravi Sethi, Jeffrey Ullman, Compilateurs : principes, techniques et outils, Pearson Education.
  • Outils de détection d’intrusion

    Ce cours forme les étudiants au métier de défenseur : détecter les intrusions, analyser les alertes et réagir aux incidents, dans l’esprit d’un analyste de centre opérationnel de sécurité (SOC). Il part des protocoles réseau (IP, TCP, UDP, ARP, ICMP, fragmentation) relus sous l’angle de la détection, présente les technologies de filtrage et les principes des systèmes de détection d’intrusion (signatures, anomalies, HIDS, NIDS, IPS). Il décrit ensuite les grandes familles d’attaques au niveau de leurs mécanismes généraux, de leurs indicateurs de compromission et de leurs parades, sans jamais fournir de procédure offensive. Il traite enfin l’architecture de collecte (placement des sondes, SPAN/TAP), la journalisation et le SIEM, l’organisation d’un SOC, l’installation de Suricata dans le laboratoire de l’étudiant, le tri des alertes, les métriques de détection et la réponse à incident. Les exemples portent sur des organisations nigériennes (banque, opérateur, école) ; toute manipulation se fait sur les machines virtuelles de l’étudiant, dans le respect de la loi nigérienne sur la cybercriminalité.

    Objectifs d’apprentissage

    • Identifier dans le trafic et les journaux les champs et comportements révélateurs d’une intrusion.
    • Expliquer les techniques de détection (signatures, anomalies) et choisir entre HIDS, NIDS et IPS.
    • Associer les familles d’attaques à leurs indicateurs de compromission et à leurs parades.
    • Concevoir une architecture de collecte et dimensionner un SIEM ; décrire les fonctions d’un SOC.
    • Installer, configurer et tester un IDS open source (Suricata) dans un laboratoire isolé.
    • Trier et prioriser des alertes, calculer les métriques de détection et conduire une réponse à incident.

    Prérequis

    Bonnes connaissances en réseaux (modèle TCP/IP, adressage, VLAN) et en sécurité ; administration Linux de base ; connaissance du guide d’hygiène informatique de l’ANSSI ; avoir suivi le parcours d’introduction à la cybersécurité.

    Plan du cours

    1. Leçon 1 — Protocoles réseau et principes de la détection d’intrusion
    2. Leçon 2 — Familles d’attaques et indicateurs de compromission
    3. Leçon 3 — Déployer un IDS : sondes, journaux, SIEM et SOC
    4. Leçon 4 — L’analyste SOC : tri des alertes, métriques et réponse à incident

    Modalités d’évaluation

    Volume horaire : 13 h de cours magistral, 7 h de travaux dirigés et 20 h de travail personnel de l’étudiant (dont les manipulations guidées dans le laboratoire virtuel) ; 2 crédits. Évaluation : contrôle continu (quiz, exercices de TD, compte rendu du TP Suricata) et examen terminal écrit (analyse d’alertes et de journaux, calculs de métriques, questions de cours).

    Bibliographie

    • Richard Bejtlich, The Practice of Network Security Monitoring, No Starch Press, 2013.
    • Chris Sanders et Jason Smith, Applied Network Security Monitoring: Collection, Detection, and Analysis, Syngress, 2013.
    • NIST SP 800-94, Guide to Intrusion Detection and Prevention Systems (IDPS), 2007 ; NIST SP 800-61, Computer Security Incident Handling Guide.
    • ANSSI, Guide d’hygiène informatique et Recommandations de sécurité pour la mise en œuvre d’un système de journalisation.
    • OISF, documentation officielle de Suricata (docs.suricata.io) ; norme ISO/IEC 27035 (gestion des incidents de sécurité de l’information).
  • Gestion de clés et algorithmes cryptographiques

    Ce cours prolonge « Principes de la cryptographie et cryptanalyse » (PCC2311), qui a présenté l’histoire des chiffres, le vocabulaire (chiffrement, clé, vecteur d’initialisation), les principes de Kerckhoffs et de Shannon, les chiffrements symétriques (DES, 3DES, AES, modes ECB, CBC, CFB, CTR) et asymétriques (RSA, ElGamal, Diffie-Hellman). Il se concentre sur les algorithmes qui garantissent l’intégrité et l’authenticité (fonctions de hachage, MAC, signatures) et sur ce qui fait la sécurité réelle d’un système : la gestion des clés et les infrastructures à clés publiques. Les manipulations se font dans le laboratoire personnel de l’étudiant avec OpenSSL, Apache, GnuPG et la bibliothèque standard Python (hashlib, hmac, secrets), sur des cas inspirés d’organisations nigériennes (école, banque, PME, paiement mobile).

    Objectifs d’apprentissage

    • Expliquer les propriétés des fonctions de hachage, le paradoxe des anniversaires et l’état de MD5, SHA-1, SHA-2 et SHA-3 ; stocker correctement des mots de passe.
    • Choisir entre MAC (HMAC, CMAC) et signature (RSA, DSA, ECDSA) et calculer des exemples sur de petits nombres.
    • Définir une politique de gestion des clés couvrant tout le cycle de vie, avec les standards PKCS et les recommandations NIST/ANSSI.
    • Expliquer l’attaque de l’homme du milieu contre Diffie-Hellman et les moyens de l’empêcher.
    • Lire et valider des certificats X.509, créer une petite PKI de test et mettre en place HTTPS sur Apache.
    • Échanger des messages chiffrés et signés avec GnuPG et vérifier correctement un jeton JWT.

    Prérequis

    Cours PCC2311 (arithmétique modulaire, AES, RSA, Diffie-Hellman), administration Linux de base (paquets, droits, services), notions de réseau (HTTP, DNS, TCP) et de programmation Python.

    Plan du cours

    1. Leçon 1 — Fonctions de hachage cryptographiques
    2. Leçon 2 — Intégrité et authentification : MAC, HMAC et signatures numériques
    3. Leçon 3 — Gestion des clés : cycle de vie, échange Diffie-Hellman, homme du milieu et standards PKCS
    4. Leçon 4 — Infrastructures à clés publiques (PKI), certificats X.509 et cas pratiques : OpenSSL, HTTPS, GnuPG, JWT

    Modalités d’évaluation

    Volume horaire : 13 h de cours magistral, 7 h de travaux dirigés, 0 h de TP encadré, 20 h de travail personnel de l’étudiant (TPE), 2 crédits. Les manipulations guidées (OpenSSL, Apache, GnuPG, Python) sont réalisées en TPE sur les machines virtuelles de l’étudiant. Évaluation : contrôle continu (40 % : quiz en ligne, exercices de TD, compte rendu de la mise en place d’HTTPS ou de l’échange GnuPG) et examen terminal écrit (60 %).

    Bibliographie

    • A. Menezes, P. van Oorschot, S. Vanstone, Handbook of Applied Cryptography, CRC Press, 1996.
    • N. Ferguson, B. Schneier, T. Kohno, Cryptography Engineering: Design Principles and Practical Applications, Wiley, 2010.
    • W. Stallings, Cryptography and Network Security: Principles and Practice, Pearson.
    • NIST SP 800-57 Part 1 Recommendation for Key Management ; FIPS 180-4 (SHS), FIPS 186-5 (signatures), FIPS 198-1 (HMAC).
    • IETF : RFC 5280 (certificats X.509 et CRL), RFC 2104 (HMAC), RFC 8017 (PKCS#1), RFC 7519 (JWT).
  • Principes de la cryptographie et cryptanalyse

    Ce cours d’introduction à la cryptologie (UE1 « Cryptanalyse », L2) présente les principes sur lesquels reposent toutes les protections modernes de l’information : messageries, paiement mobile, VPN des banques et des opérateurs, sauvegardes chiffrées des administrations. On part de l’histoire des chiffres secrets et de leur cryptanalyse élémentaire (César, Vigenère, analyse de fréquences), on acquiert les outils mathématiques indispensables (arithmétique modulaire, théorie de Shannon), puis on étudie la cryptographie symétrique (DES, AES, modes opératoires) et asymétrique (RSA, Diffie-Hellman, ElGamal, courbes elliptiques). La cryptanalyse est abordée dans une démarche défensive : comprendre pourquoi un système tombe pour savoir choisir et configurer des algorithmes sûrs. Les exercices se font sur de petits nombres, à la main puis avec Python (pow, hashlib) et OpenSSL dans le laboratoire personnel de l’étudiant. Ce cours est complété, au même semestre, par « Gestion de clés et algorithmes cryptographiques » (GAC2312) : hachage, MAC, signatures, gestion des clés et PKI.

    Objectifs d’apprentissage

    • Retracer les grandes étapes de l’histoire de la cryptographie et de la cryptanalyse et en tirer les principes de Kerckhoffs et de Shannon.
    • Chiffrer et casser les chiffrements classiques (César, ROT13, substitution, Vigenère) par force brute, analyse de fréquences et méthode de Kasiski.
    • Effectuer les calculs d’arithmétique modulaire utiles en cryptographie (PGCD, inverse, exponentiation rapide, Fermat-Euler) et évaluer une sécurité en bits.
    • Décrire le fonctionnement des chiffrements symétriques (flot, blocs, DES, 3DES, AES) et choisir un mode opératoire adapté.
    • Mettre en œuvre à la main RSA, Diffie-Hellman et ElGamal et expliquer le principe des courbes elliptiques.
    • Identifier les grandes familles d’attaques et recommander des algorithmes et des tailles de clés conformes à l’état de l’art.

    Prérequis

    Mathématiques de base (division euclidienne, nombres premiers, puissances, logarithme en base 2), numération binaire et hexadécimale, notions de programmation Python et utilisation de la ligne de commande Linux.

    Plan du cours

    1. Leçon 1 — Histoire de la cryptographie et cryptanalyse des chiffrements classiques
    2. Leçon 2 — Outils modernes : services de sécurité, arithmétique modulaire et théorie de Shannon
    3. Leçon 3 — Cryptographie symétrique : chiffrements par flot et par blocs, DES, AES et modes opératoires
    4. Leçon 4 — Cryptographie asymétrique : RSA, Diffie-Hellman, ElGamal, courbes elliptiques et cryptanalyse

    Modalités d’évaluation

    Volume horaire : 13 h de cours magistral, 7 h de travaux dirigés, 0 h de TP encadré, 20 h de travail personnel de l’étudiant (TPE), 2 crédits. Les manipulations OpenSSL/Python proposées sont réalisées en TPE sur les machines virtuelles de l’étudiant. Évaluation : contrôle continu (40 % : quiz en ligne, exercices de TD corrigés, compte rendu d’une manipulation) et examen terminal écrit (60 % : exercices de calcul et questions de cours, calculatrice autorisée).

    Bibliographie

    • A. Menezes, P. van Oorschot, S. Vanstone, Handbook of Applied Cryptography, CRC Press, 1996 (consultable en ligne sur le site de l’Université de Waterloo).
    • B. Schneier, Cryptographie appliquée : protocoles, algorithmes et code source en C, Vuibert (traduction de Applied Cryptography, Wiley).
    • S. Singh, Histoire des codes secrets : de l’Égypte des pharaons à l’ordinateur quantique, JC Lattès, 1999 (rééd. Le Livre de Poche).
    • C. Paar, J. Pelzl, Understanding Cryptography, Springer, 2010.
    • NIST, FIPS 197 Advanced Encryption Standard et SP 800-57 Recommendation for Key Management ; ANSSI, guide de sélection d’algorithmes cryptographiques.
  • Anglais technique 2

    Ce cours fait suite à l’anglais technique du semestre 1 (bases de grammaire, conjugaison, expression orale et écrite). Il est centré sur l’anglais de l’informatique et sur les situations de communication que rencontre au quotidien un technicien ou un administrateur en cybersécurité : décrire un poste de travail, un système d’exploitation ou un réseau ; appeler ou écrire à une hotline d’un éditeur (Microsoft, Cisco, un hébergeur) ; chercher une solution sur un forum anglophone ; lire rapidement une documentation ou un avis de sécurité ; rédiger un email clair ; participer à une conférence téléphonique ou à une réunion avec des partenaires anglophones (bureau régional au Nigeria ou au Ghana, fournisseur européen, formateur Cisco).

    Chaque leçon associe un lexique bilingue FR/EN, des structures de phrases réutilisables, un exemple résolu et des exercices corrigés (traductions, dialogues, rédactions, jeux de rôles).

    Objectifs d’apprentissage

    • Utiliser le vocabulaire et les tournures relatifs à l’ordinateur, aux systèmes d’exploitation, aux logiciels, à Internet/intranet, au développement et au réseau.
    • Décrire précisément un problème technique et mener un appel ou un échange écrit avec un support anglophone.
    • Comprendre des messages de forums techniques et des documents techniques par lecture rapide (skimming, scanning).
    • Décrire une solution technique et rédiger une procédure ou un court document technique.
    • Rédiger des emails professionnels structurés et participer efficacement à des conférences téléphoniques et réunions.

    Prérequis

    Anglais technique du semestre 1 (temps de base, formules de politesse, structure d’un mail) ; notions d’informatique de première année.

    Plan du cours

    1. Leçon 1 — Le vocabulaire de l’informatique : ordinateur, systèmes, logiciels, Internet et réseaux
    2. Leçon 2 — Gérer les supports techniques anglophones : hotline, forums et description de problèmes
    3. Leçon 3 — Lire et rédiger des documents techniques
    4. Leçon 4 — Emails professionnels, conférences téléphoniques et réunions

    Modalités d’évaluation

    Volume horaire : 13 h de cours magistral (CM), 7 h de travaux dirigés (TD), 0 h de TP et 20 h de travail personnel de l’étudiant (TPE) ; 2 crédits. Évaluation : contrôle continu (exercices écrits, jeux de rôles et présentations orales en TD, participation) pour 40 % et examen terminal (compréhension écrite et orale, grammaire, rédaction d’un document professionnel) pour 60 %.

    Bibliographie

    • Santiago Remacha Esteras, Infotech: English for Computer Users, Cambridge University Press.
    • Eric H. Glendinning, John McEwan, Oxford English for Information Technology, Oxford University Press.
    • Santiago Remacha Esteras, Elena Marco Fabré, Professional English in Use: ICT, Cambridge University Press.
    • Paul Emmerson, Email English, Macmillan.
    • Raymond Murphy, English Grammar in Use, Cambridge University Press.
  • CCNA 2 : Routage et commutation

    Ce cours de la Licence Professionnelle en Informatique, option Cybersécurité, correspond au deuxième module du parcours Cisco CCNA (Switching, Routing and Wireless Essentials). Il fait suite à « CCNA 1 : Introduction aux réseaux » et prépare aux postes de technicien et d’administrateur réseau dans les PME, banques, opérateurs et administrations du Niger. L’étudiant apprend à configurer des commutateurs et des routeurs Cisco dans son laboratoire ou sous Packet Tracer : segmentation par VLAN, routage inter-VLAN, Spanning Tree, EtherChannel, DHCP, redondance de passerelle, sécurité de la couche 2 et routage statique. Les contenus peuvent être complétés par le parcours officiel de la plate-forme Cisco Networking Academy.

    Objectifs d’apprentissage

    • Concevoir un plan d’adressage par VLAN et configurer VLAN, ports d’accès et trunks 802.1Q sécurisés.
    • Mettre en œuvre le routage inter-VLAN et analyser une topologie Spanning Tree (pont racine, rôles des ports).
    • Agréger des liens avec EtherChannel (LACP) et assurer la redondance de la passerelle avec HSRP.
    • Configurer DHCPv4 (serveur, relais) et la configuration automatique IPv6.
    • Protéger la couche 2 : sécurité des ports, DHCP snooping, inspection ARP dynamique, BPDU Guard.
    • Configurer et dépanner des routes statiques IPv4/IPv6 (par défaut, flottante, récapitulative).

    Prérequis

    CCNA 1 (modèle OSI/TCP-IP, Ethernet, adressage IPv4 et sous-réseaux, IPv6, configuration de base de Cisco IOS). Accès à Packet Tracer ou au laboratoire réseau de l’école.

    Plan du cours

    1. Leçon 1 — Commutation Ethernet, VLAN et liaisons trunk 802.1Q
    2. Leçon 2 — Routage inter-VLAN, Spanning Tree et EtherChannel
    3. Leçon 3 — DHCP, redondance de passerelle (HSRP) et sécurité de la couche 2
    4. Leçon 4 — Routage statique IPv4/IPv6 et TP guidé de synthèse

    Modalités d’évaluation

    Volume horaire : 20 h de cours magistral, 10 h de travaux dirigés, 10 h de travaux pratiques et 40 h de travail personnel (4 crédits). Évaluation : contrôle continu (quiz en ligne, exercices de configuration et comptes rendus des TP Packet Tracer, évaluation pratique sur équipements) et examen terminal écrit. Les TP se déroulent exclusivement sur les équipements et machines du laboratoire de l’étudiant.

    Bibliographie

    • Cisco Networking Academy, Switching, Routing, and Wireless Essentials Companion Guide (CCNAv7), Cisco Press, 2020.
    • Wendell Odom, CCNA 200-301 Official Cert Guide, Volume 1 et Volume 2, Cisco Press.
    • Todd Lammle, CCNA Certification Study Guide, Sybex (Wiley).
    • Andrew Tanenbaum, David Wetherall, Réseaux, Pearson.
    • Normes IEEE 802.1Q (VLAN) et 802.1D/802.1w (Spanning Tree) ; RFC 2131 (DHCP) et RFC 4862 (autoconfiguration IPv6).
  • Système d’exploitation : Linux LPI 102

    Ce cours prépare aux compétences de l’examen LPI 102, seconde moitié de la certification LPIC-1, et fait suite au cours LPI 101 du semestre 1 (matériel, démarrage, paquets, commandes, systèmes de fichiers). On passe ici de l’utilisation à l’administration d’un poste ou d’un petit serveur Linux : personnalisation du shell et écriture de scripts, bases du langage SQL, environnement graphique X11, gestion des comptes, planification des tâches, localisation, services essentiels (heure, journaux, courrier, impression), configuration et dépannage réseau, et enfin sécurité du poste client. Ces compétences sont le socle quotidien d’un administrateur système et d’un analyste SOC : un script d’audit, une règle de journalisation, un compte expiré, un service réseau inutile ou un échange non chiffré sont autant de points de contrôle de la sécurité. Chaque leçon comporte un TP guidé sur la machine virtuelle de l’étudiant.

    Objectifs d’apprentissage

    • Personnaliser l’environnement Bash et écrire des scripts simples, robustes et commentés.
    • Interroger et mettre à jour une base de données avec les commandes SQL de base.
    • Installer et configurer X11, un gestionnaire d’affichage et les options d’accessibilité.
    • Gérer utilisateurs, groupes, politiques de mots de passe, tâches planifiées et localisation.
    • Configurer l’heure système, la journalisation, un MTA de base et l’impression.
    • Configurer le réseau d’un client Linux (IPv4/IPv6, routes, DNS), le dépanner et sécuriser le poste (comptes, services, SSH, GnuPG).

    Prérequis

    Cours LPI 101 (ligne de commande, filtres, permissions, paquets) et une machine virtuelle Linux fonctionnelle.

    Plan du cours

    1. Leçon 1 — Shell, scripts et gestion de données avec SQL
    2. Leçon 2 — Environnement graphique et tâches d’administration
    3. Leçon 3 — Services système de base : heure, journaux, courrier et impression
    4. Leçon 4 — Réseau TCP/IP et sécurité du poste Linux

    Modalités d’évaluation

    Volume horaire : 20 h de CM, 10 h de TD, 10 h de TP et 40 h de TPE (4 crédits). Évaluation : contrôle continu 40 % (comptes rendus de TP, scripts rendus, quiz et simulation d’examen LPI 102) et examen terminal 60 % (épreuve écrite et pratique).

    Bibliographie

    • Sébastien Rohaut, LINUX — Préparation à la certification LPIC-1 (examens LPI 101 et LPI 102), Éditions ENI.
    • Linux Professional Institute, Objectifs de l’examen 102 et LPIC-1 Learning Materials (learning.lpi.org).
    • Cameron Newham, Bill Rosenblatt, Learning the bash Shell, O’Reilly.
    • Evi Nemeth, Garth Snyder, Trent R. Hein, Ben Whaley, Dan Mackin, UNIX and Linux System Administration Handbook, Addison-Wesley.
    • ANSSI, Recommandations de configuration d’un système GNU/Linux et Guide d’hygiène informatique.
  • Architecture des ordinateurs 2

    Ce cours d’Architecture des ordinateurs (partie 2) fait suite à la partie 1 du semestre 1, consacrée au codage de l’information et à la classification des machines. Il ouvre maintenant le « capot » de l’ordinateur pour étudier ses composants internes — processeur, mémoires, bus, interfaces et périphériques — et leur fonctionnement : exécution des instructions, hiérarchie mémoire, RAM et ROM, BIOS/UEFI, interruptions, accès direct à la mémoire (DMA) et unité de gestion mémoire (MMU). Chaque notion est reliée aux enjeux de sécurité qu’un technicien en cybersécurité rencontre : démarrage sécurisé, protection mémoire, isolement des processus, attaques par accès direct à la mémoire et contre-mesures matérielles.

    Objectifs d’apprentissage

    • Décrire l’architecture de von Neumann et le rôle de chaque composant interne.
    • Expliquer le cycle d’exécution d’une instruction et calculer le temps d’exécution d’un programme (fréquence, CPI, pipeline).
    • Décrire la hiérarchie mémoire (registres, caches, RAM, stockage), distinguer RAM et ROM et expliquer le rôle du BIOS/UEFI.
    • Calculer une capacité d’adressage et un débit de bus ; comparer les interfaces (PCIe, SATA, USB).
    • Expliquer les mécanismes d’entrée-sortie : scrutation, interruptions, DMA.
    • Expliquer la mémoire virtuelle et la MMU, et leur rôle dans la protection des processus.

    Prérequis

    Partie 1 du cours (numération binaire et hexadécimale, unités, codage des données).

    Plan du cours

    1. Leçon 1 — Le processeur et l’exécution des instructions
    2. Leçon 2 — La mémoire : hiérarchie, RAM, ROM et BIOS/UEFI
    3. Leçon 3 — Bus, interfaces et périphériques
    4. Leçon 4 — Interruptions, DMA et MMU : le fonctionnement interne avancé

    Modalités d’évaluation

    Volume horaire : 27 h de CM, 13 h de TD, 0 h de TP et 40 h de TPE (4 crédits). Évaluation : contrôle continu (TD, interrogations, quiz) 40 % et examen terminal écrit 60 %.

    Bibliographie

    • Andrew S. Tanenbaum, Todd Austin, Structured Computer Organization, Pearson.
    • David A. Patterson, John L. Hennessy, Computer Organization and Design: The Hardware/Software Interface, Morgan Kaufmann.
    • John L. Hennessy, David A. Patterson, Computer Architecture: A Quantitative Approach, Morgan Kaufmann.
    • William Stallings, Computer Organization and Architecture, Pearson.
    • Andrew S. Tanenbaum, Herbert Bos, Modern Operating Systems, Pearson (chapitre sur la gestion de la mémoire).
  • Algorithmique et programmation 2

    Ce cours d’Algorithmique et programmation (semestre 2) prolonge le cours du semestre 1 (types, structures de contrôle, tableaux, sous-programmes, récursivité, tris, pointeurs). Il introduit les structures de données fondamentales, qui organisent l’information en mémoire pour la traiter efficacement : listes séquentielles et chaînées, piles, files, arbres n-aires et arbres binaires. Chaque structure est présentée comme un type abstrait (opérations et propriétés), puis par ses représentations (contiguë dans un tableau, ou chaînée par pointeurs), avec le coût de ses opérations. Ces structures sont omniprésentes en cybersécurité : liste noire d’adresses IP, pile d’appels d’un programme, file d’attente des alertes d’un SOC ou des paquets d’un routeur, arborescence de fichiers d’un serveur Linux, index de recherche dans des journaux. Les implémentations avancées en C (listes doubles, files de priorité, arbres équilibrés) seront approfondies en L2 (semestre 4).

    Objectifs d’apprentissage

    • Définir une structure de données comme type abstrait et choisir entre représentation contiguë et chaînée.
    • Écrire les algorithmes d’insertion, de suppression, de recherche et de parcours sur une liste chaînée.
    • Implanter piles et files (tableau, tableau circulaire, chaînage) et les appliquer (parenthésage, expressions postfixées, files d’attente).
    • Maîtriser le vocabulaire des arbres et les parcours préfixe, infixe, postfixe et en largeur.
    • Construire et interroger un arbre binaire de recherche, et estimer le coût des opérations.

    Prérequis

    Algorithmique et programmation S1 : tableaux, enregistrements, fonctions et procédures, récursivité, pointeurs et allocation dynamique en C.

    Plan du cours

    1. Listes séquentielles et listes linéaires chaînées
    2. Les piles : principe LIFO, représentations et applications
    3. Les files : principe FIFO, file circulaire et applications
    4. Arbres généraux n-aires et arbres binaires

    Modalités d’évaluation

    Volume horaire : 20 h de CM, 10 h de TD, 10 h de TP et 40 h de TPE ; 4 crédits. Évaluation : contrôle continu (TD, comptes rendus des TP guidés en C, quiz en ligne) pour 40 % et examen terminal écrit (algorithmes sur listes, piles, files et arbres, traces d’exécution) pour 60 %.

    Bibliographie

    • T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, Algorithmique, Dunod.
    • R. Sedgewick, Algorithms in C, parts 1-4, Addison-Wesley.
    • D. E. Knuth, The Art of Computer Programming, vol. 1 : Fundamental Algorithms, Addison-Wesley.
    • B. W. Kernighan, D. M. Ritchie, Le langage C : norme ANSI, Dunod.
  • Analyse informatique 2

    Ce cours d’Analyse informatique (2e partie, semestre 2) fait suite au cours du semestre 1 consacré au système d’information, au dictionnaire des données, au MCD et au MCT. Il conduit l’étudiant du niveau conceptuel aux niveaux organisationnel, logique et opérationnel de MERISE : répartition des traitements entre postes de travail et entre l’homme et la machine (MOT), traduction du MCD en schéma relationnel (MLD), organisation des fichiers, théorie relationnelle (clés, contraintes d’intégrité, formes normales) et découpage des traitements en modules programmables (MOPT). Pour un futur spécialiste de la cybersécurité, ces modèles sont essentiels : ils fixent qui fait quoi (séparation des tâches, droits d’accès), garantissent l’intégrité des données (clés, contraintes référentielles, normalisation) et placent les contrôles de saisie et la journalisation au bon endroit des chaînes de traitement.

    Objectifs d’apprentissage

    • Construire un MOT sous forme de tableau des procédures (postes, phases, tâches, nature manuelle ou automatisée).
    • Appliquer les règles de passage du MCD au MLD relationnel et choisir une organisation de fichiers adaptée.
    • Définir relation, attribut, domaine, n-uplet, clés candidates, primaires et étrangères, et les contraintes d’intégrité.
    • Normaliser un schéma jusqu’à la 3e forme normale (et la forme de Boyce-Codd) à partir des dépendances fonctionnelles.
    • Découper une procédure en modules (MOPT), décrire leur enchaînement et les documenter (pseudo-code, table de décision, maquette d’écran).

    Prérequis

    Analyse informatique S1 (dictionnaire des données, GDF, MCD, MCT) ; notions de base sur les bases de données.

    Plan du cours

    1. Le modèle organisationnel des traitements (MOT)
    2. Le modèle logique des données (MLD) : règles de passage et fichiers
    3. Le formalisme relationnel : concepts, clés et formes normales
    4. Le modèle opérationnel des traitements (MOPT) et les outils de description

    Modalités d’évaluation

    Volume horaire : 27 h de CM, 13 h de TD, 0 h de TP et 40 h de TPE ; 4 crédits. Évaluation : contrôle continu (TD notés, mini-projet de passage MCD → MLD normalisé, quiz en ligne) pour 40 % et examen terminal écrit (étude de cas : MOT, MLD, normalisation, MOPT) pour 60 %.

    Bibliographie

    • H. Tardieu, A. Rochfeld, R. Colletti, La méthode Merise, tome 1 : Principes et outils, Éditions d’Organisation.
    • D. Nanci, B. Espinasse, Ingénierie des systèmes d’information : Merise deuxième génération, Vuibert.
    • G. Gardarin, Bases de données, Eyrolles.
    • C. J. Date, An Introduction to Database Systems, Addison-Wesley (trad. fr. Introduction aux bases de données, Vuibert).
    • C. Soutou, Modélisation de bases de données : UML et les modèles entité-association, Eyrolles.