Teaching

This page hosts the teaching materials I made for the lectures I gave when I was working for the SSE / USTC.

Those materials might contains errors and typos. You can use those materials, just don't forget to site their origin.

The slides are made with Latex and the Beamer package. The figures are mostly made with matplotlib, some are made with Graphviz and some are made with Inkscape.


Neuron network seminar

Those are materials I made for an introduction to neuron networks for work colleagues. Those materials are not self-contained, they come as a support for a serie of informal lectures ie. me and a whiteboard.


Data-mining

Those lectures were intended as an introduction to data-mining. There are some topics I only covered briefly without materials, like kernel methods and deep learning methods. When teaching this class, I used a lot the blackboard. I did not use a book, I designed the lectures myself. For cultural and social reasons, my students were very much thinking by the book, to the point that the meaning of what is in the book often came second to the book itself. By supressing the book altogether, I hoped to make my students think for themselves. The materials here are intended as a support, they are certainly not self-sufficient.

I gave experiment classes, where the students have to code algorithms introduced during the lectures. Those experiments are very directed. This is by design. Due to their previous training and the educational system they have been exposed to, my students did not have the training and the maturity to be left coding entirely by themselves.
  • Guidelines for homework download
  • Experiment 1 : utility classes and function for further experiments download
  • Experiment 2 : implementation of KMeans download
  • Experiment 3 : implementation of linear classification download
  • Experiment 4 : implementation of MLP download

Programming

Those lectures are introducing a variety of programming-related topic. I was supposed to teach Agile Development to students. However, the large majority of my students + could barely code anything, if they could code at all. + had no concepts of what is beautiful or ugly code. + never coded anything out of short exercises I was supposed to teach parkour to students who could barely walk...

I adapted to the circonstances. My goal with those lectures was to introduce some new concepts to my students. They were exposed to a very limited set of tools of practices, and never really studied how a software application or framework is made. Ultimately, I wanted to show them that programming can be fun, enjoyable, and that compute programs can be ugly or beautiful. I believe that an engineer does a better job if he/she enjoys what he/she is doing and have an aesthetic perception of his/her work.

  • Introduction
  • C, the Agile way
  • Build with 'waf'
  • Design patterns
  • Scripting languages
    • Introduction to scripting languages slides download
  • Python tutorial
    • Slides (work in progress, not complete) here
  • Object-Relational mapping
  • Web development frameworks, Flask
  • Flask usage demonstration
    • Slides here
    • Code for each steps of the demo here

I gave experiment classes, where the students have to put into practice the concept introduced during the lectures. I went looking after students, commenting on their work and helping those who were stuck. It seemed to work fairly well.