Usually, there is no list of open topics, each topics is aranged individually by discussion between the student and a researcher of the Software Technology Group. Theses differ in the workload and credit points:

whatcreditworkload
bachelor thesis12cp16 hours/week
master thesis30cp40 hours/week

⚠️ Note: Students occassionally underestimate the workload of a thesis. If you plan to do a bachelor thesis you should dedicate two days per week for it, and for a master thesis five days. In particular, a master thesis is not something you can do on the side!


How to Contact Us

If you have previously been in contact with a member of the Software Technology Group via a seminar or project, you may directly write to that person. Otherwise thesis requests should be written to our email-postbox jobs@stg.tu-… (Yes, its called “jobs” but it is for theses requests not jobs). We will then redirect the email internally to the most fitting potential supervisor based on your description.

In your email, mention:

  1. The subject of the email should be one of the two possibilities:

    • “Bachelor Thesis Inquiry (YOUR NAME)”
    • “Master Thesis Inquiry (YOUR NAME)”

    (Mentioning your name in the email subject makes it easier for us to distinguish different email threads.)

  2. In the first few sentences of the email, it must be clear what your topics interests are, e.g., you must mention one of our four areas:

    • Distributed Programming Foundations & Systems
    • Functional Programming & Constructive Proofs
    • Neurosymbolic Reasonging & Program Verification
    • Coding Assistance & Artificial Intelligence for Software Engineering

    See below at “What We are Looking For” for further information regarding rough topic ideas.

  3. Relevant Courses:

    • If you contact us, you should have at least sucessfully passed one of our courses, or be able to demonstrate personal experience with the topic from course or hobby projects.
    • (Note: Our industry internship course “SEP” does not count, as it does not involve any research.)
  4. Programming Languages and other Skills:

    • the programming languages you speak (and are interested in learning), and
    • course work or hobby (programming) projects that are relevant to the topic.
  5. Transcript of Records:

    • a pdf export of your grades in tucan

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.

External Theses: Generally speaking, the chance that we supervise a external thesis is very low.

What we Are Looking For

  • Distributed Programming Foundations & Systems

    More info

    You should have completed our lecture “Concepts of Programming Languages” successfully, or have equivalent experience with functional programming, interpreters, and language semantics through self-study. Additional PL-related courses are a strong plus: COPL, DAIMPL, IMPL.

    Relevant background also includes courses or projects in distributed systems, consensus protocols, databases, program analysis, or automated verification. Mentioning concrete project work beyond coursework is especially valuable.

    Our theses require solid programming skills, primarily in Scala (as introduced in COPL). Experience with or interest in Rust is highly relevant due to its strong concurrency and ownership model. Additional experience with languages featuring advanced type systems, such as Haskell, OCaml, or TypeScript, is a plus.

    Brief mentions of Python, Java, general AI, or purely sequential software engineering are acceptable, but emphasizing these may be viewed negatively, as they are typically less relevant for this research direction.

    Research topics include:

    • Design Patterns for Local-First Systems
    • Conflict-free Replicated Data Types (CRDTs)
    • Verification of Distributed Systems
    • Local-First Software Architectures
    • Mixed Consistency Models
    • Access Control and Security in Decentralized Systems
    Copy link
  • Functional Programming & Constructive Proofs

    More info

    You should have completed our lecture “Concepts of Programming Languages (COPL)” successfully, or have equivalent experience with functional programming, interpreters, and language semantics through self-study. Additionally our lecture “Type Systems (TYPES)” is a strong plus, and our other programming language research related seminars and labs are a further plus: DAIMPL, IMPL, TySem, TyPro.

    Relevant background also includes courses, seminars or labs in lambda calculus, mathematical logic, compiler construction, formal methods, theorem proving, or automated verification. Mentioning concrete project work beyond coursework is especially valuable. Besides formal study, simply being a good and experienced programmer and being bored by untyped or nonfunctional languages can be considered a plus.

    Our theses require solid programming skills, primarily in Lean (as introduced in TYPES). Experience with or interest in other functional programming languages and proof assistants, such as Agda, Rocq (Coq), Idris, Haskell, OCaml, Koka, etc., is a strong plus.

    Brief mentions of Python, Java, general AI, software engineering, or industry experience are acceptable, but emphasizing these may be viewed negatively, as they are typically less relevant for this research direction.

    Research topics include:

    • Compilers for Efficient Functional Programming
    • Advanced Type Systems and Mechanized Proofs for Correctness
    • Functional Programming Design Patterns (Monads, Lenses, etc.)
    • Program Inversion and Incrementalization
    • Differentiable and Probabilistic Functional Programming
    • Applications to various Domain-Specific Languages (e.g., Choreographic Programming, Session Types, Deadlock-Freedom, …)
    Copy link
  • Neurosymbolic Reasoning & Program Verification

    More info

    You should have solid programming experience and a strong interest in applying AI techniques to software development workflows. Relevant background includes courses or projects in machine learning, software engineering, or program analysis. Concrete project experience, such as building developer tooling, IDE plugins, or AI-assisted development workflows, is especially valuable.

    Relevant background also includes courses or projects in formal methods, theorem proving, automated verification, bounded model checking, mathematical logic, program analysis, or machine learning. This is the only thesis topic that sits at the intersection of AI and PL; prior exposure to both areas is highly desirable.

    Our theses require solid programming skills. Experience with or interest in automated verification tools such as Dafny or JML, is a plus, but also languages with strong static type systems or proof assistants, such as Lean, Haskell, Ocaml or Rust. Furthermore, background in AI or machine learning is explicitly welcome and often essential for this topic.

    Research topics include:

    • Combining Neural Models with Symbolic Reasoners
    • Learning-Guided Program Verification
    • Neural Heuristics for Theorem Proving
    • Verified Neural Network Components
    • Synthesis and Verification of Neurosymbolic Programs
    Copy link
  • Coding Assistants & Artificial Intelligence for Software Engineering

    More info

    You should have solid programming experience and a strong interest in applying AI techniques to software development workflows. Relevant background includes courses or projects in machine learning, software engineering, or program analysis. Concrete project experience, such as building developer tooling, IDE plugins, or AI-assisted development workflows, is especially valuable.

    Our theses require solid programming skills, primarily in Python. Experience with AI/ML frameworks such as Jax, PyTorch, TensorFlow, or Hugging Face Transformers is highly relevant. As such, experience in training, fine-tuning, evaluating or using AI is welcome.

    Research topics include:

    • Transformer, Graph, State Space Architectures
    • Diffusion Language Models
    • Secure Coding Assistance
    • Neurosymbolic Reasoning, Theorem Proving, Automated Verification
    • Positional Embeddings
    • Representation Learning (Embeddings)
    • Evaluation
    • Fine-tuning Methods
    • Code Understanding
    • Code Generation

    Take a look at the topics in our coding assistance seminar & lab to get a better idea what we are interested in.

    Copy link