Good Practices in Research Software Development

Start Date

8 Apr 2024

Start Time

09:00 Europe/Amsterdam

Location

Online Event

Date End

11 Apr 2024

End Time

13:00 Europe/Amsterdam

 
Good Practices in Research Software Development

Details
Start:

April 8 - 09:00 am

End:

April 11 - 01:00 pm

Event Category:

Workshops

Click to Register: https://www.eventbrite.nl/e/good-practices-in-research-software-development-tickets-776821322487
Organizer

eScience Center Digital Skills Programme

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

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 (will be activated once registration is live, usually 3 weeks before the start of the workshop).

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.

Who

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

Ticket prices are as follows:

  • For participants affiliated with Dutch research institutions: €175,00
  • For participants from industry: €525,00

Prerequired 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

  • 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

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

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

Where

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