Initiaton à la programmation pour futurs managers

Catalogue des cours de Institut Mines-Télécom Business School

Code

MGFF INF 4002

Niveau

M1

Discipline

Informatique

Langue

Français/French

Crédits ECTS

1

Heures programmées

18

Charge totale étudiant

20

Coordonnateur(s)

Département

  • Data analytics, Économie et Finances

Equipe pédagogique

Introduction au module

Ce module propose une initiation structurée et progressive à la programmation Python appliquée à l'analyse de données. Il s'adresse à des étudiants sans expérience préalable en programmation et les accompagne pas à pas, depuis les fondements du langage jusqu'aux premières applications d'analyse de données réelles.

Les séances alternent exposés courts, démonstrations en direct et ateliers pratiques sur Jupyter Lab. Le cours couvre les structures fondamentales du langage Python, la manipulation de données avec Pandas, la visualisation, et une introduction à l'apprentissage automatique. Il intègre également une réflexion critique sur les biais algorithmiques et la responsabilité numérique.

Finalité d'apprentissage (Bloc de compétences)

  • 1. S’approprier les usages avancés et spécialisés des outils de l’intelligence digitale en s’assurant de leur impact durable et responsable

Objectifs d'apprentissage

  • 1.1 - Auditer les usages avancés et spécialisés des outils de l'intelligence digitale, afin de les mobiliser avec pertinence, en tenant compte du contexte stratégique des organisations.
  • 1.2 - Actionner les outils de l'intelligence digitale de manière efficiente, pour accompagner les transformations sociétale, numérique, énergétique et environnementale des organisations, en s'assurant de leur impact durable et responsable.

Traits de compétences

- Écrire, lire et déboguer des scripts Python (variables, types, fonctions, structures de contrôle)
- Manipuler des structures de données Python (listes, dictionnaires, tuples, sets)
- Utiliser Pandas pour charger, nettoyer, transformer et analyser des DataFrames réels
- Produire des visualisations exploratoires pertinentes (matplotlib, seaborn)
- Identifier et questionner des biais dans un jeu de données ou un algorithme
- Comprendre les principes fondamentaux d'un modèle de régression et de classification
- Porter un regard critique sur les implications éthiques du traitement automatique de données

Contenu : structure du module et agenda

Séance 1 (3h) — Python fondamentaux
- Présentation du cours, environnement Jupyter Lab
- Variables, types (int, float, str, bool, NoneType), opérateurs
- Structures de contrôle : conditions (if/elif/else), boucles (for, while)
- Lecture et écriture de code Python simple
- TP : premiers scripts — jeux de données textuels simples

Séance 2 (3h) — Structures de données et fonctions
- Listes : création, indexation, slicing, méthodes (append, sort, pop)
- Dictionnaires : clés-valeurs, parcours, méthodes
- Tuples et sets : usages et différences
- Fonctions : définition, paramètres, valeurs de retour, portée
- TP : manipulation de listes et dictionnaires sur des données structurées

Séance 3 (3h) — Pandas I : introduction à l'analyse de données
- Présentation de Pandas et du DataFrame
- Chargement de données (CSV, Excel, JSON)
- Sélection et indexation (loc, iloc, conditions booléennes)
- Filtrage, tri, renommage de colonnes
- Statistiques descriptives : describe, value_counts, mean, median, std
- TP : exploration d'un dataset réel (secteur au choix : démographie, économie, sport)*

Séance 4 (3h) — Pandas II : transformation et enrichissement
- Groupby : agrégations par groupe
- Merge et join : fusion de plusieurs DataFrames
- Pivot tables et reshaping
- Gestion des valeurs manquantes (dropna, fillna)
- Nettoyage de données : doublons, types incorrects, valeurs aberrantes
- TP : analyse complète d'un dataset propre et sale

Séance 5 (3h) — Visualisation et biais algorithmiques
- Matplotlib : subplots, titres, légendes, styles
- Seaborn : histplot, barplot, scatterplot, heatmap, boxplot
- Principes d'une visualisation efficace et non trompeuse
- Biais algorithmiques : biais de représentation, biais historiques, discrimination statistique
- Étude de cas : dataset de recrutement ou crédit — identification des biais
- TP : produire un rapport visuel commenté sur un dataset réel

Séance 6 (3h) — Initiation au Machine Learning + Évaluation
- Principes de l'apprentissage automatique : entraînement, test, généralisation
- Régression linéaire : prédiction d'une variable continue (scikit-learn)
- Classification : arbre de décision ou régression logistique
- Interprétation des résultats et limites des modèles
- Retour collectif sur les travaux de groupe
- Évaluation individuelle en séance (exercice Python, 1h)

Contribution à l'atteinte des ODD (Objets du Développement Durable)

ODD 4 — Éducation de qualité : Ce cours développe des compétences techniques professionnelles en forte demande sur le marché du travail (Python, analyse de données, visualisation). La progression pédagogique structurée garantit l'accessibilité à des étudiants sans bagage informatique préalable, contribuant à réduire les inégalités d'accès aux métiers du numérique.

ODD 9 — Industrie, innovation et infrastructure : Les étudiants acquièrent une maîtrise des outils fondamentaux de la transformation numérique des entreprises (Python, Pandas, scikit-learn). Ces compétences soutiennent directement l'innovation et la modernisation des infrastructures organisationnelles.

ODD 10 — Réduction des inégalités : La séance 5 est entièrement consacrée aux biais algorithmiques et à la discrimination statistique. Les étudiants apprennent à identifier, mesurer et questionner les biais présents dans des données réelles (datasets de recrutement, de crédit, de justice prédictive). Cette sensibilisation est intégrée à la pratique de l'analyse de données, pas traitée comme un module séparé.

Nombre d'ODD abordés parmi les 17

4,9,10,

Apprentissage

synchrone

Méthode pédagogique

- Exposition courte suivie d'application immédiate : chaque concept est illustré et pratiqué en séance
- Ateliers pratiques individuels sur Jupyter Lab (ordinateur portable requis)
- Étude de cas sur données réelles : datasets publics (démographie, économie, sport, santé)
- Travail de groupe : analyse collaborative d'un dataset de bout en bout (séances 3-6), restitué à l'oral
- Mise en perspective critique : chaque outil est présenté avec ses limites et ses enjeux éthiques

Système de notation et modalités de rattrapage

Rapport de groupe — Analyse de données réelles (notebook Jupyter remis via Moodle, groupes de 3-4)
50 %
Soutenance orale — Présentation du rapport en séance 6 (10 min + questions par groupe) — 50 %

Un examen sur table individuel (1h, exercices Python sur données fournies, documents autorisés) peut s'ajouter selon décision de l'enseignant communiquée en début de cours. Les modalités de pondération sont précisées à ce moment.

CF2 — Rattrapage :
Rapport individuel sur un nouveau dataset fourni par l'enseignant (notebook Jupyter remis dans un délai communiqué), suivi d'une soutenance orale (10 min + questions). L'épreuve remplace l'ensemble des notes CF1.

Règlement du module

Communication Professeur–Étudiant
Le professeur contactera les étudiants via leur adresse mail scolaire (IMT-BS/TSP) et le portail Moodle. Il est de la responsabilité de l'étudiant de consulter régulièrement sa boîte mail IMT-BS/TSP.

Présence
La présence en séance est obligatoire. Les ateliers pratiques sont progressifs : une absence non rattrapée impacte les séances suivantes. Toute absence doit être signalée à l'avance et justifiée auprès du secrétariat.

Matériel requis
Chaque étudiant doit disposer d'un ordinateur portable avec Python 3 et Jupyter Lab installés. Une vérification de l'environnement sera effectuée en séance 1. Une solution JupyterHub en ligne sera proposée en cas de problème d'installation.

Travaux de groupe
Les groupes sont constitués en séance 2. Chaque membre contribue activement. En cas de déséquilibre manifeste dans les contributions, une évaluation individuelle différenciée peut être appliquée.

Intégrité académique
Les travaux individuels doivent être réalisés de manière autonome. L'usage d'outils d'IA générative est autorisé à condition d'être déclaré et annoté dans le notebook. Tout travail remis doit pouvoir être expliqué oralement par l'étudiant.

Références obligatoires et lectures suggérées

Obligatoires (en ligne, gratuits) :
- McKinney, W. Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython (3e éd., O'Reilly). Chapitres 2-3 (Python) + 5-10 (Pandas).
- Documentation officielle Pandas : https://pandas.pydata.org/docs/
- Documentation scikit-learn (séance 6) : https://scikit-learn.org/stable/getting_started.html

Suggérées :
- Rajagopalan, G. A Python Data Analyst's Toolkit (Apress)
- Vincent & Le Goff. Apprenez à programmer en Python (OpenClassrooms, gratuit)
- Stephenson, B. The Python Workbook (Springer)
- Snowden, J. Python For Beginners: A Practical Guide (Computer Programming Book 1)

Pour aller plus loin :
- Introduction Python interactive : https://nbviewer.jupyter.org/github/phelps-sg/python-bigdata/blob/master/src/main/ipynb/intro-python.ipynb
- Maîtriser Jupyter : https://realpython.com/jupyter-notebook-introduction/
- Bibliothèques numériques Python : https://nbviewer.jupyter.org/github/phelps-sg/python-bigdata/blob/master/src/main/ipynb/numerical-slides.ipynb

Mots-clés

Python, Pandas, analyse de données, Jupyter, visualisation, machine learning, biais algorithmiques, scikit-learn, transformation numérique, formation initiale

Prérequis

Aucun prérequis en programmation. Une aisance avec les outils bureautiques (Excel, tableurs) est un plus. Les étudiants doivent disposer d'un ordinateur portable fonctionnel