Skip to content

Course information

Research Software Engineering

Software is an integral part of nowadays research. A UK survey in 2014 found that 7 out of 10 researchers could not conduct research without software. However, research software engineering (RSE) does not yet get the necessary attention in research and in teaching. All this applies to simulation software in particular.

Read more:

Idea of the course

The course is about simulation software. More precisely, we discuss the software tools used to ensure good software engineering for open-source simulation software such as FEniCS, PETSc, TRILINOS, DuMuX, preCICE, or SU2. This is not a course focused on programming and programming paradigms, but on the techniques and the corresponding tools. Some examples are version control (Git, GitHub, GitLab), virtualization/containerization (Docker), continuous integration (GitHub Actions, GitLab CI), or documentation (Jekyll, mkdocs, sphinx). We study these concepts and tools in lectures and (almost) weekly lab assignments. In parallel, you work on an individual challenge, where you apply the learned concepts and tools with the ultimate goal to contribute to a large-scale community simulation software package. Read more on the course content.

Target audience

This course is aimed at master-level students from Computer Science, Simulation Technology and related fields, but is also open to PhD students or anyone else interested. We expect you to have some knowledge in software development, basic tools and programming. However, we also give you extra information or point to additional resources if you have the feeling you need to catch up with some topic.

An example: In the lecture, we shortly touch on Git

  • You are a Git expert? This is great. We try not to bore you.
  • You have used Git before, but you basically use the same 5 commands all the time? This is fine and a good foundation to start.
  • You had heard about Git some time in a lecture, but you have never used it? You are good to go with the examples in the lectures and the references presented there, but you probably have to catch up a bit.

Resources

All teaching resources are available (open-source) on GitHub and through this homepage.

We encourage you to help us extend these resources and fix mistakes.

Exam

The course has a so-called "course accompanying examination". This means, there will be no single exam. Instead, we evaluate the students' performance on the individual challenge, on the weekly exercises, and on the overall engagement. Still, wou will have to register for the "exam" on campus. Point of no return: Once you gave the first presentation (presumably early November), you have to register.

Additional information for SimTech students

You might also be interested in the course Sustainable Development of Simulation Software by Bernd Flemisch and Dennis Gläser, which is starting in summer term 2022. Their course has a stronger focus on software engineering patterns and project work in C++ for simulation software. Our course Simulation Software Engineering focuses more on the tools commonly used in the development of simulation software. The course of Flemisch/Gläser is not a prerequisite to follow our course on simulation software engineering and neither vice versa. We encourage you, however, to follow both courses if you are interested in the topic.