Good Practices in Research Software Development (Code Refinery)

Netherlands eScience Center

Online

December 12 - 15, 2022

9:00 - 13:00 CET

Instructors: Barbara Vreede, Sven van der Burg, Leon Oostrum

Helpers: Luisa Orozco, Dani Bodor

Some adblockers block the registration window. If you do not see the registration box below, please check your adblocker settings.

General Information

The eScience Center offers a range of free workshops and training courses, open to all researchers affiliated with Dutch research organizations. We organize workshops covering digital skills needed to put reproducible research into practice. These include online collaboration, reproducible code and good programming practices. We also offer more advanced workshops such as GPU Programming, Parallel Programming and Deep Learning.

The key objective of this workshop is to grow researchers’ software skills necessary to apply good practices that enable open and reproducible research. The workshop focuses on building modular, reusable, maintainable, sustainable, reproducible, testable, and robust software. The participants should be familiar with programming and regularly write code for their research, but no expertise is required.

This workshop is inspired by and based on CodeRefinery training materials.

Optional “Introduction to Git” on day one. To ensure all participants are familiar with the basics of version control and Git, we offer an optional “Introduction to version control with Git” session on day one of the workshop. Please take this 1-minute Quiz to self-assess your git knowledge. If you answered all questions correctly, you can join the workshop from day two onwards. Otherwise, you should join the “Introduction to Git” session on day one.

Who: 

It is assumed that participants already write code for their research, but no expertise is required. Some experience in navigating file trees and editing files in a terminal session, as well as basic knowledge of Python programming is recommended.

Where: This training will take place online. The instructors will provide you with the information you will need to connect to this meeting.

When: December 12 - 15, 2022, 9:00 - 13:00 CET.

Requirements: Participants must have access to a computer with a Mac, Linux, or Windows operating system (not a tablet, Chromebook, etc.) that they have administrative privileges on. They should have a few specific software packages installed (listed below).

Accessibility: We are dedicated to providing a positive and accessible learning environment for all. Please notify the instructors in advance of the workshop if you require any accommodations or if there is anything we can do to make this workshop more accessible to you.

Contact: Please email or training@esciencecenter.nl for more information.


Code of Conduct

Participants are expected to follow these guidelines:

Syllabus

Syllabus

Schedule

Day 1 (optional introduction to git)

09:00 Welcome and icebreaker
09:15 Introduction to version control with Git
10:15 Coffee break
10:30 Introduction to version control with Git
11:30 Coffee break
11:45 Introduction to version control with Git
12:45 Wrap-up
13:00 END

Day 2

09:00 Welcome and icebreaker
09:15 Workshop Introduction
09:30 Collaboration with Git and GitHub
10:15 Coffee break
10:30 Collaboration with Git and GitHub
11:30 Coffee break
11:45 Collaboration with Git and GitHub
12:45 Wrap-up
13:00 END

Day 3

09:00 Welcome and icebreaker
09:30 Writing modular code
10:15 Coffee break
10:30 Writing modular code
11:00 Documentation
11:30 Coffee break
11:45 Documentation
12:45 Wrap-up
13:00 END

Day 4

09:00 Welcome and icebreaker
09:30 Introduction to testing
10:15 Coffee break
10:30 Introduction to Continuous Integration
11:30 Coffee break
11:45 More advanced testing
12:45 Wrap-up
13:00 END

All times in the schedule are in the CET timezone.


Setup

To participate in this workshop, you will need access to software as described below. In addition, you will need an up-to-date web browser.

We maintain a list of common issues that occur during installation as a reference for instructors that may be useful on the Configuration Problems and Solutions wiki page.

Software setup

Computer

Participants must work on a computer with a Mac, Linux, or Windows operating system (not a tablet, Chromebook, etc.) on which they have administrative privileges.

Software

To participate in this workshop, you will need to prepare the following (if you haven’t already):

To confirm that everything works

You should now be able to open a terminal window and execute the following commands:

Git

git --version

returning (something similar to):

git version 2.37.1 (Apple Git-137.1)

Github account & SSH connection

ssh git@github.com

returning (something similar to):

Hi [username]! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.

Conda

conda --version

returning (something similar to):

conda 22.9.0

Conda environment for the workshop

conda activate coderefinery
python -c "import sys; assert sys.version_info.major>=3"
jupyter-lab --version
pytest --version
sphinx-build --version
snakemake --version
conda deactivate

returning (something similar to):

3.9.10
pytest 7.0.1
sphinx-build 4.4.0
7.1.1

If something does not work:

Follow the corresponding setup instructions. If you still need help, come to our dedicated setup session.

Install the videoconferencing client

If you haven't used Zoom before, go to the official website to download and install the Zoom client for your computer.

Set up your workspace

Like other Carpentries workshops, you will be learning by "coding along" with the Instructors. To do this, you will need to have both the window for the tool you will be learning about (a terminal, RStudio, your web browser, etc..) and the window for the Zoom video conference client open. In order to see both at once, we recommend using one of the following set up options:

This blog post includes detailed information on how to set up your screen to follow along during the workshop.