Good Practices in Research Software Development for HybridLabs project

Netherlands eScience Center

November 05 - 06, 2024

9:00 - 17:00 CET

Instructors: Francesco Nattino, Djura Smits

Helpers: Sarah Alidoost, Thijs van Lankveld, Lucas Esclapez

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: November 05 - 06, 2024, 9:00 - 17:00 CET.

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

Tuesday 5 Nov

09:00 Consortium meeting (with lunch)
14:00 Workshop Introduction
14:15 Version control with Git
15:30 Afternoon break
15:45 Collaboration with Git and Github
17:00 END

Wednesday 6 Nov

09:30 Modular Code Development
10:30 Morning break
11:00 Code Documentation
12:00 Lunch break
13:00 Testing
15:00 Afternoon break
15:30 Continuous Integration
16:45 Wrap-up
17:00 END

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.

For this workshop, we ask you to study the introduction to git part by yourself; please follow part 1-6 of the following lesson material.

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.