This is the training respository for the JuDocs course for Research Software Engineering (May 6-9, 2025), online & at the Forschungszentrum Juelich, provided by the Digiatl Research Academy, taught by Johanna Bayer.
Day 1
| Topic | Time | Duration |
|---|---|---|
| Welcome + Introduction: Why are we here? | 09:00 – 09:15 | 0:15 |
| What is a research software engineer? Setting up a research code project: repository structure, naming, README Activity 1 (20 min) |
09:15 – 10:05 | 0:50 |
| Break | 10:05 – 10:20 | 0:15 |
| Activities with Git: Theoretical background (30 min) Activity 2 (15 min) |
10:20 – 10:55 | 0:35 |
| Break | 10:55 – 11:10 | 0:15 |
| Activity 3 (15 min) Theory and activities: collaborating effectively using issues, branches, forks, pull requests, merges and code reviews |
11:10 – 11:45 | 0:35 |
| Wrap-up | 11:45 – 12:00 | 0:15 |
Day 2
| Topic | Time | Duration |
|---|---|---|
| Welcome + Introduction | 09:00 – 09:15 | 0:15 |
| Git continued: cloning repositories, command line git Activity 1 (15 min) |
09:15 – 09:45 | 0:30 |
| Break | 09:45 – 10:00 | 0:15 |
| Introduction to reproducible code, good coding practices and stabilizing your computing environment | 10:00 – 10:30 | 0:30 |
| Activity 2 (40 min): Reproducible code, good practices and stabilizing environment | 10:30 – 11:10 | 0:40 |
| Break | 11:10 – 11:20 | 0:10 |
| Thinking about the user: documentation, packaging, error messages, and more | 11:20 – 11:45 | 0:25 |
| Wrap-up | 11:45 – 12:00 | 0:15 |
Day 3
| Topic | Time | Duration |
|---|---|---|
| Welcome + Introduction | 09:00 – 09:15 | 0:15 |
| Introduction to testing | 09:15 – 09:45 | 0:30 |
| Break | 09:45 – 10:00 | 0:15 |
| Testing exercise Activity 1: Testing (40min) |
10:00 – 10:45 | 0:45 |
| Break | 10:45 – 11:00 | 0:15 |
| A very quick introduction to Cx Activity 2: CI/CD (15min) |
11:00 – 11:35 | 0:35 |
| Wrap-up | 11:35 – 12:00 | 0:25 |
Day 4
| Topic | Time | Duration |
|---|---|---|
| Introduction | 09:00 – 09:15 | 0:15 |
| Software publication and licenses Activity 1: Create a license |
09:15 – 09:45 | 0:30 |
| Activity 2: Zenodo | 09:45 – 10:00 | 0:15 |
| Break | 10:00 – 10:15 | 0:15 |
| Brainstorming: What makes a good code project? | 10:15 – 10:30 | 0:15 |
| Group work: pitch prep on “What makes a good code project” topics | 10:30 – 11:05 | 0:35 |
| Break | 11:05 – 11:20 | 0:15 |
| Pitches | 11:20 – 11:45 | 0:25 |
| Feedback, Wrap-up, Farewell | 11:45 – 12:00 | 0:15 |
Provided examples can be run in Python (Jupyter Notebook + Colab) or Matlab Live scripts (Matlab online). If you'd prefer to practice in your own language of choice, you can install a corresponding kernel in Google Colab.
Please find [here] an introduction to Google Colab (not part of this course)
(C) Johanna Bayer, 2025