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:
| what | credit | workload |
|---|---|---|
| bachelor thesis | 12cp | 16 hours/week |
| master thesis | 30cp | 40 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:
The subject of the email should be one of the four possibilities:
- “Looking for Bachelor Thesis in PL”
- “Looking for Master Thesis in PL”
- “Looking for Bachelor Thesis in AI/SE”
- “Looking for Master Thesis in AI/SE”
See below at “What We are Looking For” for further information regarding PL and AI/SE theses respectively.
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.)
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.
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.
What we Are Looking For
Programming Language Design and Implementation (PL) Theses
You should have completed our lecture “Concepts of Programming Languages” sucessfully to already have some idea about programming language research, functional programming, and interpreters (or have gained equivalent experiences through self-study). Our other PL-related courses are a plus: COPL, TYPES, DAIMPL, IMPL.
Of course, other courses for example related to compiler construction, program analysis, formal methods, theorem proving, databases, distributed systems, consensus protocols, automated verification, bounded model checking, lambda calculus, mathematical-logic, and more can be a plus, if relevant. Further, mention any course work or hobby projects related to such topics besides just taking a course is a plus.
Our theses require solid programming skills. We mainly work with Scala and Lean. (You can get into contact with Scala via the COPL course and in contact with Lean via the TYPES course). But if you mention experience or interest in using cool programming languages, in particular those with interesting static typesystems, such as Ocaml, Haskell, Rust, Dafny, Agda, Rocq, Idris, Koka, etc. that is a plus.
Python or Java can be mentioned, but highlighting it might be a minus. Similar, artificial intelligence, software engineering, or industry experience can be briefly mentioned, but highlighting it will be considered a minus by us, as it is usually not relevant for a PL theses.
- Programming Language Research
- Compilers for Efficient Functional Programming
- Type Systems and Mechanized Proofs for Correctness
- Functional Programming Design Patterns (Monads, Lenses, …)
- Applications to various Domain-Specific Concepts: Distributed Programming (Deadlock-Freedom, Choreographic Programming and Session Types), Differentiable and Probabilistic Programming, Program Inversion, Program Incrementalization, …
- often using https://lean-lang.org
- Programming Decentralized and Local-First Systems
- Design Patterns for Local-First Systems
- Conflict-free, Replicated datatypes (CRDTs)
- Verification of Distributed Systems
- Local-First Software
- Mixed Consistency
- Access Control
- often using https://scala-lang.org
- Neurosymbolic Reasoning and Program Verification
- This is the only topic on the intersection between AI and PL.
- often using https://ocaml.org
Artificial Intelligence and Software Engineering (AI/SE) Theses
Having sucessfull completed our AI4CA seminar or our SDT lab is a plus, similar if you have previous experience from course work or hobby projects in training, and fine-tuning models, or benchmarking and comparing models.
Here is an brief overview of topics that we are interested in. You can also click on the individual people which may give some more details of their research interests on their personal page. Keep in mind that thesis requests emails should be directed to the jobs@ postbox, but you can mention a specific person in said email, if you think their research interestes are particularly fitting to what you would like to do in your thesis.
- Code Models
- Training and Fine-Tuning of Code Models
- Evaluation and Benchmarking of Code Models
- Embeddings and Representation Learning
- Exploring New Model Architectures: Transformer Models, Graph Models, State-Space Models
- Shweta Verma , Abhinav Anand , Mert Tiftikci , Daniel Maninger
- Various
- Dr. Amir Molzam Sharifloo – Artificial Intelligence for Software Engineering
- Dr. Tobias Reinhard – Neurosymbolic Reasoning and Program Verification
- Jannis Brugger – Symbolic Regression, Automated Scientists (Machine Learning for Physics Experiments)
- Dr. Isabella Graßl – Education, Diversity, Teamwork, Society, Creativity, and Design in Computing