Conducting a Thesis Project

For students participating in the TU Delft computer science and embedded systems master’s programs we have several openings for MSc projects.

All MSc projects are aligned with our research. They often are connected to one of our ongoing research projects, but we also frequently use MSc projects to explore new research directions. Projects can be conducted at:

  • TU Delft in our own research labs, in close collaboration with our postdocs and PhD students
  • Industry (as part of an internship), usually with companies (in The Netherlands or abroad) with which we have an ongoing research collaboration (e.g. ING, SIG, Adyen, ATOS, XWiki, Microsoft, Google, Facebook, Infotron, …)
  • Other (international) universities – we have a rich network of academic friends around the world.

SERG Supervisors

You can make an appointment with one of the SERG group members to see what projects are currently open, or you can propose your own project, provided there is a clear connection with the research we conduct at our labs. You can contact the following persons for more information:

Supervisor Topics Examples
Maurício Aniche Empirical software engineering, software testing Example theses
Arie van Deursen Human aspects, software architecture, software testing Example theses
Georgios Gousios Software analytics, repository mining Example theses
Annibale Panichella Software testing, search-based software engineering, security testing Example theses
Rini van Solingen Globally distributed software engineering, agile practices Example theses
Andy Zaidman Software testing, software evolution, repository mining Example theses


Composing your Study Program

If you plan to conduct your MSc project at SERG, you will need to include at least two of the CS MSc courses SERG teaches in your IEP (Individual Exam Program). We strongly recommend you to follow our software architecture and software analytics courses. Besides our own software engineering related courses, when choosing the electives in your program you can consider including courses in such areas as machine learning, data science, compiler construction, distributed systems, or security.

Optionally, you can start your research with a 7-8 week literature survey (IN4306, 10EC). This assignment is concluded with a report containing an overview of the state-of-the-art in a particular branch of research.

Open projects

Published Where Project Title SERG contact
Nov 2018 TU Delft Neurotechnology and program comprehension Maurício Aniche
Nov 2018 SIG / TU Delft What’s a good refactoring candidate? Improving code analysis tooling by sTU Delftying users behavior Davide Spadini, Magiel Bruntink, Alberto Bacchelli
Oct 2018 TU Delft API documentation generation Anand Ashok Sawant, Alberto Bacchelli and Arie van Deursen
Oct 2018 SIG A decision support tool to assist the decision-making of software libraries adoption Enrique Larios and Georgios Gousios
Sep 2018 TU Delft Alternative API evolution communication mechanisms Anand Ashok Sawant, Alberto Bacchelli and Arie van Deursen
Sep 2018 TU Delft Real-time analysis of dependency networks Joseph Hejderup and Georgios Gousios
Sep 2018 TU Delft Sound call-graph generation for Rust Joseph Hejderup and Georgios Gousios
Sep 2018 TU Delft Large-Scale API misuse Detection Joseph Hejderup and Georgios Gousios
Sep 2018 QuTech/QIA Quantum Internet Link Layer Simulations Arie van Deursen
Jul 2018 ING Improving ING’s A/B testing pipeline Georgios Gousios and Arie van Deursen
Jul 2018 ING Improving ING’s Machine Learning pipeline Georgios Gousios and Arie van Deursen
Jul 2018 TU Delft Good weather versus bad weather tests Andy Zaidman
Jun 2018 TU Delft Detecting programming styles Georgios Gousios
Jun 2018 TU Delft Call-based dependency networks for Python/PyPI Georgios Gousios
Jun 2018 TU Delft Licensing propagation in package networks Georgios Gousios
Jun 2018 TU Delft An SQL REPL loop for stream processing systems Georgios Gousios


Proposing your Own Project

Under certain conditions it can also be possible to propose your own project. In those cases it is important to

In particular you need to carefully think about the research component of your proposal, and have a clear idea on why your proposal is novel – it should advance the world’s knowledge in software engineering. If you wish to pursue this route it is advisable to select and contact a possible supervisor as early as possible.