Good Practices in Research Software Development

Netherlands eScience Center

October 22 - 23, 2024

9:30 - 17:00 CEST

Instructors: Sander van Rijn, Olga Lyashevska

Helpers: Carlos Murilo Romero Rocha, Luisa Orozco, Claire Donnelly

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 workshops and training courses, aimed at PhD candidates and other researchers or research software engineers. 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, Image Processing 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. This will allow you to more easily organize, maintain and share your data. The participants should be familiar with programming and regularly write code for their research, but no extensive expertise or knowledge of specific tools are required. The main themes that are addressed are generically applicable, but please note that a lot of the exercises and demonstrations are in Python.

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

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.

If you find the topics that are covered in this workshop too basic, you could consider joining the ‘Intermediate Research Software Development’ workshop. That workshop has a similar focus, but also teaches more intermediate topics like software architecture, object-oriented & functional programming, Integrated Software Development environments and is targeted to slightly more advanced research software engineers. Checkout our upcoming workshops for more information.

Where: Science Park 402, 1098 XH Amsterdam. Get directions with OpenStreetMap or Google Maps.

When: October 22 - 23, 2024, 9:30 - 17:00 CEST.

Requirements: Participants must bring a laptop 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 committed to making this workshop accessible to everybody. The workshop organizers have checked that:

Materials will be provided in advance of the workshop and large-print handouts are available if needed by notifying the organizers in advance. If we can help making learning easier for you (e.g. sign-language interpreters, lactation facilities) please get in touch (using contact details below) and we will attempt to provide them.

Workshop files: You will find all slides, notebooks, archived collaborative documents, and other relevant files in the files folder of the workshop website repository after the workshop.

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


Code of Conduct

Participants are expected to follow these guidelines:

Syllabus

Introduction to version control with Git

Collaboration with Git and Github

Code Documentation

Modular Code Development

Testing

Continuous Integration

Schedule

Day 1

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

Day 2

09:30 Welcome and icebreaker
09:45 Writing modular code
10:30 Coffee break
10:45 Writing modular code
11:30 Coffee break
11:45 Documentation
12:30 Lunch Break
13:30 Introduction to testing
14:15 Coffee break
14:30 Introduction to Continuous Integration
15:15 Coffee break
15:30 Introduction to Continuous Integration
16:15 Wrap-up
16:30 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.