Main Content
HeFDI Code School: Sustainable Research Software (EN)

Basic Track (online) May 2025 information & program
Registration
Advanced Track I (online) July 2025 information & program
Inhalt ausklappen Inhalt einklappen Who is the target group of the HeFDI Code School?
The HeFDI Code School meets the needs of researchers for further training in the field of software development. All workshops are free-of-charge.
Inhalt ausklappen Inhalt einklappen Why do we need the HeFDI Code School?
Software for the evaluation and creation of research data is now being developed in almost all research areas, but systematic training is rarely part of the curriculum or further training in non-computer science subjects. Without sustainable, qualitative research software, the evaluation and analysis of research data is limited in many places and the traceability and reproducibility of research results is jeopardized. This is where the HeFDI Code School comes in and develops formats for further training in sustainable and qualitative research software for doctoral students and postdocs from all disciplines. Demand for the verious formats of the HeFDI Code School is rising continuously.
Inhalt ausklappen Inhalt einklappen Who organizes the HeFDI Code School?
The HeFDI Code School is organized by the federal state initiative HeFDI, in strong cooperation with selected experts from HKHLR, Hessian.AI, Suresoft and NFDI4ING as well as NFDI4Earth.
In 2025 we offer the following tracks:
Basic Track "Getting started with Python Programming", May 2025 | Advanced Track I (Online), July 2025 |
Introduction to programming basics for those without any prior programming skills. A series of three online workshops in May 2025. | A track for experienced developers. Participants need general knowledge of a programming language and basic understanding of object-oriented programming and versioning. |
All workshops are free-of-charge.
Basic Track "Getting started with Python Programming", May 2025 (EN)
You don’t know Python, but want to? You know a little Python or did it years ago and need a refresher? Then join our HeFDI Code School Basics, a dynamic series of three hands-on online workshops in collaboration with NFDI4Earth. These workshops – all free of charge – will guide you through the basic concepts and functions of Python using Jupyter notebooks, and go all the way up to manipulating data and datasets, making interactive plots and your own webpage where users can interact with your data visualisations.
The focus of the course is on you coding, so we will alternate between 20-30 minute coding presentations and breakout sessions with lots of exercises, allowing you to understand how Python works through your own practice.
Workshops will be held in English.
Your Benefits¶
- Hands-On Learning: Each 4-hour workshop blends insightful lectures with engaging group activities and practical coding exercises. Because the best way to learn coding is to write your own!
- Flexible Participation: Attend all three workshops for a comprehensive experience, or select the ones that spark your interest most.
Registration
The instructor is PD Dr. Dominik Hezel, Goethe-University Frankfurt and member of NFDI4Earth.
Date & Time | Title | Topics |
Fr 09th May 2025, 9-13h |
Introduction to Python and Jupyter Notebooks |
You will learn how to work with and code in Jupyter notebooks, either in a browser or with its desktop version. You will use and apply your first Python functions, be able to import additional functions, and become able to build your own functions. |
Fr 16th May 2025, 9-13h |
Data Manipulation with Pandas and Basic Plotting |
You will use functions from the popular functions package ›pandas‹ to work with and manipulate datasets such as an Excel table or a .csv file. You will load large datasets and get to know how to quickly and easily filter and select only parts from it for further analyses or visualisations. You will apply conditional functions such as ›if this condition is fulfilled, do that, if not do something else‹. You will also learn how to create plots with the popular matplotlib package. |
Fr 23rd May 2025, 9-13h |
Interactive Visualizations and Web Development with Streamlit |
You will produce interactive plots where you, for example, can select which dataset to display or what parameter to be used displayed on the x-/y-axes. You will make a request to an online database to access its data. Finally, you will create a webpage with interactive elements, so a user can manipulate your plot visualisation. This will be realised with Streamlit. |
Advanced Track (online), July 2025
Together with the colleagues from Suresoft project and NFDI4ING we offer a series of four workshops.
Participants of these workshops will learnmethods 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. These workshops are directed at 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.
Date & Time | Titel | Agenda | Prerequisites |
3. July 2025, 9-13h |
Scientific Software Development is not a Jenga Game |
|
|
4. July 2025, 9-13h |
Design Patterns |
|
|
10. July 2025, 9-13h |
Clean Code and refactoring |
|
|
11. July 2025, 9-13h |
Test-driven development |
|
|
Registration Advanced Track
Registration for the Advanced Track will start at the beginning of June 2025
Full description of Workshops of the Advanced Track
Scientific Software is not a Jenga game
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. This workshop is an introduction on how to bridge the gap between both worlds and introduces practices, methods and principles to develop maintainable software and to make the software development process sustainable
Design Patterns
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.
Clean Code
In the scientific environment with ever-changing requirements, it is important to produce source code that can be read, understood and modified by ourselves or others. This workshop will teach you how to apply clean code principles and refactoring techniques to produce high quality, maintainable code
Test driven development
Continuously changing requirements lead to rapidly evolving software. While adapting the source code to fit the requirements, we have to ensure that code changes work as intended and don’t break existing features. At the same time the source code needs to stay maintainable and extensible to allow changes for new features in the future.
This is where the development approach of Test-Driven Development comes in. It emphasizes writing automated tests before writing the code. The developer writes a failing test, then writes the code to make the test pass, and finally refactors the code to improve its quality. This cycle is repeated for each new feature or change to the code and therefore ensures that every new or existing feature is always tested and working as intended. In this workshop we will collaboratively work through a TDD example