Teaching Research Software Engineering Skills for Developing Simulation Software

Authors

  • Gerasimos Chourdakis School of Computation, Information and Technology, Technical University of Munich https://orcid.org/0000-0002-3977-1385
  • Hasan Ashraf School of Computation, Information and Technology, Technical University of Munich
  • Santiago Narvaez Rivas School of Computation, Information and Technology, Technical University of Munich
  • Tobias Neckel School of Computation, Information and Technology, Technical University of Munich
  • Hans-Joachim Bungartz School of Computation, Information and Technology, Technical University of Munich

DOI:

https://doi.org/10.14279/eceasst.v83.2615

Keywords:

Teaching, Research Software, simulation, research software development practices

Abstract

Graduates of programs such as the M.Sc. Computational Science and Engineering at the Technical University of Munich write research software at different stages of their career, yet software engineering skills are often assumed to be prior knowledge or a product of self-study. In order to better prepare graduates for developing larger projects, such as the next PETSc, deal.II, or TensorFlow, we introduced software engineering skills in different courses, naturally connecting the material with the courses, and forming a coherent curriculum track for learning how to write simulation software. This starts with the onboarding block-course "CSE Primer" (revising the basics of Linux, Git, Matlab/Octave, C++, and teamwork via lectures and a team project), continues with "Advanced Programming" (a semester-wide C++ course touching numerical computations, software design, performance, and several tools on the way), and expands to a variety of practical courses, which involve building larger projects in a team. All of these courses have been very well received by students, and the course "Advanced Programming" has been attracting an exponentially increasing number of students from multiple engineering curricula, making the originally intended CSE audience only a small minority. This paper gives an overview of these courses, discusses their connection, and highlights several didactical and implementation elements of each.

Author Biography

Gerasimos Chourdakis, School of Computation, Information and Technology, Technical University of Munich

Researcher at the University of Stuttgart, preCICE developer

Downloads

Published

2025-02-21

How to Cite

[1]
G. Chourdakis, H. Ashraf, S. Narvaez Rivas, T. Neckel, and H.-J. Bungartz, “Teaching Research Software Engineering Skills for Developing Simulation Software”, ECEASST, vol. 83, Feb. 2025.