https://github.com/coderefinery/research-software-engineering
"CodeRefinery in 1 hour" - What are good tools and practices in research software engineering?
https://github.com/coderefinery/research-software-engineering
Last synced: 5 months ago
JSON representation
"CodeRefinery in 1 hour" - What are good tools and practices in research software engineering?
- Host: GitHub
- URL: https://github.com/coderefinery/research-software-engineering
- Owner: coderefinery
- License: cc-by-4.0
- Created: 2023-07-31T19:12:40.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-07-11T15:54:17.000Z (11 months ago)
- Last Synced: 2025-09-10T04:44:27.466Z (9 months ago)
- Language: Python
- Homepage: https://coderefinery.github.io/research-software-engineering/
- Size: 7.36 MB
- Stars: 3
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://doi.org/10.5281/zenodo.8242054)
# Research software engineering ("CodeRefinery in 1 hour")
"CodeRefinery in 1 hour" - What are good tools and practices in research software engineering?
- [Latest presentation slides](https://cicero.xyz/v3/remark/0.14.0/github.com/coderefinery/research-software-engineering/main/presentation.md/)
- [Published presentation slides](https://doi.org/10.5281/zenodo.8242054)
- [Exercise repository](https://coderefinery.github.io/research-software-engineering/)
---
## Overview
- What is "research software"?
- CodeRefinery
- 6 most important topics? (in the HPC context)
- Exercises (separate webpage)
## Version control
- Motivation for version control
- Commits: keeping track of changes
- Features: roll-back, branching, merging, collaboration
- Reproducibility
- Talking about code
- Collaboration through branches or forks
- Code review
- Where to start?
## Documentation
- Why?
- Checklist
- In-code documentation
- Often a README is enough
- When projects grow out of a README
## Reproducibility and containers
- 6 helpful steps
- It all starts with a good directory structure ...
- Recording dependencies
- Containers
- Recording computational steps
## Building code with CMake
- Why is Make not enough?
- CMake is not a build system
- How do CMakeLists.txt files look?
- Why CMake?
## Automated testing
- Technical possibilities
- Motivation
- Where to start
## Sharing and reusing
- Why software licenses matter
- When should I add a license?
- Is your work derivative work or not?
- How do I add a license to my work?
- Make it persistent and citable
- Great resources