Welcome to our interactive online course on Research Software Engineering. This course was created by the Software Engineering Group at the University of Potsdam, Germany. The contents of the course was assembled from different sources. As inspiration and main source material the Research Software Engineering with Python by Irving et al. was used.
We have incorporated all the material from the Merely Useful book adjusted or expanded them when needed and added additional topics. These include the chapters and sections on:
- Licensing and FAIR
- Requirements, Architectures and Software Design
- Workflows
- Workflows - Snakemake
- Workflows - CI/CD
Some of the tutorials used were taken from the Carpentries and adjusted. While the material will always remain a work in progress, we hope that using this course students and researchers will have a great experience getting into research software engineering!
The course is taught in person every summer term at the University of Potsdam by Prof. Anna-Lena Lamprecht, and this online, publicly available course material will be used by the students as reference material.
Project assignment and course Schedule of 2024 term can be found on our University of Potsdam Gitlab instance right here.
The course itself concists of lectures and 2 project assignments, one individual and one group project.
PLEASE NOTE currently still a WIP!
[ ] CICD SECTION -> problems with RUNNER on University Instance
The source material for our iteration of the work can be cited as:
@book{rse-py,
author = {Damien Irving and Kate Hertweck and Luke Johnston and Joel Ostblom and Charlotte Wickham and Greg Wilson},
title = {Research Software Engineering with Python: Building Software that Makes Research Possible},
publisher = {CRC Press/Taylor and Francis},
year = {2021},
isbn = {978-0367698348},
link = {https://merely-useful.tech/py-rse/}
}
Course Schedule:
Week | Date | Lab (Tuesday) | Lecture (Thursday) | Assignment |
---|---|---|---|---|
1 | 08.04 - 12.4 | NO LAB | Course Introduction | Get set up, find a Topic |
2 | 15.04 - 19.4 | Python refresher, git basics refresher | Writing readable code, code documentation | Plan data analysis |
3 | 22.04 - 26.04 | Working with the Unix shell | Project structure, Markdown, Jupyter NB, Computational Narrative | implement data analsysis as comp. narrative in jupyter NB |
4 | 29.04 - 03.05 | Project Support | Licensing, Citation, FAIR | Add additional project information |
5 | 06.05 - 10.05 | Project Support | Holiday | Project Submission |
6 | 13.05 - 17.05 | Advanced Git | Working in Teams | Building Teams |
7 | 20.05 - 24.05 | Project Support | Software life cycle (requirements, architectures, design) | Select topic for second project, discuss requirements and design |
8 | 27.05 - 31.05 | Building CLI tools with Python | Software life cycle II (validation & verification, testing and error handling) | implement and test required tools |
9 | 03.06 - 07.06 | Project Support | Software life cycle III (configuration, packaging, deployment and evolution) | Improve and release tools |
10 | 10.06 - 14.06 | Project Support | Workflows I (Intro, life cycle, make, snake make | Implement workflow with make/snakemake |
11 | 17.06 - 21.06 | Project Support | Workflow II - (CICD) | Continue working on the Project |
12 | 24.06 - 28.06 | Project Support | Tracking Provenance | Add additional project information |
13 | 01.07 - 05.07 | Project Support | Current topics in RSE Research | improve project further |
14 | 08.07 - 12.07 | Project Support | RSE in Practice / Guest | Submission of second project |
15 | 15.07 - 19.07 | Project SUpport | Project Presentation | - |
- Small Indiviual Project (2-3 weeks)
- Larger Group Project (~4 People) (6 weeks)
This work has been licenced under the Creative Commons Attribution 4.0 International license (CC-BY-4.0) found here.
Software has been licensed under the MIT License found here