Skip to content

Software-Engineering-Group-UP/RSE-UP

Repository files navigation

Research Software Engineering - University of Potsdam

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/}
}

Table of Contents

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 -

Course Work

  1. Small Indiviual Project (2-3 weeks)
  2. Larger Group Project (~4 People) (6 weeks)

Other helpful referencens

License

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

Contributor Covenant

About

No description, website, or topics provided.

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE.md
MIT
LICENSE-MIT.md

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published