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
Where to start with documentation
Collaborative version control and code review
Concepts around collaboration
Collaborating within the same repository
Practicing code review
How to contribute changes to repositories that belong to others
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)
Collaborative version control and code review
Edit on GitHub
Collaborative version control and code review
Concepts around collaboration
Collaborating within the same repository
Practicing code review
How to contribute changes to repositories that belong to others