Good Practices in Research Software Development
26 Feb 2024
29 Feb 2024
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.
Cancellation and No-Show Policy
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.
The workshop is aimed at PhD candidates and other researchers or research software engineers. We offer tickets for researchers who are affiliated with Dutch research institutions. We offer separate tickets for researchers working in industry. We do not accept registrations by undergraduate students. If you are affiliated to a foreign research institution or if you are not sure which ticket applies to you, please send us an email.
Ticket prices are as follows:
- For participants affiliated with Dutch research institutions: €175,00
- For participants from industry: €525,00
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.
Introduction to version control with Git
- Tracking changes: git add & git commit
- Exploring history, checking out older versions
- Ignoring things with .gitignore files
- Github remotes
Collaboration with Git and Github
- Creating pull requests
- Review process
- Good practices for collaboration
- Contributing to repositories with forks
- 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?
- Introduction to testing: motivation, unit testing, integration testing
- Writing tests with pytest
- Introducton to Continuous Integration
- Setting up Continuous Integration with Github Workflows
- Linting and automated testing
This training will take place online. The instructors will provide you with the information you will need to connect to this meeting.