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

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

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

  • Algorithmique et programmation 1

    Ce cours d’Algorithmique et programmation (semestre 1) pose les bases indispensables à tout informaticien et, plus encore, à tout futur spécialiste de la cybersécurité : un analyste SOC écrit des scripts d’analyse de journaux, un administrateur automatise des contrôles, un développeur sécurisé doit comprendre comment les données sont représentées en mémoire pour éviter les débordements et les erreurs de conversion. On y apprend à formuler un algorithme en pseudo-code (langage algorithmique en français), à le traduire en langage C, à le tester et à raisonner sur son coût. Le cours couvre les types de données simples et leur lien avec la machine, les instructions simples, conditionnelles et itératives, les tableaux, les chaînes de caractères, les enregistrements, les fonctions et procédures, la récursivité, les algorithmes de recherche et de tri, ainsi qu’une introduction aux pointeurs et à la gestion dynamique de la mémoire. Les structures de données dynamiques (listes, piles, files, arbres) sont étudiées au semestre 2.

    Objectifs d’apprentissage

    • Écrire des algorithmes clairs en pseudo-code et les traduire en C (compilation avec gcc).
    • Choisir les types adaptés en connaissant leur représentation machine (binaire, complément à deux, limites, dépassements).
    • Utiliser les structures conditionnelles et itératives, les tableaux, les chaînes et les enregistrements.
    • Découper un problème en fonctions et procédures (paramètres par valeur et par adresse).
    • Mettre en œuvre la récursivité, la recherche séquentielle et dichotomique et les tris élémentaires, en évaluant leur complexité.
    • Manipuler pointeurs et allocation dynamique en respectant les règles de sûreté mémoire.

    Prérequis

    Aucun prérequis formel ; une aisance avec les mathématiques du secondaire (logique, calcul) et l’usage courant d’un ordinateur est souhaitable.

    Plan du cours

    1. Introduction à l’algorithmique : types simples, opérateurs et instructions simples
    2. Les instructions conditionnelles et itératives
    3. Tableaux, chaînes de caractères, enregistrements et sous-programmes
    4. Récursivité, recherche, tris et gestion dynamique de la mémoire

    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, quiz en ligne) pour 40 % et examen terminal écrit (algorithmes à rédiger et à dérouler) pour 60 %.

    Bibliographie

    • T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, Algorithmique (trad. fr. de Introduction to Algorithms), Dunod.
    • B. W. Kernighan, D. M. Ritchie, Le langage C : norme ANSI, Dunod.
    • C. Delannoy, Programmer en langage C, Eyrolles.
    • D. E. Knuth, The Art of Computer Programming, vol. 1 et 3, Addison-Wesley.
    • SEI CERT, SEI CERT C Coding Standard, Carnegie Mellon University (en ligne).
  • Analyse informatique 1

    Ce cours d’Analyse informatique (1re partie, semestre 1) initie l’étudiant de Licence professionnelle Cybersécurité à la conception des systèmes d’information selon la méthode MERISE. Avant de sécuriser un système, il faut savoir le décrire : quelles données il manipule, qui les produit, quelles règles de gestion s’appliquent et quels traitements les transforment. Une analyse rigoureuse permet de développer une application fidèle aux besoins du client (une PME de Niamey, une banque, une administration) et d’identifier très tôt les données sensibles à protéger (identifiants, données personnelles, données financières). Le cours couvre la notion de système, la démarche MERISE, l’étude de l’existant, le dictionnaire des données, le graphe des dépendances fonctionnelles, le modèle conceptuel des données (MCD) et le modèle conceptuel des traitements (MCT). La suite (MOT, MLD, MOPT, modèle relationnel et normalisation) est traitée au semestre 2.

    Objectifs d’apprentissage

    • Définir un système et décrire le fonctionnement d’une organisation selon l’approche systémique (système de pilotage, système d’information, système opérant).
    • Expliquer la vocation de MERISE, son approche par étapes et son approche par niveaux d’abstraction.
    • Recenser les règles de gestion, critiquer l’existant et construire puis épurer un dictionnaire des données.
    • Construire un graphe des dépendances fonctionnelles (GDF) et en déduire un MCD correct (entités, associations, cardinalités, associations réflexives).
    • Vérifier et décomposer un MCD, puis représenter les traitements d’un domaine par un MCT (événements, opérations, synchronisations, règles d’émission).

    Prérequis

    Connaissances de base en informatique (fichiers, logiciels de gestion) et culture générale sur les bases de données (notion de table, d’enregistrement, de champ).

    Plan du cours

    1. Système d’information et présentation de la méthode MERISE
    2. Étude de l’existant, dictionnaire des données et graphe des dépendances fonctionnelles
    3. Le modèle conceptuel des données (MCD) : entités, associations et cardinalités
    4. Validation du MCD et modèle conceptuel des traitements (MCT)

    Modalités d’évaluation

    Volume horaire : 27 h de cours magistral (CM), 13 h de travaux dirigés (TD), 0 h de TP et 40 h de travail personnel de l’étudiant (TPE) ; 4 crédits. Évaluation : contrôle continu (TD notés, étude de cas MERISE rendue en binôme, quiz en ligne) comptant pour 40 % et examen terminal écrit (modélisation d’un cas complet : dictionnaire, GDF, MCD, MCT) comptant 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.
    • J. Gabay, Merise et UML pour la modélisation des systèmes d’information, Dunod.
    • C. Soutou, Modélisation de bases de données : UML et les modèles entité-association, Eyrolles.