CodeRefinery online workshop
Date: 17 - 26 November 2020
Course goals and format
In this course, you will become familiar with tools and best practices for version control and reproducibility in modern research software development. The main focus is on using Git for efficiently writing and maintaining research software.
We will not teach programming, but we teach the tools you need to use programming well. We assume that you are familiar with the programming language that you use in your work and research. We try to keep the course as language-independent as possible but we will show some basic code examples in Python.
This is an informal and interactive event with type-along type of presentations, live coding, and demos. Short tutorials alternate with practical exercises.
Prerequisites
You should be able to navigate the file tree in a terminal session and edit text files in the terminal. This Linux shell crash course (video) contains the essentials.
Basics in one or more programming languages.
You need to install some software (see below).
It is useful if you have a basic idea of how Git works. We will start from the basics anyway, but please go through this Git-refresher material for a basic overview and important configuration steps.
Make sure that Git is configured, and verify the configuration (see below).
Schedule
All times are in Europe/Stockholm time Time converter
The schedule includes frequent breaks. The schedule is subject to change.
Pre-workshop installation help and verification times
Nov 12 (Thu) 13:00 - 14:00
Nov 13 (Fri) 13:00 - 14:00
Join anytime during this (preferably not everyone at the very start and end)
Day 1 (Nov 17, Tue)
9:00 - 9:20 Welcome and practical information
9:20 - 12:00 Introduction to version control - part 1/2 (“Motivation” to “Undoing”)
Day 2 (Nov 18, Wed)
9:00 - 12:00 Introduction to version control - part 2/2 (“Branching and merging” to “Inspecting history”)
Day 3 (Nov 19, Thu)
9:00 - 12:00 Collaborative distributed version control
Day 4 (Nov 24, Tue)
9:00 - 9:15 Mini-intro
9:00 - 11:00 Reproducible research and FAIR data
11:00 - 12:00 Social coding and open software
Day 5 (Nov 25, Wed)
9:00 - 10:30 Documentation
10:30 - 12:00 Jupyter
Day 6 (Nov 26, Thu)
9:00 - 10:30 Automated testing
10:45 - 11:45 Modular code development
11:45 - 12:00 Concluding remarks and where to go from here
Software requirements
You need to install some software before CodeRefinery (why we ask you to do this). Please do this - and check it - in advance, otherwise you’ll start off behind.
Note that, e.g., a working Python executable on your laptop is not sufficient - a version greater than 3.4 is strongly recommended and a number of extra packages need to be installed as detailed on the Python installation page. You also need to check your git configuration (video: how to configure Git). If you have an institutional laptop with limited rights, start in advance and/or ask for help to translate these instructions to work on your system.
Bash
Editor
Git, including some configuration
(optional) Visual diff tools
Python
Jupyter and JupyterLab
Snakemake
Zoom
You should either a) drop by one of our verification sessions in advance, or b) verify with your team’s helper before the workshop.
How to join
We are normally limited by number of helpers, thus why not allow groups to bring their own helper?:
We have the concept of teams that bring their own breakout room.
Anyone may register as a learner, we will try to take as many as we can.
Or you can register as a helper. If you are somewhat comfortable with these tools, you can be a helper! (see below)
Register as a team, one helper and 4-6 learners.
We will accept all complete teams.
Everyone on the team must register separately.
Decide some team name, and when registering, everone enter this same name so that we can link you together.
During the exercise sessions in breakout rooms, the helper has primary responsibility for their group’s hands-on exercises. Still, instructors drop by to check and help as needed, so don’t worry if you don’t know everything.
This is a great opportunity to bring your friends and colleagues and prepare for the future together.
If you’ve been to a CodeRefinery before and have used git some after that, you are definitely capable of being a helper. If you routinely use git and know Python somewhat well, you are also very qualified to be a helper.
Registration
Please visit the workshop webpage.
https://events.prace-ri.eu/event/1082/
Event types:
- Workshops and courses
Activity log