Assigned Thesis Topics

Assigned 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 currently assigned thesis topics

Patrick Wölfle (BSc)

Modelling Linguistic Side Effects in Effekt

Modelling various linguistic phenomena such as quantification and scope together is challenging, since different effects are typically modeled using different notations and rules. Continuations have been used to represent these phenomena, but as models grow in complexity, it becomes difficult to compose effects or verify examples without manually transcribing and evaluating them.

Read more ...
Filip Šimić (MSc)

Free Deduction Process Calculus

In sequent-style proof systems, natural deduction combines introduction and elimination rules, while Gentzen’s LK is defined by dual introduction forms. The λ-calculus and λμ̃-calculus capture the computational essence of normalization in these frameworks. However, there are also logical systems like Parigot’s “Free Deduction” (FD) which rely exclusively on elimination rules. While the term assignment system and semantics of such a calculus can be understood in terms of its translation to either ND or LK, we lack a standalone semantics for such a framework.

Read more ...
Frederic Schanne (BSc)

Bridging Theory and Practice: Evaluating Continuation Integration Best Practices at a Software Company

Continuous Integration (CI) is a common best practice in software development. This practice dictates, that among other factors, developers should commit early and often and receive feedback about their work as soon as possible. In order to be effective in a large scale software development environment and to reap all the benefits that come with it, the CI pipeline has to be designed in a certain way and all stakeholders involved need to be instructed.

Read more ...
Mattis Krauch (BSc)

Partial type signatures for the Effekt language

Partial type signatures are type signatures allowing wildcards in their definition. These wildcards are placeholders for other types which are inferred at compile-time. By using these wildcards, a programmer is able to annotate parts of a type signature manually and let the typer infer the rest. Therefore partial type signatures allow us to omit potentially long and complex parts of a type annotation while providing more restrictions to the type than without any annotation.

Read more ...
Dennis Hieber (MSc)

Multiple Return Values in Effekt

Multiple return values in functions have long been regarded as a powerful feature in programming languages, enabling concise and expressive code. However, not all programming languages support this feature natively. Instead, most languages emulate multiple return values only via tuples. In the case of dynamically typed languages like Common Lisp multiple return values are supported but the dynamic handling may cause headaches: (type-of (values x y z)) is the same as (type-of x). This master thesis delves into designing and implementing multiple return values in the Effekt language. The thesis introduces native support for multiple return values in Effekt, exploring their significance and potential impact on software development.

Read more ...
Sebastian Voigt

Implementing a Monadic Testsuite Driver

Ordinary wisdom says that the individual tests in a testsuite should be independent of each other. That is, each test should be able to run independently of any other test, and in any order. This independence allows the testsuite driver to execute tests in parallel and easily summarize the results using a tests passed / tests failed metric.

Read more ...
Leonard Zieger (BSc)

Spectrum-based fault localization (SBFL) for Haskell

Spectrum-based fault localization (SBFL) is a technique for automatically locating the probable source code location of bugs in software.

Read more ...
Leonard Zieger (BSc)

Interaktive Lehrbücher

Viele der Lehrmaterialien welche wir in der Lehre verwenden bestehen aus nicht interaktiven Skripten und Foliensätzen. Aber die Inhalte der Informatik, under gerade auch der Programmiersprachentheorie, 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. Im Rahmen dieser Bachelorarbeit wollen wir einige unserer Lehrmaterialien um interaktive Elemente ergänzen. Einige konkrete Beispiele die wir gerne umsetzen würden sind:

Read more ...
Leonard Zieger (BSc)

Supercompilation for Ouroboro

Supercompilation is a compile-time optimization technique which uses partial-evaluation in order to generate an optimzed version of the program. Supercompilation is known to generate significant speedups and to subsume various other optimization techniques. The downsides of supercompilation are potentially huge increases in both compile-time and binary size.

Read more ...
Reinhard Bronner

Highcharts for Scala

Highcharts is a Javascript library for visualizing data. The purpose of this thesis is to develop an adapter of Highcharts for Scala, such that data in the Scala runtime can be visualized with the same ease as with dedicated data science languages such as Mathlab or R.

Read more ...
Frederik Strelczuk

Web-/Cloud-basierte Ausführung von Steuergerätesoftware

Im Bereich der Entwicklung von Steuergerätesoftware kommen als Zielplattformen sowohl Gerätehardware als auch entsprechende Emulatoren zum Einsatz. Deren Verwendung ist vielfach kostenintensiv und für proprietäre Systeme oft mit einem Lock-in ohne Möglichkeiten der Erweiterung oder der Integration mit anderen Systemen verbunden. Der Einsatz von Fat Client Software erschwert darüber hinaus deren externe Verwendung zum Beispiel durch Testingenieure an Offshore-Standorten. Schließlich ist die Skalierbarkeit von Tests auf physischen Steuergeräten oder Fat Client Emulatoren stark eingeschränkt.

Read more ...