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

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

Unité d’enseignement : TR · S2 · UE1 — Programmation et Bases de données

  • Introduction aux bases de données

    Toute infrastructure de télécommunications s’appuie sur des bases de données : inventaire des équipements et des liens, annuaire des utilisateurs, base des abonnés d’un opérateur (HLR/HSS), journaux d’événements, tickets d’incidents, facturation Mobile Money. Ce cours introduit les principes de conception et d’exploitation des bases de données relationnelles. L’étudiant apprend à modéliser un besoin (modèle entité-association), à le traduire en tables normalisées (modèle relationnel), à interroger et mettre à jour les données avec le langage SQL, puis à appliquer ces compétences à des bases de données réseau : inventaire de parc, annuaire (y compris la notion d’annuaire LDAP) et stockage de journaux syslog.

    Les travaux pratiques utilisent SQLite (léger, sans serveur) puis MariaDB/MySQL, logiciels libres disponibles sur les postes du laboratoire. Les exemples s’appuient sur le réseau d’une entreprise nigérienne ayant un siège à Niamey et des agences à Dosso, Maradi et Zinder.

    Objectifs d’apprentissage

    • Expliquer le rôle d’un SGBD et les propriétés attendues d’une base de données (intégrité, cohérence, sécurité, transactions ACID).
    • Construire un modèle conceptuel entité-association avec cardinalités à partir d’un cahier des charges.
    • Traduire un MCD en schéma relationnel et le normaliser jusqu’à la 3e forme normale.
    • Écrire des requêtes SQL de définition (CREATE, ALTER) et de manipulation (INSERT, UPDATE, DELETE, SELECT avec jointures et agrégats).
    • Concevoir et exploiter une base d’inventaire réseau, un annuaire et une base de journaux.

    Prérequis

    Aucun prérequis spécifique ; une aisance avec l’utilisation d’un ordinateur et des notions d’algorithmique facilitent l’apprentissage.

    Plan du cours

    1. Leçon 1 — Systèmes d’information, SGBD et modèle entité-association
    2. Leçon 2 — Modèle relationnel, passage au schéma et normalisation
    3. Leçon 3 — Le langage SQL : définition et manipulation des données
    4. Leçon 4 — Bases de données appliquées aux réseaux : inventaire, annuaires et journaux

    Modalités d’évaluation

    Volume horaire : CM 20 h, TD 10 h, TP 20 h, TPE 10 h, 3 crédits. Évaluation : contrôle continu (TD de modélisation, comptes rendus de TP avec scripts SQL, quiz en ligne) et examen terminal écrit (modélisation et requêtes SQL).

    Bibliographie

    • C. Soutou, SQL pour les bases de données (référence de la description officielle) et Programmer avec MySQL, Eyrolles.
    • C. Soutou, F. Brouard, Modélisation de bases de données : UML et les modèles entité-association, Eyrolles.
    • G. Gardarin, Bases de données, Eyrolles.
    • R. Elmasri, S. Navathe, Fundamentals of Database Systems, Pearson.
    • Documentation officielle SQLite (sqlite.org) et MariaDB (mariadb.com/kb).
  • Algorithmique et programmation 2

    Ce cours prolonge Algorithmique et programmation 1 et oriente la programmation vers les besoins concrets du technicien en télécommunications et réseaux. On y étudie les structures de données avancées (piles, files, arbres), qui sont au cœur des équipements réseau (files d’attente des interfaces, tables de routage, arbres DNS), puis la programmation orientée objet qui permet de modéliser proprement un parc d’équipements. Le cours se termine par l’écriture de scripts d’automatisation en Python : inventaire, calcul d’adressage, vérification de disponibilité, analyse de journaux et sauvegarde de configurations, avec une approche strictement défensive et documentée.

    Le langage support est Python 3, installé sur les postes du laboratoire (Linux ou Windows). Les exemples s’appuient sur des cas nigériens : réseau d’une mairie, liaisons entre agences de Niamey et Dosso, parc d’un opérateur.

    Objectifs d’apprentissage

    • Implémenter et utiliser une pile, une file et une file circulaire, et analyser leur complexité.
    • Construire un arbre binaire de recherche, le parcourir et estimer le coût d’une recherche.
    • Concevoir des classes Python avec encapsulation, héritage et polymorphisme pour modéliser des équipements réseau.
    • Écrire des scripts d’automatisation fiables (fichiers CSV, module ipaddress, ping, expressions régulières, journaux).
    • Adopter de bonnes pratiques : tests, gestion des erreurs, commentaires, sécurité des identifiants.

    Prérequis

    Algorithmique et programmation 1 : variables, types, conditions, boucles, fonctions, listes et dictionnaires en Python. Notions de base sur l’adressage IP.

    Plan du cours

    1. Leçon 1 — Piles et files : structures linéaires et applications réseau
    2. Leçon 2 — Arbres binaires, arbres de recherche et files de priorité
    3. Leçon 3 — Programmation orientée objet en Python
    4. Leçon 4 — Scripts d’automatisation appliqués aux réseaux

    Modalités d’évaluation

    Volume horaire : CM 10 h, TD 10 h, TP 30 h, travail personnel (TPE) 10 h, 3 crédits. Évaluation : contrôle continu (comptes rendus de TP, scripts rendus, quiz en ligne) et examen terminal écrit comportant de l’algorithmique et de la lecture/écriture de code.

    Bibliographie

    • T. Cormen, C. Leiserson, R. Rivest, C. Stein, Algorithmique (Introduction à l’algorithmique), Dunod.
    • G. Swinnen, Apprendre à programmer avec Python 3, Eyrolles.
    • M. Lutz, Learning Python, O’Reilly.
    • K. Edelman, S. Lowe, M. Oswalt, Network Programmability and Automation, O’Reilly.
    • Documentation officielle Python : docs.python.org (modules collections, heapq, ipaddress, csv, re, subprocess).