I love teaching. It is deeply rewarding both personally and intellectually, and a necessary extension of personal study and research.

I am interested in organizing and teaching innovative courses as head instructor, as well as in collaborating with others to teach such courses at various levels.

In particular, I am very keen to make novel and important developments accessible and useful to students and professionals alike, especially in my areas of expertise; as well to mentor people interested in these areas.

This page lists some courses that I have been fortunate to teach and plan to teach in the near future, as well as related activities.


I am planning to teach a series of short courses in Spain tailored to introduce both students (advanced undergrads and up) and professionals to the practical use of formal methods, still greatly understudied vis-à-vis other countries.

  • Introduction to verified programming. Upcoming course based on Software Foundations.

  • Advanced functional programming. Another course in preparation.



During this and the previous two school years I taught laboratory classes in the computer science track of the engineering cycle at École polytechnique, typically in weekly two-hour sessions for two separate groups.




Between 2012 and 2014 I was in charge of various in-house training courses offered to junior engineers and testers covering a variety of topics, including software stacks, development processes, problem domains, systems architecture and business functions.