Good Practices in Research Software Development

Start Date

3 Feb 2025

Start Time

09:00 Europe/Amsterdam

Location

Online Event

End Date

6 Feb 2025

End Time

13:00 Europe/Amsterdam

 
Good Practices in Research Software Development

Details
Start:

February 3 - 09:00 am

End:

February 6 - 01:00 pm

Event Category:

Workshops

Click to Register: https://www.eventbrite.co.uk/e/good-practices-in-research-software-development-tickets-1140355276329
Organizer

eScience Center Digital Skills Programme

Website: https://www.eventbrite.co.uk/o/escience-center-digital-skills-programme-8536296706
‘Good Practices in Research Software Development’ workshop introduce practices, tools and skills used in research software development.

This training will take place online for 4 consecutive days (Monday – Thursday) from 9:00 am – 1:00 pm. The instructors will provide you with the information you will need to connect to this meeting.

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.

The workshop is based on the teaching style of the Carpentries, and learners will follow along while the instructors write the code on screen. More information can be found on the workshop website.

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.

Please be advised that by signing up, you agree to our Cancellation and No-Show Policy, which states that cancellations made less than 2 workings days prior to the event will incur a no-show fee. Please read the full policy here for more details.

If you won’t be able to attend, please cancel your registration (by following the instructions here) so that we can offer your seat to someone on the waiting list.

Audience

The workshop is aimed at PhD candidates, postdocs, (assistant-)professors and other researchers and also open for research support staff and research software engineers. We offer tickets for researchers who are affiliated with Dutch research institutions. We also offer industry tickets for attendees who are not affiliated with Dutch research institutions. We do not accept registrations by Master students.

Ticket prices

Ticket prices are as follows:

  • For participants affiliated with Dutch research institutions: €175.00
  • For participants from industry: €525.00

Early Bird Discount

Register within the first week of open registration and receive a 25% discount on your participation fee. Don’t miss out on this opportunity to secure your spot at a reduced price!

Group Discount

Bring your team along and benefit from our group discount. Groups of five or more participants are eligible for a 25% discount. For more details and to register your group, please email us at .

Prerequisite knowledge

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.

Syllabus

Introduction to version control with Git

  • What is version control and why should I use it?
  • Setting up Git locally
  • Creating a Git repository
  • Tracking changes: git status, git add & git commit
  • Exploring history: identify and recover old versions of files
  • Ignoring things with .gitignore files
  • Remote repositories in GitHub

Collaboration with Git and Github

  • Submitting changes through pull requests in Github
  • The peer review process
  • Good practices for collaboration: using issues and the git workflow
  • Contributing to repositories as external contributor through forks

Code Documentation

  • In-code documentation
  • Readme files
  • Writing documentation with sphinx and ReadTheDocs or Github pages

Modular Code Development

  • How can you create blocks of code that can be reused?

Testing

  • Introduction to testing: motivation, unit testing, integration testing
  • Writing tests with pytest

Continuous Integration

  • Introduction to Continuous Integration
  • Setting up Continuous Integration with Github Workflows
  • Linting and automated testing