Finished Thesis Topics

We are looking forward to working with you on your thesis project (in German or English)! Our group offers a range of open thesis topics in the general area of software engineering or programming languages. We also welcome your own ideas, especially if they are in scope of our research topics.

If you are interested in pursuing a thesis with our group, please send us an email with the following information:

  • a brief description of the kind of work you are interested in (e.g. more theoretical, more practical, a programming task, ...)
  • your level of knowledge of the theory or implementation of programming languages (if any)
  • a current transcript of your grades
  • potentially relevant skills you acquired outside of university

List of already finished thesis topics

Serkan Muhcu (MSc)

Mutable State in a Language with Effect Handlers

Effekt is a functional programming language developed for research on algebraic effects and handlers. Aside from algebraic handlers, Effekt also features side effects in form of mutable state using region-based memory management. The Effekt compiler has multiple backends, one of which targets the LLVM Intermediate Representation. The LLVM-IR can be compiled to an executable file with many optimization passes on the way. The LLVM backend of Effekt covers only a subset of Effekt’s features. As part of this thesis, we extend the LLVM backend by support for mutable state.

Read more ...
Franciszek Piszcz (MSc)

Abstract-Interpretation-Based Language Server for Python

Most IDEs for Python development follow traditional code analysis approaches that are known to work well for statically-typed languages such as Java or C++. A lot of modern Python code is untyped, and these conservative tools tend to assign the “Any” type for variables that do not have explicit type annotations. However, programmers are usually able to deduce types (and often concrete values) by looking at surrounding code and jumping through function definitions and call sites.

Read more ...
David Voigt (BSc)

Resource Finalization for Effect Handlers

Handling resources, such as files or network sockets, in a language with control (such as exceptions) safely can become difficult. We need to make sure that all memory is eventually freed and all file handles and sockets are closed; even in the case of an exception.

Read more ...
Lukas Stetter (BSc)

Interaktive Lehrbücher

Viele der Lehrmaterialien welche wir in der Lehre verwenden bestehen aus nicht interaktiven Skripten und Foliensätzen. Aber viele Inhalte der Informatik eignen sich besonders gut für eine interaktive Präsentation. Durch eine interaktive Präsentation können auch sehr abstrakte Inhalte greifbar und verständlich gemacht werden. So wird zum Beispiel häufig auf Animationen und interaktive Graphiken zurückgegriffen, um die Ausführung von Algorithmen zu veranschaulichen.

Read more ...
Pavel Karasik (MSc)

Improving Error Messages with Algebraic Subtyping

Good type errors are an important tool to improve programmer productivity. Ideally, they can help to quickly localize and fix problems and help programmers to not only better understand the error, but also the underlying program.

Read more ...
Roman Schulte (MSc)

Second-class Modules for the Effekt Programming Language

Effekt is a novel programming language featuring new ways to modularize software and structure complex control flow. In particular, it includes lexical effect handlers as well as an advanced type- and effect system. However, the language is yet lacking a full module system.

Read more ...
Tim Neumann (BSc)

IDE Support for Lexical Effects and Handlers

Static type systems help to avoid programming errors by indicating to the programmer at compile time that a value potentially has a wrong type. This way, unsupported operations (such as dividing two strings or calling a method on a number) are ruled out before the program is executed.

Read more ...