Jump to content

HeFDI Code School 2026 - Introduction to Design Patterns
HeFDI Code School Advanced Track II

06/12/2026 9:00 AM Clock - 1:00 PM Clock
Attendance:
Online event 
Event location:
  • Online
Event Organizer:
  • Universitätsbibliothek
  • Forschungsdaten-Service
  • HeFDI
  • Suresoft
  • NFDI4Ing
Category:
  • Training

Advanced Track II: Design Patterns

Scientific software is in many disciplines crucial for understanding and reusing research data and a cornerstone for reproducibility of research results. Although many researchers require programming skills, systematic training outside of computer science courses rarely takes place.

Together with the colleagues from Suresoft project and NFDI4Ing we offer a series of four online workshops.

Scientific software is often hard to maintain and reuse. A major reason for the instability of software is that it is subject to continuous change. This is especially true for software in the scientific context, since the scientific discourse is open-ended. Change has caused difficulties for scientific software developers from the very beginning, and it continues to do so. In parallel, the software engineering community has produced numerous developments that we as research software developers can take advantage of to significantly support our work.

As scientists we don’t have to reinvent the wheel when it comes to software. Instead we will make use of software design patterns that provide proven solutions for reoccurring problems. Applying design pattern will help us achieving a higher application quality and rising the level of abstraction in documentation as well as communication with our colleagues. In this workshop we will walk you through a code example and step by step add new features. Along the way, we will involve you in every design decisions so that you have a good understanding of the pros and cons of our final solution. It is quite possible that we will come across some design patterns along the way.

Your Benefits

This HeFDI Code School series adresses the need of especially early career researchers on learning how to create good scientific software and increase the quality of their code for better reusability and sustainability.

Participants of these workshops will learn about

  • methods and techniques to increase the quality of their code,
  • how to produce understandable and therefore reusable code,
  • and to increase the sustainability of scientific software.

Especially in this workshop you will learn about

  • collaborative implementation of a sample application,
  • discussion of design decisions,
  • recognition and derivation of design patterns,
  • and derive design patterns by applying development principles.

Instructors

The instructors are Jan Linxweiler and Sven Marcus.

Language

The workshops will be held in English.

Prerequisites

These workshops are intended for researchers who already have experience with developing scientific software, and therefore require general knowledge of a programming language and a merely basic understanding of object-oriented programming and versioning.

We therefore assume some basic knowledge of the python programming language and the version management system git. At least, you should be able to read and understand python. In general, the concepts we address are programming language agnostic. Hence, you should be able to easily use them with your favorite programming language.

During these workshops, we will work collaboratively using Visual Studio Code, which can be used in the browser without any further installation. However, we recommend that you install the following software in order to be able to code yourself and/or to reproduce later:

You should also have a look on the starting point of the code example.

Registration

You can register for this workshop and the other workshops of this Advanced Track under the following link: https://redcap.kks.uni-marburg.de/surveys/?s=XFP7K4A9M39FXRNF.

Publications

Code examples and the slides can be found on Zenodo.

More information about this event

Event location:

Online

Event Organizer:

Universitätsbibliothek, Forschungsdaten-Service, HeFDI, Suresoft, NFDI4Ing