Bachelor's/Master's Theses in Research Software Engineering
Application Periods
I accept requests for starting a thesis only from the beginning of February to the end of March and from the beginning of August to the end of September.
Requests sent outside these periods cannot be considered.
Research Software Engineering (RSE) plays a crucial role in modern scientific research, particularly in highly technical domains such as Quantum Computing. However, research software is often developed under conditions that differ substantially from industrial software development. It frequently emerges spontaneously, is often created by individual researchers, and evolves alongside scientific exploration. Projects may start as small scripts or prototypes and later evolve into larger and more widely used systems. These characteristics create specific challenges for coordination, sustainability, documentation, testing, knowledge transfer, and long-term maintainability.
This page describes the topic area in which I regularly offer Bachelor’s and Master’s theses. Concrete thesis topics are derived from this topic area and are tailored to the current state of the research, to ongoing projects, and to your interests. Topics range from empirical, interview-based research to the development and evaluation of tools that support researchers in developing their software.
Previous Work
Several theses have already been conducted in this topic area, so new theses can build on a solid foundation.
A qualitative interview study has been conducted in a Quantum Computing research group. The interviews focused on software development practices, project experiences, challenges, incentives, and sustainability aspects of research software. All interviews have been fully transcribed, anonymized, and thematically coded. In addition, a root cause analysis of the challenges faced by the research group has been conducted, and actionable recommendations for improvement have been derived. Furthermore, several literature reviews have been carried out, for example on Relational Coordination Theory, alternatives to methodical software development, and limitations of agile process models.
On the technical side, several prototype systems have been developed, including:
- LLM-based generation of source code documentation that takes into account the terminology of the respective scientific domain,
- deterministic derivation of class diagrams from Python and Java source code and their reduction to comprehensible sub-diagrams,
- the integration of linters and LLM-based static code analysis into research software development processes.
Topics and Approaches
Theses in this topic area typically address one or more of the following focus areas. The exact focus can be adapted depending on whether the thesis is conducted as a Bachelor’s or Master’s thesis and according to the interests of the student.
-
Empirical studies of research software development
Investigate how research software is developed in practice. This may include conducting and analyzing interview studies, thematic coding, root cause analyses, or case studies in research groups, for example in Quantum Computing. -
Theories and processes for research software development
Derive theories that explain characteristic development practices in research software engineering, and analyze to what extent established process models and coordination mechanisms, such as Scrum, are applicable to research contexts. -
Improving development practices in research groups
Bring recommendations into practice within real research groups. This may include introducing workflows, documentation structures, testing strategies, coordination routines, or responsibility structures, and evaluating their adoption and impact. -
Tool support for documentation, architecture, and code quality
Develop, integrate, and evaluate tools that help researchers keep their software understandable and maintainable despite limited time and frequently changing source code. Examples include LLM-based documentation generation, automated derivation of class diagrams, static code analysis, and CI integration.
Typical tasks across these focus areas include:
- Familiarization with the RSE context and the existing empirical material, literature, or prototype systems
- Analysis of the needs of researchers and the specific characteristics of research software development
- Literature review on relevant software engineering methods, theories, and tools
- Design and conduction of an empirical study, or design and implementation of a tool-supported approach
- Evaluation in a realistic research software context, for example through case studies, artifact analysis, structured feedback, or small user studies
- Reflection on limitations and transferability to other research software contexts
- Documentation and presentation of the results in a scientific thesis
Possible Research Questions
Depending on the concrete thesis topic, the work may address questions such as:
- How is research software developed in practice, and which challenges arise for coordination, sustainability, and knowledge transfer?
- Which coordination mechanisms and process models are suitable for research software projects with few, often individual, developers?
- How can recommendations for research software development be implemented successfully in a real research group?
- How can tools for documentation, architecture understanding, and code quality be kept lightweight enough for researchers with limited time?
- How can domain terminology be incorporated into automatically generated documentation of research software?
Our Offer
- A relevant and emerging topic area with direct impact on the sustainability and maintainability of research software
- A strong starting point, including anonymized interview material, thematic coding, a root cause analysis, literature reviews, and existing prototype systems
- Access to realistic research software contexts in cutting-edge scientific domains
- Flexibility to shape the thesis according to your interests, for example toward empirical research, theory building, tool development, or evaluation
- Clear supervision and methodological guidance
- Weekly meetings, either in person or remotely
- Coordinated exchange with related thesis projects at selected points
Your Profile
- You are pursuing a Bachelor’s or Master’s degree in Computer Science, Software Systems Engineering, or a related field
- You are interested in Research Software Engineering and in how software is developed in academic research contexts
- Depending on the topic, you are interested in qualitative research methods and empirical software engineering, or you enjoy practical software engineering work and have programming experience, ideally in Python and/or Java
- You are able to work independently and structure an open-ended topic
- You are communicative and comfortable interacting with researchers
- You are available for onboarding sessions at the beginning of the thesis
Contact
Please note: I accept requests for starting a thesis only from the beginning of February to the end of March and from the beginning of August to the end of September.
Within these periods, please send a short description of your background, your preferred focus area, and an overview of your grades to Marc Schmidt at schmidt@se-rwth.de.