artistic title image

Education & Training

The purpose of the Education & Training component is to offer courses, materials, and workshops to help you in getting started, or to boost your engineering practices.

The HIFIS Education team consists of small teams of instructors distributed across the DLR, GFZ and HZDR centres. These are supplemented by helpers from the entire Helmholtz Association, depending on the possibilities.

The programme is tailored to the needs of software development in a scientific context. Beginners’ courses are regularly offered on important basic skills such as programming in Python, dealing with version control or publishing scientific software. The existing courses are also increasingly being expanded to include more advanced topics. For example, object-oriented programming or using Gitlab CI for project automation are now also part of the portfolio.

Check out the HIDA course catalog for upcoming HIFIS courses and events on a range of software-related topics.

On this page, you can find:

Can’t find exactly what you’re looking for? We also offer custom-tailored courses. For anything else, get in touch: support@hifis.net

support.hifis.net

AI in Our Courses

AI competency is in demand everywhere. Much of what that term describes is tool competency, and a tool pays off in the hands of someone who knows the craft it is used for. For software, that craft is software engineering, and that is what we teach: deciding what to build, writing and reviewing code, testing it, and maintaining it over time.

AI tools and agentic coding accelerate the manual steps of this work. An agent drafts a function or a test in seconds. That speed is real, and it raises the stakes, because the faster the tool, the more the outcome depends on the person directing it. Whether a suggestion solves the right problem, fits the system, is secure and correctly licensed, and can be maintained is decided by the engineer, not by the agent.

An AI agent is like an electric screwdriver. It drives a screw far faster than by hand, which is exactly why it is worth using, and exactly why it pays to know whether a screw belongs there, whether the wall can take the load, and whether the result will hold.

Our courses build the foundation that makes AI assistance pay off. Learners who have practised the craft can use these tools with confidence, and stay responsible for the software they produce.

Custom-Tailored Courses

Two people working on code together in front of a screen.

We adapt our courses to your needs

Our courses run regularly, and we can tailor them to your group. If a course does not match the tools your team works with, or the level your people are at, we adapt it. Tell us what you need and an instructor will work out the content and the organisation with you. For topics outside our portfolio, get in touch and we will see what is feasible.

Example: agentic coding. Our agentic coding course currently runs at centres that provide the matching infrastructure, a Coder environment and Anthropic licences. Courses on AI tooling are tool-specific by nature, and that is exactly why we adapt them: same learning goals, matched to the environment you already have.

Requirements. We ask for a group of roughly 15 to 20 participants. Courses built around specific tools also need the matching technical infrastructure at your centre, or a comparable setup we agree on beforehand. Our FAQ covers the details.

Request a course

Workshop Materials

Our workshop material is available for self-guided learning or as a basis for your own workshops. Its use and reuse is permitted under a Creative Commons License (see the footers on the workshop pages).

Note: Workshops marked as (legacy) have been replaced by a newer offer. The entries in the table are retained here to keep older materials available for reference.

If you find issues or would like to contribute, feel free to take a look at the respective repositories.

General

Topic Materials Repository
Research Software Publication (In preparation) Repository
Container Virtualization in Science Material Repository

Python

Topic Materials Repository
First Steps in Python Material Repository
Object-Oriented Programming Material Repository
Data Processing with Pandas (legacy) Material Repository
Data Visualization with Matplotlib (legacy) Material Repository
Introduction to Pandas and Matplotlib Material Repository

Git and GitLab

Topic Materials Repository
Introduction to Git and GitLab Material Repository
Continuous Integration with GitLab CI Material Repository

Further Materials

Not all of our workshop materials are published in a nice fashion (yet). You can find the complete set of materials in the Helmholtz Codebase.

Tutorials

Guidelines

External Resources

These articles are written by third party organisations, and they aren’t necessarily focussed on research software development, but they represent a set of industry best practices for writing software, sharing code, and building software communities. We’ve brought these together here to try and answer some common questions that researchers often ask us.

How Do I Share My Project?

  • Licensing - Open source projects need an open source license - but how do I do that, and what license should I use? For a simple way to get started, try Choose A License, and for a more in-depth guide to creating open source projects, try The Open Source Guide.
  • Citations - It’s important to prepare software projects for citation as part of sustainable research software development. Simple ways to both prepare for citation, and cite other researchers’ software, are described at this Research Software Citation guide.
  • Documentation - Writing good documentation can be hard, but Write the Docs have put together a Beginner’s Guide to Writing Documentation, starting with a single README file.

If you’re just starting out with this topic, and you have some code you want to make ready for publication/open source sharing, we run regular workshops where we can help you with all of these topics. Click to see all our workshops and find out more.

What Are Best Practices for Research Software?

  • Ethical Software - Ethical research practices should also be visible in how we write research software. The Turing Way is a guide to these best practices in data science, particularly reproducibility.
  • Software Layout - Common patterns for software aim to make it as easy as possible for reviewers or new team members to understand how a project works. One pattern is using common project folder layouts. The Cookiecutter Data Science project provides a way to get started quickly on new data science projects in a manner that other people will be able to recognise and understand.
  • Committing - Reading through commits in a shared project can be a valuable way of understanding changes that you or other people have made, and figuring out when a bug appeared. How to Write a Git Commit Message explains how to describe the contents of a commit in a clean and readable way. Also, as a deep read, try My favourite Git commit.

Still Got Questions?

Feel free to contact us with what other questions you want answered, and what articles you'd find helpful.