Good Practices in Research Software Development

Good Practices in Research Software Development

‘Good Practices in Research Software Development’ workshops introduce practices, tools and skills used in research software development.

By eScience Center Digital Skills Programme

Date and time

Tue, 22 Oct 2024 09:30 - Wed, 23 Oct 2024 17:00 CEST

Location

Netherlands eScience Center

402 Science Park 1098 XH Amsterdam Netherlands

Refund Policy

Contact the organiser to request a refund.
Eventbrite's fee is nonrefundable.

About this event

The workshop will take place at Science Park 402, 1098 XH Amsterdam. Please note that lunch and drinks at the end of the workshop are included.

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 the morning of 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 the afternoon of day one (Tuesday, 22 October) onwards.


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: €225,00
  • For participants from industry: €675,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. Check out 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 in-person at the eScience Center, Science Park 402, Amsterdam.

On Sale 24 Sep 2024 at 10:00