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:
- Workshop materials we use,
- Tutorials,
- Guidelines,
- External resources to help you get started.
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
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.
Other Recommended RSE Material
- HiRSE Summer of Testing - This is a series of videos focussing on testing in the context of Research Software Engineering.
- Awesome Educational Resources for Research Software Engineering - This is a curated list of educational resources for Research Software Engineering.
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.