Courses
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 non-trivial 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, push-down, linear-bounded, Turing machines), the Chomsky hierarchy, computability, Church-Turing thesis, undecidability and many-one reductions
-
Complexity of Algorithms
Topics include: asymptotic notation, time and space as complexity measures, time and space hierarchy theorems, NP-completeness, approximation algorithms
-
Data Structures and Algorithms
Topics include: abstract data types, sequences, stacks, (priority) queues, dictionaries, trees, sorting algorithms, hashing, graph algorithms, geometrical algorithms, B-trees, AVL trees
-
Complexity Theory
Topics include: polynomial-time hierarchy, probabilistic and counting complexity classes, Toda's theorem, sparsity and advice, relativization
-
Parameterized Complexity Theory
Topics include: fixed-parameter tractability, bounded-search trees, kernelization, parameterized reductions, W- and A-hierarchy and their relation and logical characterizations
Supervised Theses
A non-exhaustive 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 User-Defined 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 Horn-Formeln
Thorben Lemke (Bachelor) -
Runtime Analysis of Lattice-Based Cryptographic Algorithms
Neal Asprion (Bachelor) -
Hash-basierte Signaturverfahren
Bastian Brodd (Bachelor) -
Ein Programm für affine modallogische Formeln
Timon Barlag (Bachelor) -
Group Isomorphism
Daniel Wiebking (Master)