teaching

Courses

Here I list the courses associated with my teaching at Leiden University.

Spring 2027

Software Engineering · 6 ECTS
As part of the course, students carry out real-world software projects in collaboration with LUdev.

I am currently designing lecture materials that cover modern software development and examine how AI automation is reshaping every stage of the traditional software development lifecycle. One of the questions of the course is: how can the next generation of software engineers leverage these advances to dramatically improve their productivity and prepare for their careers?

If you have a commercial or academic software project that could benefit from a student team, and you would be interested in acting as a client for the course, please drop me an email.

Winter 2026

Formal Methods for AI · 6 ECTS
This is a course that I will design by myself, covering key topics of safe AI and automated reasoning. If you are designing and/or teach a similar course and are interested in course design, feel free to reach out to me. I am always happy to discuss it.


Bachelor and Master Projects

I am always excited to work with motivated students. Below are a few directions and example topics, but I’m equally happy to hear your ideas. Feel free to also browse my publications for inspiration.

Most projects involve implementing new or improved algorithms and therefore benefit from programming experience, ideally in C++ or Python. For many topics, curiosity and a willingness to learn during the project are more important than prior expertise.

Direction: Certified Neural Control

Deep learning is increasingly used in robotics and control, yet ensuring safety and stability remains challenging. We build tools that make learned controllers safer and produce data-driven proofs (certificates) of their correctness. We are also interested in formally verifying the correctness of these controllers.

If this fits you:

  • You enjoy implementing algorithms and are curious about machine learning, C++ or Python preferred.

  • We have projects regarding case studies, building and evaluating tools, and theoretical advances.

Direction: Symbolic Verification & Automated Reasoning

Formal methods are widely used to guarantee the correctness of safety-critical systems. The underlying solvers are complex; we design certificates (independently checkable evidence) that validate solver results and increase trust.

If this fits you:

  • You enjoy implementing algorithms (C++ preferred) and are interested in formal methods such as SAT/SMT and model checking.

  • We have projects regarding case studies, building and evaluating tools, and theoretical advances.