Teaching

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.

2020-2021

I am planning to teach a series of short courses tailored to introduce both students (advanced undergrads and up) and professionals to the practical use of formal methods in Spain, where these topics are still greatly understudied vis-à-vis other countries. (These are currently on hold due to the ongoing coronavirus pandemic).

  • Introduction to verified programming. An abridgment of the verification and security course with a focus on the former.

  • Advanced functional programming. Another course in preparation.

2019-2020

  • Software engineering (CS3053). I was a lecturer at the American University of Paris, teaching a full course based on the excellent Engineering Software as a Service. The second half of this class, including the group projects in which students built web applications applying modern technologies methodologies, was carried out remotely in a geographically distributed clasroom and teams of students.

  • Software foundations: introduction to verified programming. Upcoming course to be taught as part of the interdisciplinary summer school of the University of Zaragoza, based on Software foundations.

2018-2019

2017-2018

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.

2016-2017

2015-2016

Before

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.