Over the years we have developed extensive training materials and delivered hands-on tutorials and seminars to hundreds of researchers on everything from testing your code to how CPUs work. This year, we’re building on the University of Sheffield’s excellent FAIR²4RS course to deliver a training programme that will teach you a whole range of skills.

Outline of the Programme

  • Better Software for Better Research: Introduction to the Research Coding Course, Wednesday 22nd October 2025, 2pm to 3pm, online - sign up form (UoY accounts only)
  • Software lifecycle planning, Wednesday 5th November 2025, 2pm to 3pm, SLB/107 - sign up form coming soon
  • Version control:
    • Introduction to Git and GitHub, Wednesday 19th November 2025, 2pm to 4pm, LFA/015 - sign up form coming soon; Repeated Wednesday 21st January 2026
    • Git collaboration, Wednesday 4th February 2026
  • Software design, Wednesday 3rd December 2025
  • Testing and Continuous Integration, Wednesday 18th February 2026
  • Documentation, Wednesday 4th March 2026
  • Reproducible computational environments, Wednesday 18th March 2026
  • Packaging, Wednesday 1st April 2026
  • Publishing a software paper in JOSS, Wednesday 15th April 2026

(Dates after November are provisional and to be confirmed)

Target Audience and Prerequisites

We welcome everyone working with research software, from undergraduates to professors, from beginners to experts, and from people who create analysis scripts on their laptops to those who run first principles modelling on supercomputers. Each session will have some individual prerequisites. Some experience with developing research software or scripts, for example in Python or R, might be needed. Please refer to the individual course details to know what they are.

Better software for better research: Introduction to the Research Coding Course

Wednesday 22nd October 2025, 2pm to 3pm, online - sign up form (UoY accounts only)

In this introductory session we will try to understand what the FAIR principles are and why they have emerged. We will then introduce some actions on how to apply them to software and present a global review of the training programme.

Software lifecycle planning

Wednesday 5th November 2025, 2pm to 3pm, SLB/107 - sign up form coming soon

When you start writing software it is often very useful to think about the development process and how you will make your software sustainable in the long term. In this module we will introduce important aspects of software development in research: software lifecyle, management plan, licences and dissemination. This module should allow you to ask yourself the right questions when starting a research software project.

Version control

The version control module has two distinct training sessions: one for beginners and one for more advanced users.

Introduction to Git and GitHub

Wednesday 19th November 2025, 2pm to 4pm, LFA/015, hands-on in-person - sign up form coming soon
Repeated Wednesday 21th January 2026, 2pm, hands-on in-person.

If you’ve never heard of or used version control and Git before this is the course for you. We start by introducing version control and exploring how it can be beneficial to researchers, then we introduce some useful tools and get started with some basic workflow using these tools. We build on those foundations with collaborative exercises that introduce key concepts such as forks, pull requests and branches and give you the chance to get some hands-on experience with using version control in a research setting.

Git collaboration

Wednesday 4th February 2026, 2pm, hands-on in person.

This course aims to help you develop a deeper understanding of how Git works to facilitate collaboration. It builds on the foundations laid by the Git beginners course. The core idea around the course is that by improving your understanding of working with branches and how to make your commits tidier and neater it makes it easier to understand pull requests and Git history which in turn makes it easier to collaborate and work on code with others (including your future self!).

Software design

Wednesday 3rd December 2025, in person.

The way you write your code will have a massive impact on how easy it is to maintain. During this course we will learn how to create maintainable, readable and reusable code. Using examples and exercises, we will see that creating high quality code is actually quite straightforward when you understand how to do it and what tools are available to make your life easier.

Testing and Continuous Integration

Wednesday 18th February 2026, in person.

This course aims to equip researchers with the skills to write effective tests and ensure the quality and reliability of their research software. No prior testing experience is required! We’ll guide you through the fundamentals of software testing using Python’s Pytest framework, a powerful and beginner-friendly tool. You’ll also learn how to integrate automated testing into your development workflow using continuous integration (CI). CI streamlines your process by automatically running tests with every code change, catching bugs early and saving you time.

Documentation

Wednesday 4th March 2026, in person.

Well-documented software promotes reproducibility, maintainability, and increased research impact through wider adoption and citation. This course teaches researchers how to document their software effectively, making it accessible and understandable to others. It covers topics such as writing readable code and usage instructions.

Reproducible computational environments

Wednesday 18th March 2026, in person.

Ensuring that others are able to take your code, run it, and are able to produce the same (or equivalent) results is one of the key tenets of FAIR and reproducible research software. This course will provide you with an overview of different ways to make your code reproducible and then focus on virtual environments as a specific tool for computational reproducibility.

Packaging

Wednesday 1st April 2026, in person.

Packaging your software is one of the important steps in a software project to make it both findable and accessible. This course will provide you with an understanding of why and when packaging is useful, what different standards exist to package Python and R projects and take you through each step of the packaging process.

Publishing a software paper in JOSS

Wednesday 16th April 2026, hybrid.

Did you know that you can actually publish a paper about your software? This is an ideal way to get recognition (and citation) for the software you have spent countless hours creating. In this course we will walk you through an example of submission in the Journal of Open Source Software. We will make an example software submission to the journal, and thanks to the collaboration of the Editor in Chief of JOSS (Arfon Smith), we will look at how the review process is done.

Learning outcomes

After completing this modular programme, participants should be able to:

  • Understand the FAIR principles and describe how they apply to research software
  • Explain how applying FAIR principles to research software can support open research goals such as transparency, reproducibility and reusability
  • Identify actions that can be taken at different stages of the research lifecycle to enhance the FAIRness of their research software outputs
  • Develop a plan addressing the intended scope, impact and lifespan of their research software
  • Describe different types of software licence and discuss their potential implications for reuse of research software, including commercialisation
  • Apply best practices for scientific software development including design, version control, testing, continuous integration and documentation
  • Associate their research software with a unique and persistent identifier and use metadata to enhance its findability, accessibility and reusability
  • Identify repositories that provide long-term persistent storage for research software
  • Apply approaches such as packaging and containers to enhance the reusability and reproducibility of research software.

All content (excluding logos or where explicitly stated) licensed under the CC BY-SA 4.0 Creative Commons Logo CC Creative Commons Logo Person Creative Commons Logo Backwards C license.

Some material taken from FAIR²4RS under CC-BY-SA 4.0.