Introduction and target audience
Research Coding Club at the University of York is an informal group for people who work with research software. We offer a modular training programme to support researchers at any level in developing their software development skills and applying the FAIR (Findable Accessible, Interoperable, Reusable) principles and open research practices to their research software and data.
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.
Research Coding Club runs a training programme, where you can learn more about a range of skills, and code clinics, where you can get help with your own research software.
Research Coding Course
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:
(all dates to be confirmed!)
- Better Software for Better Research: Introduction to the Research Coding Course, Wednesday 22nd October 2025
- Software lifecycle planning, Wednesday 5th November 2025
- Version control:
- Introduction to Git and GitHub, Wednesday 19th November 2025; Repeated Wednesday 21th January 2026
- Git collaboration, Wednesday 4th February 2025
- Software design, Wednesday 3rd December 2024
- Testing and Continuous Integration, Wednesday 18th February 2025
- Documentation, Wednesday 4th March 2025
- Reproducible computational environments, Wednesday 18th March 2025
- Packaging, Wednesday 1st April 2025
- Publishing a software paper in JOSS, Wednesday 16th April 2025
Better software for better research: Introduction to the FAIR training programme
Wednesday 22nd October 2025, 2pm, online
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
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, hands-on
in-person
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
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 2024, 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 2025, 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 2025, 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 2025, 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 2025, 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 2025, 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.
Prerequisites
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.
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.
Code Clinic
We also offer a service where you can discuss problems / ideas / anything around the topic of research software. We have a bunch of experts in a wide variety of technical subjects and research disciplines. We are currently refactoring how we run this service, and will announce details shortly!
Contact us
There’s a few ways you can get in contact with us:
-
To get more information on Research Coding Club, you can email us.
-
Subscribe to our mailing list (you will need to sign into your University of York account) to get updates on upcoming meetings.
-
We also have a Slack channel on the University of York Slack workspace, where you can drop in any time to get help and advice. This is currently only available to staff and research postgraduate students.
Finally, we have a Google Calendar that contains information about our events:
All content (excluding logos or where explicitly stated) licensed under the
CC BY-SA 4.0
license. Some material taken from [FAIR²4RS][fair24rs] under CC-BY-SA 4.0.