Algorithms for Data Analysis

This course is inspired by the one written by Charlotte Laclau who kindly granted me her source files. So far, I use the jupyter notebooks cowritten by Charlotte Laclau and Julien Tissier. Note that it will change over the next few years according to feedback from students and teachers.

The present course aims to develop a solid understanding of various algorithms and techniques used for processing and analyzing data. This includes gaining proficiency in implementing and evaluating algorithms, selecting appropriate algorithms for specific tasks, understanding algorithmic complexity and efficiency, and applying algorithms to solve real-world data analysis problems. The goal is to equip students with the necessary knowledge and skills to effectively and efficiently analyze large datasets, extract valuable insights, and make data-driven decisions.


It is necessary to have prior knowledge on both the fundamentals of mathematics (analysis, linear algebra, probability, statistics) and computer science. As such, it is advised to be proficient in

Educational Goals

This course is designed to provide a quick introduction to data analysis algorithms for data engineers. As such, it meets different educational objectives:

Course Program

The course is given in 8 sessions of 3 hours each

- Tutorial class on the concepts & librairies of data analysis ( Slides)
  • Numpy
  • Pandas
  • Scikit-learn

- Practical exercice ( Jupyter notebook)
- Practical exercices on two use cases
  1. Behaviours of a telecom operator's customers ( Jupyter notebook)
  2. Video games sales ( Jupyter notebook)
- Tutorial class on machine learning ( Slides)
  • differences between AI and ML
  • distinction between supervised and unsupervised learning
  • training, validation and testing of ML models

- Tutorial class on simple supervised learning models ( Slides)
  • K neirest neighbors
  • Linear Regression
  • Ridge Regression

- Practical exercices ( Jupyter notebook)
- Tutorial class on simple supervised classification models ( Slides)
  • Logistic Regression
  • Decision Trees

- Tutorial class on numerical optimization ( Slides)
  • Convex vs. nonconvex
  • Role and impact of the step-size

- Practical exercices
  1. Toy examples ( Jupyter notebook)
  2. Wine quality analysis ( Jupyter notebook)

- Tutorial class on advanced supervised classification algorithms ( Slides)
  • SVM
  • Neural Networks

- Practical exercices ( Jupyter notebook)
- Tutorial class on unsupervised learning ( Slides)

- Practical exercices ( Jupyter notebook)
- Practical exercices on two use cases
  1. Determine if a mushroom is poisonous ( Jupyter notebook)
  2. Predict cell phone prices ( Jupyter notebook)

Course Materials


This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License
Creative Commons License