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

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

Unité d’enseignement : GELO · S4 · UE2 — Mathématiques Appliquées à l’Informatique

  • Statistiques & Data Analysis

    Ce cours forme à l’analyse de données de bout en bout avec l’écosystème Python : explorer et nettoyer un jeu de données réel (EDA), le décrire statistiquement, le visualiser, en réduire la dimension (ACP, t-SNE, UMAP) puis construire des pipelines reproductibles avec scikit-learn. Les jeux de données utilisés sont inspirés du contexte nigérien : mesures de qualité du réseau mobile par ville, logs de serveurs, trafic d’une application de Mobile Money, performance d’une application mobile d’e-commerce. Ils sont simulés (générés par programme avec une graine fixe) afin que chaque résultat soit reproductible ; la même démarche s’applique à des données réelles. Tous les programmes du cours ont été exécutés (Python 3, pandas, numpy, scipy, scikit-learn, matplotlib, seaborn, plotly, streamlit, umap-learn).

    Objectifs d’apprentissage

    • Appliquer les techniques d’analyse exploratoire de données (EDA) à des datasets réels.
    • Maîtriser les méthodes de réduction de dimensionnalité : ACP, t-SNE, UMAP.
    • Implémenter des pipelines d’analyse de données avec Python (pandas, scikit-learn).
    • Visualiser et communiquer des résultats d’analyse avec matplotlib, seaborn et Plotly.

    Prérequis

    Statistiques Inférentielles & Probabilités (SIP2122, GELO S2) : moyenne, variance, lois usuelles, tests d’hypothèses, p-valeur. Bases de Python (listes, fonctions) ; une première pratique de pandas est un plus.

    Plan du cours

    1. Leçon 1 — Analyse Exploratoire des Données (EDA)
    2. Leçon 2 — Visualisation de Données
    3. Leçon 3 — Réduction de Dimensionnalité
    4. Leçon 4 — Pipelines d’Analyse avec Scikit-learn

    Travaux pratiques

    • TP : EDA sur un dataset de métriques réseau au Niger (Leçon 1).
    • TP : pipeline complet d’analyse de données de performance d’une application mobile (Leçon 4).
    • Réalisation d’un tableau de bord interactif Streamlit déployé en local (Leçon 2).

    Modalités d’évaluation

    Volume horaire : CM 20 h, TD 6 h, TP 0 h, TPE 14 h (CTT 40 h) — 2 crédits. Les TP du plan sont réalisés en TD et en travail personnel encadré. Évaluation CC + ET : contrôle continu 30 % (notebooks d’EDA et de pipeline), examen terminal 70 % ; nature mixte.

    Bibliographie

    • W. McKinney, Python pour l’analyse de données, O’Reilly.
    • A. Géron, Hands-On Machine Learning with Scikit-Learn, Keras and TensorFlow, O’Reilly.
    • J. VanderPlas, Python Data Science Handbook, O’Reilly (disponible en ligne).
    • Documentations officielles de pandas, scikit-learn, seaborn, Plotly et Streamlit.
  • Recherche Opérationnelle Avancée

    Ce cours prolonge la Recherche Opérationnelle de S3 (programmation linéaire, graphes) vers des outils plus puissants, largement utilisés en génie logiciel, en réseaux et en science des données : l’optimisation non linéaire (au cœur de l’apprentissage automatique), la programmation dynamique (algorithmes de chaînes, de graphes, de cache), la théorie des jeux (systèmes multi-agents, enchères de ressources, concurrence entre fournisseurs) et les méta-heuristiques (problèmes combinatoires trop grands pour les méthodes exactes). Chaque notion est illustrée par un calcul à la main et par un programme Python exécuté, sur des cas concrets : réseau fibre d’une commune, tournée d’agences d’une microfinance, cache d’une application e-commerce, routeurs Niamey–Maradi.

    Objectifs d’apprentissage

    • Maîtriser les méthodes d’optimisation non linéaire appliquées aux systèmes informatiques.
    • Appliquer la théorie des jeux aux problèmes de décision dans les systèmes multi-agents.
    • Utiliser la programmation dynamique pour résoudre des problèmes complexes d’optimisation.
    • Concevoir et analyser des algorithmes d’optimisation méta-heuristiques.

    Prérequis

    Recherche Opérationnelle (ROP3112, GELO S3) ; Mathématiques Discrètes & Logique (MDS2121). Sont supposés acquis : dérivées partielles, calcul matriciel élémentaire, graphes, programmation Python (listes, fonctions, boucles).

    Plan du cours

    1. Leçon 1 — Optimisation Non Linéaire
    2. Leçon 2 — Programmation Dynamique
    3. Leçon 3 — Théorie des Jeux
    4. Leçon 4 — Méta-heuristiques

    Travaux pratiques

    • TP Python : implémentation d’un algorithme génétique pour l’optimisation d’un réseau (Leçon 4), avec comparaison à la solution exacte.
    • TD intégrés : descente de gradient et Newton à la main, KKT, sac à dos et Floyd-Warshall, stratégies mixtes, enchères, recuit simulé et colonies de fourmis.

    Modalités d’évaluation

    Volume horaire : CM 20 h, TD 10 h, TP 0 h, TPE 30 h (CTT 60 h) — 3 crédits. Évaluation CC + ET : contrôle continu 30 % (TD, programmes rendus), examen terminal 70 % ; nature mixte.

    Bibliographie

    • F. S. Hillier & G. J. Lieberman, Introduction to Operations Research, McGraw-Hill.
    • J. Nocedal & S. J. Wright, Numerical Optimization, Springer.
    • T. H. Cormen et al., Introduction to Algorithms (chapitres programmation dynamique et plus courts chemins), MIT Press.
    • S. Boyd & L. Vandenberghe, Convex Optimization, Cambridge University Press (disponible en ligne).