Draft for discussion: this is an alternative to the current thesis page. Differences: the topics come first, each box is focused on one concrete idea, the requirements only list foundations, and what a student can pick up in the first weeks is listed separately. All texts, tags and the split into six boxes are proposals to be checked by the supervisors.

Thesis Topics

Pick the box that fits best. We expect you to know the foundations listed under Required. You do not need to know the tools listed under Learn in the first weeks yet, but you should be ready to spend the first weeks learning them. Click the tag in a box to start an email with the right subject.

Distributed Programming

Local-first systems & CRDTs

Tag: [DiFoSys]

Design, implement and benchmark replicated data types and local-first applications under realistic workloads.

Required

  • Solid programming skills in a typed language (e.g. from COPL, DAIMPL, IMPL or your own projects)

Learn in the first weeks Scala (our implementation language), CRDTs and consistency models

Example Benchmarking conflict resolution strategies in a collaborative editor

Verifying distributed systems

Tag: [DiFoVerif]

Specify and prove properties of replication protocols, consistency models and access control in a proof assistant.

Required

  • Solid programming skills in a typed language (e.g. from COPL, DAIMPL, IMPL or your own projects)
  • Comfortable with inductive proofs on paper

Learn in the first weeks Lean, Dafny or Viper, whichever fits your topic

Example Mechanized proof of convergence for a CRDT with access control

Functional Programming

Efficient functional programs

Tag: [FunPerf]

Make functional and differentiable programs fast: compilers, incrementalization, probabilistic and differentiable programming.

Required

  • Concepts of Programming Languages (COPL)
  • DAIMPL or IMPL
  • Solid programming skills

Learn in the first weeks Compiler techniques for functional languages, a benchmarking methodology

Example Incremental evaluation of a functional query language

Types & mechanized proofs

Tag: [FunProof]

Design type systems and DSLs (choreographies, session types) and prove them sound in a proof assistant.

Required

  • Concepts of Programming Languages (COPL)
  • Comfortable with lambda calculus and inductive proofs on paper

Learn in the first weeks Lean 4, which you will use daily

Example Mechanized type soundness for a choreographic language

Artificial Intelligence

Coding assistants

Tag: [CodeAI4SE]

Supervision capacity is currently full: please do not contact us before the beginning of March 2027.

Build and evaluate models for code understanding and generation, including secure coding assistance.

Required

  • Solid Python and experience in one ML framework (e.g. from AI4CA, SDT, a machine learning course or your own projects)

Learn in the first weeks Fine-tuning and evaluation of language models for code

Example Evaluating diffusion language models for code completion

Neurosymbolic verification

Tag: [NeuroVerifi]

Supervision capacity is currently full: please do not contact us before the beginning of March 2027.

Combine neural models with symbolic reasoners: learning-guided program verification and neural heuristics for theorem proving.

Required

  • Solid programming skills
  • Exposure to both machine learning and formal methods or verification

Learn in the first weeks Lean, separation logic

Example Learning proof-search heuristics for a program verifier

Thesis Inquiries

If you have already worked with a member of the group, for example in a seminar or project, write to that person directly. Otherwise write to our email postbox jobs@stg.tu-…, and we will forward your email to the most fitting potential supervisor.

A bachelor thesis is 12 CP (about 16 hours/week), a master thesis 30 CP (about 40 hours/week). Students occasionally underestimate this: a master thesis is not something you can do on the side! Trying to combine a master thesis with a job usually fails, because too little time is left for the thesis.

Your email should contain:

  1. Subject: “[TAG] Bachelor Thesis Inquiry (YOUR NAME)” or “[TAG] Master Thesis Inquiry (YOUR NAME)”, where TAG is the tag shown in the topic box above, for example “[DiFoSys]”.
  2. Why this topic: two or three sentences in your own words on why the topic interests you and what you would do first. Mention something you taught yourself.
  3. Background: which required items you meet: courses you passed, programming languages you speak (and want to learn), and relevant course or hobby projects.
  4. Transcript of records: a pdf export of your grades from Tucan.

Try to keep the email below roughly 250 words. We only supervise theses of students of TU Darmstadt, not external ones. You do not need a CV, please do not attach one. If you write a generic, bland email with an LLM, we will have a bad impression of you and will not be interested in supervising you.

We get a lot of inquiries; please be patient with the answer.

Jobs

Information about doctoral and student research assistant positions is on the current thesis page.