ENG-209 / 3 crédits

Enseignant(s): Bouillet Eric Pierre, Pellet Jean-Philippe, Verscheure Olivier

Langue: Français


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

Ressources

Liens Moodle

Dans les plans d'études

  • Semestre: Automne
  • Forme de l'examen: Pendant le semestre (session d'hiver)
  • Matière examinée: Data science pour ingénieurs avec Python
  • Cours: 1 Heure(s) hebdo x 14 semaines
  • Projet: 2 Heure(s) hebdo x 14 semaines
  • Type: obligatoire
  • Semestre: Automne
  • Forme de l'examen: Pendant le semestre (session d'hiver)
  • Matière examinée: Data science pour ingénieurs avec Python
  • Cours: 1 Heure(s) hebdo x 14 semaines
  • Projet: 2 Heure(s) hebdo x 14 semaines
  • Type: optionnel

Semaine de référence

Lundi, 10h - 11h: Cours INF3

Lundi, 11h - 13h: Projet, autre INF3

Cours connexes

Résultats de graphsearch.epfl.ch.