Teaching
My teaching focuses on programming, algorithms, and scientific computing, ranging from introductory programming in the first year of the Bachelor's program to advanced software concepts for scientific computing at Master's level.
A recurring theme is the connection between mathematical and algorithmic ideas and their practical implementation. Students should not only learn how to write programs, but also how to structure computational problems, reason about algorithms, test implementations, and develop reliable scientific software.
Current and recurring courses
Programmieren – Grundlegende Konzepte
Bachelor Mathematics · 1st semester · Math-Ba-PR10
An introduction to programming for mathematics students. The course develops fundamental programming concepts such as control flow, functions, data types, recursion, and basic algorithms, while connecting them from the beginning to mathematical problems and computational thinking.
The course is designed for students with very different levels of previous programming experience and provides the foundation for the subsequent course Programmieren – Weiterführende Konzepte.
Current course: WS 2026/27
Previous course: WS 2025/26
Programmieren – Weiterführende Konzepte
Bachelor Mathematics · 2nd semester · Math-Ba-PR20
This course builds on the programming foundations from PR10 and introduces central concepts of modern algorithmics. Topics include classical algorithms and data structures, algorithm design strategies, runtime analysis, graph algorithms and algorithmic geometry.
At the same time, programs are increasingly treated as structured systems: students learn to define their own data types, organize code modularly, and systematically test implementations. The course connects algorithmic thinking, mathematical modelling, and modern programming practice.
Current course: SS 2026
Scientific Programming – Advanced Concepts
Master Mathematics / Computational Modeling and Simulation · Math-Ma-33
This course addresses concepts and techniques for developing modern scientific software in C++. Starting from generic programming and the C++ type system, we investigate abstractions used in numerical software, including templates, concepts, iterators, function objects, data structures, and techniques for writing efficient and reusable code.
A central objective is to connect software design with the requirements of numerical algorithms: students learn to reason about interfaces, correctness, performance, testing, and maintainability rather than treating implementation as a final step after the mathematics.
Current course: WS 2026/27
Student projects and theses
I regularly supervise Bachelor's and Master's theses as well as research and programming projects in numerical mathematics and scientific computing. Many topics arise directly from current research and range from numerical experiments and software development to mathematical analysis.
Current project and thesis topics
Previous courses
- AMDiS - Workshop
- Math Ma WIA / SCCOMP: Large sparse linear systems: concepts & implementation
- Math Ma WIA: Programming Languages in Scientific Computing
- Scientific Programming with C++
- Scientific Programming - Object-Oriented Programming using Java
- Tutorial of numerics of partial differential equations and finite element method
- Seminar of modelling and simulation
- Tutorial of basics in numerical mathematics 2
- Tutorial of basics in numerical mathematics 1
- Tutorial of mathematics III for electrical engineers
- Restoration of Binary Images Using the Cahn-Hilliard Equation
- Defect-tracking in Active Smectics
- Modellvergleiche des maschinellen Lernens zur automatischen Applikation von Sitzpersonalisierungsfunktionen
- Modelling Seminar: Fluid particle dynamics
- Periodic Boundary Conditions on non-periodic Meshes for Systems of PDEs: Methods, Implementation, Examples and Analysis
- Collective behaviour of active brownian particles by active VPFC modeling
- Data exchange between independently refined grids and its application in multi-phase-field models
-
H2 (non)conforming Finite Elements for the DUNE framework
-
Machine Learning prediction models for functionality and performance parameters of semiconductor chips based on manufacturing datasets