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. Additional events will also be listed on the Helmholtz Indico.

On this page, you can find:

Can’t find exactly what you’re looking for? HIFIS Education also offers customised courses. Send us a request with your need and an instructor will contact you to discuss the specific content and organisation in detail: support@hifis.net

support.hifis.net

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
Event Management with Indico Material Repository
Getting started with Markdown Flavours (In preparation) 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
Test Automation (In preparation) Repository

Git and GitLab

Topic Materials Repository
Introduction to Git and GitLab Material Repository
Project Management in GitLab (In preparation) Repository
GitLab for Software Development in Teams (In preparation) 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.

Requesting Workshops

Would you like to have a workshop on a specific topic for your team?

Feel free to contact us.

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.