Teaching

Interactive Textbooks

I am interested in developing new methods to better teach computer science. Together with Jonathan Brachthäuser and Klaus Ostermann we successfully applied for funds for our project "Informatik Interaktiv Erfahrbar Machen" with the Dr. K. H. Eberle Stiftung. (Link to press release.). In that project, we are developing new forms of lecture notes which embed interactive elements to improve the learning experience of our students.

Seminars

  • (SS24) Duality in Programming Languages Link to course.

    This seminar introduces the important concept of duality in the theoretical foundations of programming languages. Some of the dualities that will be covered in the seminar are: The duality of data and codata types, finite and infinite data, induction and coinduction, strict and lazy evaluation, effects and coeffects, monads and comonads, and the duality of values and continuations. The goal of the seminar is to convey the beauty of the symmetries and dualities in the foundational calculi for programming languages.

  • (WS21/22) Abstract Machines Link to course.

    Between high-level programming languages and low-level machine models there is an intermediate category of abstract machines. In this seminar, students learn about abstract machines and their use in in programming language implementation and theory.

  • (SS21) Functional Pearls Link to course.

    Functional pearls are short articles which present a functional programming technique in a fun and didactic way. In this seminar, students each read about one functional pearl and present it to their peers.

  • (WS20/21) Relational Programming with miniKanren Link to course.

    MiniKanren is a minimalist programming language following the logic programming paradigm. Students learn how to solve problems in miniKanren by writing simple programs. Additionally, every student also has to write their own implementation of the miniKanren language, which allows to understand how logic programming works from the ground up.

  • (WS19/20) Category Theory for Programmers Link to course. (jointly with Ingo Skupin)

    This seminar introduces students to category theory, using functional programming as a guiding principle. The seminar is based on the book of the same name by Bartosz Milewski.

  • (SS19) The Little Typer Link to course.

    Dependently typed programming can be daunting and scary. In their book The Little Typer, on which this seminar is based on, Daniel P. Friedman and David Thrane Christiansen introduce dependent types step by step.

  • (SS18) Category Theory for Programmers Link to course. (jointly with Ingo Skupin)

    This seminar introduces students to category theory, using functional programming as a guiding principle. The seminar is based on the book of the same name by Bartosz Milewski.

Supervision of Bachelor and Master theses.

The following is a list of both open and finished Bachelor and Master theses that I helped supervise at the university of Tübingen. You can find out about their status by following the respective link.

Teaching Assistant

As a student I have been a teaching assistant for multiple years. During that time I assisted in the teaching of lectures on lambda calculus, logic and the CS101 lecture at the university of Tübingen.