Courses Taught
A list of courses that I have taught at university including a short description.

Systematic Programming
A practical programming course that I have developed from scratch where the basics of expressing algorithms in a purely functional programming language are trained and algorithms with nontrivial control flow have to be implemented such that a rigid specification in terms of traces is respected. Course material from summer semester 2020 is freely available.

Foundations of Theoretical Computer Science
Topics include: formal languages and grammars, different automata types (finite, pushdown, linearbounded, Turing machines), the Chomsky hierarchy, computability, ChurchTuring thesis, undecidability and manyone reductions

Complexity of Algorithms
Topics include: asymptotic notation, time and space as complexity measures, time and space hierarchy theorems, NPcompleteness, approximation algorithms

Data Structures and Algorithms
Topics include: abstract data types, sequences, stacks, (priority) queues, dictionaries, trees, sorting algorithms, hashing, graph algorithms, geometrical algorithms, Btrees, AVL trees

Complexity Theory
Topics include: polynomialtime hierarchy, probabilistic and counting complexity classes, Toda's theorem, sparsity and advice, relativization

Parameterized Complexity Theory
Topics include: fixedparameter tractability, boundedsearch trees, kernelization, parameterized reductions, W and Ahierarchy and their relation and logical characterizations
Supervised Theses
A nonexhaustive list of bachelor's and master's theses that I have supervised. The links point to the PDF files.

Synthesis of Machine Programs from Execution Traces (Source Code)
Yannik Mahlau (Bachelor) 
Interpreter for Machine Programs on Arbitrary Models of Computation (Source Code on Github)
Konrad Wienecke (Bachelor) 
Tool for Generation of UserDefined Visualizations of Imperative Programs from Execution Traces (Source Code)
Anton Lazarev (Bachelor) 
Visualisierung von Lindells Isomorphiealgorithmus für Bäume (Source Code)
Tien Hung Ngo (Bachelor) 
Beweis und Bedeutung der Sensitivity Conjecture in der Komplexitätstheorie
Mathis Kruse (Bachelor) 
Algorithmen für quantifizierte Boole'sche Formeln
Joscha Snakker (Bachelor) 
Algorithmen für HornFormeln
Thorben Lemke (Bachelor) 
Runtime Analysis of LatticeBased Cryptographic Algorithms
Neal Asprion (Bachelor) 
Hashbasierte Signaturverfahren
Bastian Brodd (Bachelor) 
Ein Programm für affine modallogische Formeln
Timon Barlag (Bachelor) 
Group Isomorphism
Daniel Wiebking (Master)