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

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

Unité d’enseignement : CYB · S2 · UE3 — Environnement de développement

  • 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.