Data science for engineers with Python
ENG-209 / 3 credits
Teacher(s): Bouillet Eric Pierre, Pellet Jean-Philippe, Verscheure Olivier
Language: French
Résumé
Ce cours est divisé en deux partie. La première partie présente le langage Python et les différences notables entre Python et C++ (utilisé dans le cours précédent ICC). La seconde partie est une introduction aux outils, librairies Python et méthodes collaboratives de data science.
Contenu
La première partie traite des spécificités du langage Python et passe en revue la syntaxe, les structures de données de base, les listes, sets, et dictionnaires, la lecture et l'écriture de fichiers, l'usage de classes-données (dataclasses), et une introduction de base à un style de programmation plus fonctionnel.
La seconde partie expose les étudiants au processus complet de Data Science, depuis l'acquisition de données à l'extraction de connaissances appliquées à des problèmes réels. Cette partie se déroulera sur 8 semaines (à partir du 6e lundi de cours), selon les 5 modules suivants:
1. Préparer son environnement interactif pour le Data Science
- À la dure: conda, git, Jupyter et docker
- Plus pratique: renku
2. Manipulation et exploration des données avec la librairie Python Pandas
- Projet #1: Exploration de données CO2 provenant d'un réseau national de capteurs
3. Visualisation de la donnée avec Matplotlib
- Projet #2: Visualisation spatiotemporelle des données CO2 de ces capteurs
4. Machine Learning (ML) avec Scikit-learn
- Projet #3: Regroupement des capteurs de comportements similaires (clustering)
- Projet #4: Detection de comportements anormaux des capteurs (modélisation par régression)
5. Communication des résultats à une audience non technique avec Voilà
- Projet #5: Adaptation des projets 2, 3 et 4 en une application interactive web
Mots-clés
Programmation, Python, Data Science, Machine Learning
Compétences requises
Concepts importants à maîtriser
Notions de programmation de base:
- Structures de contrôles (instructions conditionnelles, boucles)
- Concepts de fonctions/méthodes
- Concepts de classes et d'instances
Acquis de formation
A la fin de ce cours l'étudiant doit être capable de:
- Modéliser en langage Python les éléments pertinents d'une situation problème
- Transposer les connaissances acquises en C++ vers Python
- Appliquer les constructions de haut niveau de Python pour créer des structures de données linéaires ou associatives
- Evaluer les avantages et inconvénient d'un langage haut niveau par rapport à un langage plus bas niveau
- Utiliser les librairies Python standards pour le Data Science
- Concevoir des solutions applicables à des problèmes Data Science réels
Compétences transversales
- Utiliser une méthodologie de travail appropriée, organiser un/son travail.
- Accéder aux sources d'informations appropriées et les évaluer.
- Utiliser les outils informatiques courants ainsi que ceux spécifiques à leur discipline.
- Faire preuve d'esprit critique
Méthode d'enseignement
Séances ex cathedra avec exercices et travaux pratiques
Travail attendu
Participation aux cours, résolution d'exercices, réalisation du travail attendu en dehors de heures de cours
Méthode d'évaluation
Contrôle continu pendant le semestre réparti selon:
- Examen mid-term (concluant la première partie): 1/3 de la note totale
- Examen final (sous forme de projet Data Science): 2/3 de la note totale
Encadrement
Office hours | Non |
Assistants | Oui |
Forum électronique | Oui |
In the programs
- Semester: Fall
- Exam form: During the semester (winter session)
- Subject examined: Data science for engineers with Python
- Courses: 1 Hour(s) per week x 14 weeks
- Project: 2 Hour(s) per week x 14 weeks
- Type: mandatory
- Semester: Fall
- Exam form: During the semester (winter session)
- Subject examined: Data science for engineers with Python
- Courses: 1 Hour(s) per week x 14 weeks
- Project: 2 Hour(s) per week x 14 weeks
- Type: optional
Reference week
Mo | Tu | We | Th | Fr | |
8-9 | |||||
9-10 | |||||
10-11 | |||||
11-12 | |||||
12-13 | |||||
13-14 | |||||
14-15 | |||||
15-16 | |||||
16-17 | |||||
17-18 | |||||
18-19 | |||||
19-20 | |||||
20-21 | |||||
21-22 |