I offer topics for bachelor’s and master’s theses in the wider areas of software engineering, cloud computing, and services computing to students of Chalmers and University of Gothenburg. I do not accept fresh students from either, University of Zurich or TU Vienna. If you are not enrolled in Chalmers or GU, I cannot advise you!
In general, the following rules apply:
- Bachelor Theses are scientific works of limited scope. They usually consist of a survey of the scientific state of the art in a relevant field, a small implementation task, a relevant evaluation (e.g., a small-scale user study), and a scientific monograph (the bachelor thesis). The thesis is supposed to be written in English using LaTeX, and has usually around 30 pages or a bit more.
- Master’s Theses are larger scientific works. The structure of a master’s thesis follows what is mentioned above for bachelor’s theses, but the scope is larger, and the topic should generally be scientifically novel and interesting. My goal is usually that a master’s thesis topic is, if done properly, academically publishable. Production of a scientific paper as part of a master’s thesis is possible but not mandatory (but highly suggested if you are interested in continuing your studies towards a PhD). Please also carefully read through the official guidelines of the department.
I advise master’s theses in all areas that I actively conduct research in:
- Cloud computing, with a particular focus on performance benchmarking of clouds
- Middleware, particularly middleware for Web-based and distributed systems
- Performance engineering, particularly software microbenchmarking (e.g., JMH), APM, performance visualization
- Cloud cost management and prediction, particularly holistic cost modelling and the selection of cloud offerings
- Continuous deployment, especially partial rollouts, shadow launches, canary releasing, and all other release engineering techniques that implement a-posteriori performance management
- Services computing, especially microservice architectures, and particularly how they relate to cloud deployment, autoscaling, and cost management
In most of these topics, two tracks (or types of theses) are possible:
- The systems-oriented thesis: the underlying research question of a systems-oriented thesis is usually to build a prototype library, application, or framework that does (…). As a student, you need to understand the requirements, read up on existing (industrial and academic) systems that others have built and then do a fair bit of programming. Scientific evaluation is of course important (e.g., through a measurement of the overhead of a new library), but not a dominant part of this work. The value of your work will be, to a large extend, judged based on the technical quality of the system that you built.
- The empirical thesis: such a thesis is usually written to investigate one or more specific research questions using a quantitative or qualitative research method. The core of the work is collecting data (e.g., through mining GitHub, running Google BigQuery queries, running benchmarks on target systems, or sending out a survey), as well as analysing and interpreting the data. Quantitative methods (e.g., statistical hypothesis testing, plotting, machine learning) are central. Programming is often still required, but mostly for data collection purposes.
A review of the relevant literature is part of all topics, but I don’t usually advise theses that boil down to a pure literature review.