An open API service indexing awesome lists of open source software.

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?

Awesome Lists containing this project

README

          

[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.8242054.svg)](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