Teaching

System programming on Linux and Windows

M1, CentraleSupélec, 2020

I am in charge of this module.

  • Programming in C and Rust
  • System programming on Unix (pipe, sockets, threads, processes, mutex)
  • System programming on Windows with Win32 API (winsock, threads, processus, mutex)
  • Evaluation on a project. The students chose their subjects. For example:
    • simplified RAID 5 controller
    • Linux shell
    • VPN client

Graphs and algorithms

L3, INSA-Toulouse, 2018

This course presents some graph theory and their algorithms:

  • Topological sort and level structure
  • Breadth-first and depth-first search
  • Shortest path algorithms: Dijkstra, Bellman-Ford
  • Maximum flow / minimum cut with Ford-Fulkerson algorithm

Artificial intelligence

L3, University of Toulouse, 2015

This course aims to train the students in general artificial intelligence techniques:

  • Representation of problems with state diagrams
  • Automatic resolution with search algorithms (breadth-first search, depth-first search, iterative depth-first search, best-first, greedy search and A*)
  • Exploration of game tree (minimax algorithm)
  • Graph coloration (Welsh and Power algorithm and DSatur)
  • Resolution of constraint satisfaction problems (backtrack and forward checking algorithms)

Machine learning, classification and Bayesian network

M1, UPSSITECH engineering school, 2015

This course aims to train the students in machine learning techniques:

  • Overview of various ML techniques. Supervised learning (decision tree learning, k-nn, SVM) and unsupervised learning.
  • Experiments with Weka, a data mining tool
  • Bayesian reasoning and learning
  • Project on reinforcement learning: the students must develop an agent that learns to escape a maze with Q-learning.