Reproducible research software development using Python (ML example)
Software environment
Software install instructions
Episodes
Example project: 2D classification task using a nearest-neighbor predictor
Introduction to version control with Git and GitHub
Motivation
Forking, cloning, and browsing
Creating branches and commits
Merging changes and contributing to the project
Conflict resolution
Practical advice: How much Git is necessary?
Optional: How to turn your project to a Git repo and share it
Where to start with documentation
Collaborative version control and code review
Reproducible environments and dependencies
Notebooks and version control
Other useful tooling for notebooks
Sharing notebooks
Tools and useful practices
Profiling
Automated testing
Concepts in refactoring and modular code design
How to parallelize independent tasks using workflows (example: Snakemake)
Choosing a software license
How to publish your code
Creating a Python package and deploying it to PyPI
Reference
PDF version
Credit
All lessons
CodeRefinery
Reusing
Reproducible research software development using Python (ML example)
Introduction to version control with Git and GitHub
Edit on GitHub
Introduction to version control with Git and GitHub
Motivation
Forking, cloning, and browsing
Creating branches and commits
Merging changes and contributing to the project
Conflict resolution
Practical advice: How much Git is necessary?
Optional: How to turn your project to a Git repo and share it