# ELFI 2024 CodeRefinery workshop - This document: https://hackmd.io/@coderefinery/elfi-2024 ### Session 1: Version control with Git and GitHub (Tuesday, 25 June, 16:00 - 17:00) - Creating a repository and porting your project to Git and GitHub - Basic commands - Branching and merging - Recovering from typical mistakes - Code review using issues and pull requests - Contributing changes to projects of others ### Session 2: How to structure, document, and test your research software (Wednesday, 26 June, 16:00 - 17:00) - Modular code development - Functional programming style vs. object-oriented programming style - How to structure the code as it grows - Code documentation - From unit tests to end-to-end tests - Automated testing using GitHub Actions ### Session 3: How to make your research software more reusable and reproducible (Thursday, 27 June, 16:00 - 17:00) - Reproducible research: preparing code to be reusable by yourself and others - Reproducible environments and workflows - Software packaging and distribution - Software licensing - How to publish your code