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.
2021-2022
- Advanced programming techniques: the functional paradigm. Coming soon!
2020-2021
- Software foundations: introduction to verified and secure programming. The second edition of our summer school will take place in July.
I am also 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.
-
Introduction to verified programming. A slight abridgment of the verification part of our introductory course to verified programming. Originally scheduled for 9-10 and 16-17 February 2021, currently postponed until after the 2021 edition of the summer school.
-
Introduction to functional programming. Another course in preparation.
2019-2020
-
Software foundations: introduction to verified programming. I proposed, directed and taught, together with Ricardo Rodríguez, a 50-hour summer school on verified and secure programming, as part of the 93th edition of the summer university of the University of Zaragoza. I was in charge of the verification part, based on Software foundations and which comprised three fourths of the lectures, as well as tailored projects for students taking the class for credit. Due to the coronavirus pandemic, the course took place remotely. The class was extremely well received, obtaining the top 2nd evaluation among the 75 courses in the summer university.
-
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.
2018-2019
- Writing and verifying functional programs in Coq. I taught the practical sessions for one of the groups of the Mathinfoly summer school at INSA in Lyon, and cosupervised all other student activities.
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.
- Computational logic (INF551). Artificial intelligence in mathematical reasoning.
2016-2017
- Concurrent and distributed programming (INF431)
- Parallel programming and big data (INF442). For this class I also proposed and supervised student projects to analyze real-time data from the public transportation system of the Paris metropolitan area. This continues to be offered every year to new students as part of the regular lineup of class projects (as of 2021).
2015-2016
- Concurrent and distributed programming (INF431)
- Programming language principles (INF321). Here I revamped one of the five two-week projects to serve as an introduction to unit testing and test-driven development.
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.