Code
MGFF INF 4002
Level
M1
Field
Informatique
Language
Français/French
ECTS Credits
1
Class hours
18
Total student load
20
Program Manager(s)
Educational team
Introduction to the module
Le développement de compétences en programmation est devenu une nécessité dans de nombreux domaines, notamment l’analyse de données, la science des données, et l’ingénierie logicielle. Python, en particulier, est un langage de programmation privilégié en raison de sa simplicité, de sa polyvalence, et de son vaste écosystème de bibliothèques. Ce cours vise à familiariser les étudiants avec les bases de la programmation en Python et à leur fournir les outils nécessaires pour manipuler, analyser, et visualiser des données.
Au fil des sessions, les étudiants apprendront les concepts fondamentaux de la programmation, tels que les structures de données, les boucles, les fonctions, et la manipulation de données avec des bibliothèques populaires comme Pandas. Une partie du cours sera également dédiée à la visualisation de données, permettant ainsi aux étudiants de transformer des ensembles de données en graphiques pertinents à l’aide de Matplotlib et Seaborn.
En plus des aspects techniques, ce cours abordera l’éthique des développeurs, en mettant l’accent sur l’importance de la confidentialité, de la transparence, et de l’équité dans la gestion des données. Les étudiants apprendront à programmer de manière responsable tout en développant des compétences essentielles en Python.
Learning goals/Programme objectives
- LG2 Having the ability to manage uncertainty and complexity with accuracy and rigor
- LG4 Having access to different cross disciplinary management approaches and tools
Learning objectives/Intended learning outcomes
- 2.1 - Identify and analyze in depth problems, causes and impacts
- 2.2 - Explore solutions, decisions, and their relative and absolute impacts
- 4.2 - Understand and employ cross-disciplinary concepts, knowledge, theories
- 4.3 - Apply cross-disciplinary management approaches and tools effectively and judiciously
Content : structure and schedule
Objectif du cours :
Familiariser les étudiants avec les bases de la programmation en Python et leur donner les outils nécessaires pour manipuler, analyser et visualiser des données, tout en développant une conscience éthique autour de la gestion des données et des biais algorithmiques.
Session 1: Introduction à Python et Notebooks (3h00)
Pourquoi Python? (1h00)
• Pourquoi Python comme langage de programmation : accès ouvert, large communauté, et bonne gestion de l’éthique dans la science des données.
• Notion d’éthique dans le choix des outils open-source pour une utilisation transparente et équitable des ressources.
Notebooks et Markdown (2h00)
• Introduction aux Jupyter Notebooks et Google Colab : Outils gratuits et accessibles, favorisant l’égalité d’accès aux outils d’apprentissage.
• Comment écrire du texte en Markdown pour une documentation claire et compréhensible, contribuant à la transparence du code et à sa réutilisabilité.
• Importance de la documentation dans les projets collaboratifs pour éviter la confusion et promouvoir un développement responsable.
Session 2: Manipulation des données (Partie 1 : 3h00)
Ensemble et collections (3h00)
• Listes, tuples et dictionnaires.
• Opérations courantes sur les collections.
Session 3: Concepts fondamentaux de la programmation (3h00)
Boucles et contrôle de flux (1h30)
• Boucles for, while, et contrôle de flux (break, continue).
Conditions et structures de contrôle (1h00)
• if, elif, else et opérateurs de comparaison.
Définition de fonctions (0h30)
• Introduction aux fonctions, paramètres et valeurs de retour.
Session 4: Manipulation des données et visualisation (3h00)
Introduction à Pandas (1h30)
• Création et manipulation de DataFrames.
• Filtrage, tri, et agrégation des données.
• Discussion éthique : l’importance de ne pas manipuler les données de manière biaisée et de garantir l’intégrité des résultats obtenus à partir des données.
Visualisation de données (1h30)
• Introduction à Matplotlib et Seaborn pour créer des visualisations.
• Cas pratique avec des données réelles (ex : Chipotle).
• Implication éthique : l’impact des choix de visualisation sur la perception des données, et l’importance de représenter les informations de manière honnête et non trompeuse.
• Importance de l’éthique dans la création de fonctions réutilisables et transparentes, évitant des comportements non désirés ou injustes dans les systèmes automatisés.
Évaluation :
• Examen final sur papier, basé sur la résolution de problèmes pratiques et théoriques.
Sustainable Development Goals
Ce cours soutient activement les ODD 10 et ODD 16 en promouvant une programmation éthique et la lutte contre les biais algorithmiques. En réduisant les inégalités (ODD 10), les étudiants apprendront à développer des systèmes justes qui minimisent les discriminations dans les technologies. En parallèle, ils contribueront à des sociétés plus inclusives et équitables (ODD 16) en intégrant des pratiques de codage responsables et transparentes.
Number of SDG's addressed among the 17
10, 16
Learning delivery
Asynchrone
Pedagogical methods
Cours en Amphi pour les éléments théorique et grands principes:
. Cours et éléments de compréhension en TD
· Exercices d'application en cours : À la fin de chaque session, des exercices d'application seront proposés pour renforcer votre compréhension du contenu abordé. Il est essentiel de participer activement à ces exercices pour maximiser votre apprentissage.
· Exercices à la maison : En plus des exercices réalisés pendant les sessions, des devoirs à faire à la maison seront donnés. Ces exercices permettent de consolider vos connaissances et de vous préparer pour les sessions suivantes.
· Matériel supplémentaire : Pour ceux qui souhaitent approfondir leurs compétences ou explorer des aspects non couverts en cours, du matériel supplémentaire sera fourni. Cela inclut des lectures, des tutoriels et des exercices pour aller plus loin dans votre apprentissage de Python.
Evaluation and grading system and catch up exams
100% Examen Final
Textbook Required and Suggested Readings
Pour aller plus loin et bibliographie:
Complément pour les bases:
https://nbviewer.jupyter.org/github/phelps-sg/python-bigdata/blob/master/src/main/ipynb/intro-python.ipynb
Pour maitriser Jupyter:
https://nbviewer.jupyter.org/github/demotu/BMC/blob/master/notebooks/Transformation2D.ipynb
Pour les maths:
https://nbviewer.jupyter.org/github/phelps-sg/python-bigdata/blob/master/src/main/ipynb/numerical-slides.ipynb
Livres:
- Gayathri Rajagopalan. « A Python Data Analyst’s Toolkit. »
- Vincent & Le Goff. « Apprenez à programmer en Python. »
- Ben Stephenson. « The Python Workbook. »
- Wes McKinney. « Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython. »
- Snowden, John. « Python For Beginners: A Practical Guide For The People Who Want to Learn Python The Right and Simple Way (Computer Programming Book 1). »
Keywords
python, data, AI, Bias