Teaching
This page lists theses I supervised and classes I taught. See also my teaching statement and the teaching website of my group.
Courses
Winter Semester 2025/26 (Heidelberg University)
- Lecture Software Engineering (Bachelor)
Link
Revised the lecture to align with the Heidelberg University curriculum. - Seminar Software Engineering (Master)
Link
Seminar on “Prompts as Software Artifacts”. - Practical course Software Engineering (Bachelor/Master)
Link
A student team worked on “Object-Centric Process Mining on GitHub”.
Summer Semester 2025 (University of Bayreuth)
- Lecture Software Engineering (Bachelor)
Link
Updated the lecture based on feedback from the previous semester. - Practical course Software Engineering for Game Development (Bachelor)
Link
Practical course in which the students developed games in teams. - Seminar Software Engineering (Bachelor/Master)
Link
Seminar on current topics in software engineering.
Winter Semester 2024/25 (University of Bayreuth)
- Lecture Advanced Software Engineering (Bachelor/Master)
Link
Designed the whole lecture, including assignments, from scratch. - Project Software Engineering (Bachelor/Master)
Link
Guided and mentored a project group who worked with the local organization PERSONET to develop an internal applicant platform. - Seminar Software Engineering (Bachelor/Master)
Link
Seminar on current topics in software engineering.
Summer Semester 2024 (University of Bayreuth)
- Lecture Software Engineering (Bachelor)
Link
Designed the whole lecture, including assignments, from scratch. - Practical course Software Engineering for Game Development (Bachelor)
Link
Practical course in which the students developed games in teams.
Winter Semester 2023/24 (University of Bayreuth)
- Seminar Software Engineering (Bachelor)
Link
Seminar on current topics in software engineering.
Summer Semester 2021
- Guest lecture in the Software Engineering course (Bachelor), University of Applied Sciences Darmstadt
Slides
Lecture on empirical software engineering.
Semester 2020-2 (University of Adelaide)
- Project Software Engineering (Undergraduate/Postgraduate)
Link
Coordinated a major revision of the course, adopting agile process models for the student projects. Further delivered lectures on software process models, Scrum, and software development tools.
Semester 2020-1 (University of Adelaide)
- Lecture Engineering Software as Services I (Undergraduate)
Link
Lectures on the architecture of SaaS applications, an introduction to Ruby, Ruby on Rails, and BDD. - Lecture Software Process Improvement (Undergraduate/Postgraduate)
Link
Lectures on software development process models, software metrics, and estimation techniques. - Lecture Research Methods in Software Engineering and Computer Science (Postgraduate)
Link
Lectures on research design, research methods (qualitative, quantitative, mixed-methods), descriptive statistics, clustering, measurement, reporting empirical results, sampling, controlled experiments, ethnography and interview studies, grounded theory, case studies, and surveys.
Semester 2019-2 (University of Adelaide)
- Lecture Introduction to Software Engineering (Undergraduate)
Link
Lectures on software evolution, security engineering, software testing, project management and planning, quality management, and configuration management. - Lecture Engineering Software as Services II (Undergraduate)
Link
Lectures on JavaScript and design patterns. - Project Software Engineering (Undergraduate/Postgraduate)
Link
Lectures on project management, software process models, software development tools, risk management, software quality management, and configuration management. Further coordinated two student project groups.
Summer Semester 2019 (University of Trier)
- Tutorial for lecture Information Visualization (Master)
Link
Responsible for practical assignments and tutorials, covering general properties of visualizations, infographics, UML, multivariate and timeseries data, control flow graphs, visualizations of software architectures, implementation of an algorithm visualization and a tree map in Java, paper critiques.
Winter Semester 2018/19 (University of Trier)
- Lecture Advanced Software Engineering (Master)
Link
Lectures on continuous integration, static analysis tools, and empirical software engineering as well as corresponding assignments. - Research seminar Software Engineering (Bachelor/Master)
Topic selection and grading. - Guest lecture in the Research Methods in Software Engineering course (Master), University of Stuttgart
Slides 1 • Slides 2
Two lectures.
Summer Semester 2018 (University of Trier)
- Tutorial for lecture Programming II (Bachelor)
Link
Responsible for programming assignments in Java, covering topics such as GUI programming, concurrency, data structures, I/O, serialization, reflection, Java lambda expressions and the Stream API. - Tutorial for lecture Information Visualization (Master)
Link
Responsible for practical assignments and tutorials, covering general properties of visualizations, infographics, UML, multivariate and timeseries data, control flow graphs, visualizations of software architectures, implementation of an algorithm visualization and a tree map in Java, paper critiques.
Winter Semester 2017/18 (University of Trier)
- Lecture Advanced Software Engineering (Master)
Link
Lectures on continuous integration, static analysis tools, and empirical software engineering as well as corresponding assignments. - Research internship on Software Engineering (Master)
Supervised students working on independent research projects. - Research seminar Software Engineering (Master)
Topic selection and grading.
Summer Semester 2017 (University of Trier)
- Tutorial for lecture Programming II (Bachelor)
Link
Responsible for programming assignments in Java, covering topics such as GUI programming, concurrency, data structures, I/O, serialization, reflection, Java lambda expressions and the Stream API. - Tutorial for lecture Information Visualization (Master)
Link
Responsible for practical assignments and tutorials, covering general properties of visualizations, infographics, UML, multivariate and timeseries data, control flow graphs, visualizations of software architectures, implementation of an algorithm visualization and a tree map in Java, paper critiques. - Lecture Study Project (Bachelor)
Lecture and tutorial.
Winter Semester 2016/17 (University of Trier)
- Lecture Software Engineering (Bachelor)
Link
Redesigned lecture and tutorial, covering requirements engineering, GUIs, UI/UX, modelling, object-oriented design, and software architecture. - Lecture Independent Studies in Software Engineering (Master)
Link
Supervised students working in a flipped classroom setting on software engineering topics. - Research internship on Software Engineering (Master)
Supervised students working on independent research projects.
Summer Semester 2016 (University of Trier)
- Tutorial for lecture Programming II (Bachelor)
Link
Responsible for programming assignments in Java, covering topics such as GUI programming, concurrency, data structures, I/O, serialization, reflection, Java lambda expressions and the Stream API. - Tutorial for lecture Information Visualization (Master)
Link
Responsible for practical assignments and tutorials, covering general properties of visualizations, infographics, UML, multivariate and timeseries data, control flow graphs, visualizations of software architectures, implementation of an algorithm visualization and a tree map in Java, paper critiques. - Research seminar Software Engineering (Bachelor/Master)
Link
Topic selection and grading. - Lecture Study Project (Bachelor)
Lecture and tutorial.
Winter Semester 2015/16 (University of Trier)
- Tutorial for lecture Software Engineering (Bachelor)
Link
Responsible for assignments covering paper critiques, GUIs, UI/UX, requirements engineering, static and dynamic modeling with UML, design patterns, test coverage, and software metrics. - Lecture Advanced Software Engineering (Master)
Link
Lecture on empirical software engineering as well as corresponding assignments. - Research internship on Software Engineering (Master)
Supervised students working on independent research projects.
Summer Semester 2015 (University of Trier)
- Research seminar Software Engineering (Bachelor/Master)
Link
Topic selection and grading. - Tutorial for lecture Information Visualization (Master)
Link
Responsible for practical assignments and tutorials, covering general properties of visualizations, infographics, UML, multivariate and timeseries data, control flow graphs, visualizations of software architectures, implementation of an algorithm visualization and a tree map in Java, paper critiques. - Lecture Study Project (Bachelor)
Lecture and tutorial.
Winter Semester 2014/15 (University of Trier)
- Tutorial for lecture Software Engineering (Bachelor)
Link
Responsible for assignments covering paper critiques, GUIs, UI/UX, requirements engineering, static and dynamic modeling with UML, design patterns, test coverage, and software metrics. - Tutorial for lecture Advanced Software Engineering (Master)
Link
Tutorials covering different aspects of empirical software engineering. - Research internship on Software Engineering (Master)
Supervised students working on independent research projects.
Summer Semester 2014 (University of Trier)
- Research seminar HCI/UX (Bachelor/Master)
Link
Topic selection and grading. - Tutorial for lecture Information Visualization (Master)
Link
Responsible for practical assignments and tutorials, covering general properties of visualizations, infographics, UML, multivariate and timeseries data, control flow graphs, visualizations of software architectures, implementation of an algorithm visualization and a tree map in Java, paper critiques.
Winter Semester 2013/14 (University of Trier)
- Tutorial for lecture Software Engineering (Bachelor)
Link
Responsible for assignments covering paper critiques, GUIs, UI/UX, requirements engineering, static and dynamic modeling with UML, design patterns, test coverage, and software metrics. - Tutorial for lecture Advanced Software Engineering (Master)
Link
Tutorials covering different aspects of empirical software engineering. - Research seminar Software Engineering (Master)
Link
Topic selection and grading.
Summer Semester 2013 (University of Trier)
- Research seminar Software Engineering (Master)
Link
Topic selection and grading.
(Co-)Supervised Theses
- Trunk-Based Development in Open Source Software Projects: A Data Driven Approach
(Levi Böhme, Bachelor’s Thesis, University of Bayreuth, Germany, 2025) - Test Flakiness in Open-Source Database Systems: A Study of PostgreSQL
(Valerian Allingham, Bachelor’s Thesis, University of Bayreuth, Germany, 2025) - Einsatz von Spot-Instanzen in CI/CD-Pipelines: Eine multivokale Literaturanalyse und praxisnahe Umsetzung mit AWS und GitHub
(Joshua Friedrich, Bachelor’s Thesis, University of Bayreuth, Germany, 2025) - Exploring Returnship Programs: Combining Academic Insights with Real-World Experiences in the IT Sector
(Andreea Maican, Master’s Thesis, Eindhoven University of Technology, Netherlands, 2025) - Process Mining in Software Engineering
(Andrei Arkhipov, Master’s Thesis, University of Bayreuth, Germany, 2025) - Integration und Evaluation von LLM-basierten Agentensystemen in den frühen Phasen des Software Development Life Cycles
(Philipp Göhl, Bachelor’s Thesis, University of Bayreuth, Germany, 2025) - Perceptions of Age and Career Longevity Among Younger Software Developers in Reddit Communities
(Kilian van Rooijen, Bachelor’s Thesis, Eindhoven University of Technology, Netherlands, 2025) - Tiefere Integration KI-basierter Assistenten in Entwicklungsumgebungen zur Unterstützung des Debuggings
(Alexander Steigerwald, Bachelor’s Thesis, University of Bayreuth, Germany, 2024) - Applying Information Theory to Software Evolution: What can we Learn from Surprising Changes?
(Adriano Torres, Master’s Thesis, University of Adelaide, Australia, 2024) - Enhancing Enterprise Software Documentation with Community Content
(Brian Pfitzmann, Master’s Thesis, Hasso Plattner Institute, University of Potsdam, Germany, 2023) - Stack Overflow Code Snippet Selection: An Experiment on the Effects of Source Code Comments and Answer Scoring
(Maria Christina Kirchner, Master’s Thesis, University of Innsbruck, Austria, 2022) - The Survivorship of Older Women in Software Development: An Intersection between Age and Gender
(Sterre van Breukelen, Master’s Thesis, Eindhoven University of Technology, Netherlands, 2022) - How Solution Snippets are Presented in Stack Overflow and How those Solution Snippets Need to be Adapted for Reuse
(Nimmi Weeraddana, Master’s Thesis, University of Victoria, Canada, 2022) - Using Machine Learning to Classify Programming-related Online Snippets
(Tingsheng Lai, Master’s Thesis, University of Adelaide, Australia, 2020) - Age(ing) in Software Development
(George Park, Master’s Thesis, Eindhoven University of Technology, Netherlands, 2019) - Reconstructing and Linking the Version History of Stack Overflow Posts
(Lorik Dumani, Master’s Thesis, University of Trier, Germany, 2017) - Stack Overflow Code Snippets in GitHub Repositories: Referenced and Unreferenced Occurrences
(Richard Kiefer, Master’s Thesis, University of Trier, Germany, 2017) - Diskussionsverhalten englisch- und japanischsprachiger Entwickler auf Q&A-Seiten im Vergleich: Eine explorative Analyse am Beispiel von Stack Overflow
(Mert Demir, Bachelor’s Thesis, University of Trier, Germany, 2017) - Skizzieren mit Hilfe animierter Zeichnungen
(Bob Prevos, Master’s Thesis, University of Trier, Germany, 2016) - LivelySketches: Lifecycle Support für Skizzen
(Fabrice Hollerich, Master’s Thesis, University of Trier, Germany, 2016) - Profiling mit Skizzen
(Oliver Moseler, Master’s Thesis, University of Trier, Germany, 2015) - Visuelle Worthäufigkeitsanalyse mit THREE.js
(Pascal Robert, Master’s Thesis, University of Trier, Germany, 2015) - Berechnung und Visualisierung ähnlicher Ordnerpaare in einem Verzeichnisbaum
(Sascha Rudolph, Diploma Thesis, University of Trier, Germany, 2015) - Sketchlink Plugin: Improving software documentation and comprehension by linking source code to relevant sketches and utilizing them for navigation tasks
(Peter Schmitz, Diploma Thesis, University of Trier, Germany, 2014)