CodeRefinery mini-workshop
Example project: https://github.com/coderefinery/imgfilters
Inspiration for this example: scikit-image
This is a mini-version of the CodeRefinery workshop (6 half-days) which we teach twice a year.
Goals of this workshop
We will together create a simple image processing pipeline that is reproducible, reusable, extensible, documented, and tested.
We will start with something relatively simple and gradually add the missing pieces: all the way towards making it publishable.
We will use a Python example but we will not need Python experience to follow and not focus on Python programming but rather on software development practices.
We will explore these in 3 sessions:
Session 1: Reproducible code changes. Keep track of code changes and learn how we can collaborate on code using Git and GitHub.
Session 2: Add code documentation and testing. Improve structure.
Session 3: Document dependencies and prepare the code to be shared, reused, and published.
Learner personas
You write code for their own research: alone or in a small collaboration.
You want to be able to contribute to open-source projects.
You do data analysis and use (import) code written by others in a Jupyter Notebook (or similar) or a script.
You neither write not use code but you want to better understand how reproducible research software is created and what matters to make it reusable.
Preparation
GitHub account if you want to actively participate.
Enable Rich Jupyter Notebook Diffs on GitHub for a better code review experience when changing Jupyter Notebooks (click on your avatar top-right on GitHub, then “Feature preview”).