@@ -10,168 +10,17 @@ Research Coding Club at the University of York is an informal group for people
1010who work with research software. We offer a modular training programme to
1111support researchers at any level in developing their software development skills
1212and applying the [ FAIR (Findable Accessible, Interoperable, Reusable)] [ fair ]
13- principles and open research practices to their research software and data.
13+ principles and open research practices to their research software and data.
14+ See the [ Course page] ( /course/ ) for more information.
1415
1516We welcome everyone working with research software, from undergraduates to
1617professors, from beginners to experts, and from people who create analysis
1718scripts on their laptops to those who run first principles modelling on
1819supercomputers.
1920
20- Research Coding Club runs a training programme, where you can learn more about a
21- range of skills, and code clinics, where you can get help with your own research
22- software.
23-
24- # Research Coding Course
25-
26- Over the years we have developed extensive training materials and delivered
27- hands-on tutorials and seminars to hundreds of researchers on everything from
28- testing your code to how CPUs work. This year, we're building on the University
29- of Sheffield's excellent [ FAIR²4RS] [ fair24rs ] course to deliver a training
30- programme that will teach you a whole range of skills:
31-
32- (all dates to be confirmed!)
33-
34- - Better Software for Better Research: Introduction to the Research Coding
35- Course, Wednesday 22nd October 2025
36- - Software lifecycle planning, <span style =" color : #ff0000 " >Wednesday 5th</span > November 2025
37- - Version control:
38- - Introduction to Git and GitHub, <span style =" color : #ff0000 " >Wednesday
39- 19th</span > November 2025; Repeated <span style =" color : #ff0000 " >Wednesday 21th</span > January 2026
40- - Git collaboration, <span style =" color : #ff0000 " >Wednesday 4th</span > February 2025
41- - Software design, <span style =" color : #ff0000 " >Wednesday 3rd</span > December 2024
42- - Testing and Continuous Integration, <span style =" color : #ff0000 " >Wednesday 18th</span > February 2025
43- - Documentation, <span style =" color : #ff0000 " >Wednesday 4th</span > March 2025
44- - Reproducible computational environments, <span style =" color : #ff0000 " >Wednesday 18th</span > March 2025
45- - Packaging, <span style =" color : #ff0000 " >Wednesday 1st</span > April 2025
46- - Publishing a software paper in JOSS, <span style =" color : #ff0000 " >Wednesday 16th</span > April 2025
47-
48- ### Better software for better research: Introduction to the FAIR training programme
49-
50- Wednesday 22nd October 2025, 2pm, online
51-
52- In this introductory session we will try to understand what the FAIR principles
53- are and why they have emerged. We will then introduce some actions on how to
54- apply them to software and present a global review of the training programme.
55-
56- ### Software lifecycle planning
57-
58- <span style =" color : #ff0000 " >Wednesday 5th</span > November 2025
59-
60- When you start writing software it is often very useful to think about the
61- development process and how you will make your software sustainable in the long
62- term. In this module we will introduce important aspects of software development
63- in research: software lifecyle, management plan, licences and
64- dissemination. This module should allow you to ask yourself the right questions
65- when starting a research software project.
66-
67- ### Version control
68- The version control module has two distinct training sessions: one for beginners and one for more advanced users.
69-
70- #### Introduction to Git and GitHub
71-
72- <span style =" color : #ff0000 " >Wednesday 19th</span > November 2025, 2pm, hands-on
73- in-person<br >
74- Repeated <span style =" color : #ff0000 " >Wednesday 21th</span > January 2026, 2pm, hands-on
75- in-person
76-
77- If you’ve never heard of or used version control and Git before this is the
78- course for you. We start by introducing version control and exploring how it can
79- be beneficial to researchers, then we introduce some useful tools and get
80- started with some basic workflow using these tools. We build on those
81- foundations with collaborative exercises that introduce key concepts such as
82- forks, pull requests and branches and give you the chance to get some hands-on
83- experience with using version control in a research setting.
84-
85- #### Git collaboration
86- This course aims to help you develop a deeper understanding of how Git works to
87- facilitate collaboration. It builds on the foundations laid by the Git beginners
88- course. The core idea around the course is that by improving your understanding
89- of working with branches and how to make your commits tidier and neater it makes
90- it easier to understand pull requests and Git history which in turn makes it
91- easier to collaborate and work on code with others (including your future
92- self!).
93-
94-
95- ### Software design
96- <span style =" color : #ff0000 " >Wednesday 3rd</span > December 2024, in person.
97-
98- The way you write your code will have a massive impact on how easy it is to
99- maintain. During this course we will learn how to create maintainable, readable
100- and reusable code. Using examples and exercises, we will see that creating high
101- quality code is actually quite straightforward when you understand how to do it
102- and what tools are available to make your life easier.
103-
104- ### Testing and Continuous Integration
105- <span style =" color : #ff0000 " >Wednesday 18th</span > February 2025, in person.
106-
107- This course aims to equip researchers with the skills to write effective tests
108- and ensure the quality and reliability of their research software. No prior
109- testing experience is required! We’ll guide you through the fundamentals of
110- software testing using Python’s Pytest framework, a powerful and
111- beginner-friendly tool. You’ll also learn how to integrate automated testing
112- into your development workflow using continuous integration (CI). CI streamlines
113- your process by automatically running tests with every code change, catching
114- bugs early and saving you time.
115-
116- ### Documentation
117- <span style =" color : #ff0000 " >Wednesday 4th</span > March 2025, in person.
118-
119- Well-documented software promotes reproducibility, maintainability, and
120- increased research impact through wider adoption and citation. This course
121- teaches researchers how to document their software effectively, making it
122- accessible and understandable to others. It covers topics such as writing
123- readable code and usage instructions.
124-
125- ### Reproducible computational environments
126- <span style =" color : #ff0000 " >Wednesday 18th</span > March 2025, in person.
127-
128- Ensuring that others are able to take your code, run it, and are able to produce
129- the same (or equivalent) results is one of the key tenets of FAIR and
130- reproducible research software. This course will provide you with an overview of
131- different ways to make your code reproducible and then focus on virtual
132- environments as a specific tool for computational reproducibility.
133-
134- ### Packaging
135- <span style =" color : #ff0000 " >Wednesday 1st</span > April 2025, in person.
136-
137- Packaging your software is one of the important steps in a software project to
138- make it both findable and accessible. This course will provide you with an
139- understanding of why and when packaging is useful, what different standards
140- exist to package Python and R projects and take you through each step of the
141- packaging process.
142-
143- ### Publishing a software paper in JOSS
144- <span style =" color : #ff0000 " >Wednesday 16th</span > April 2025, hybrid.
145-
146- Did you know that you can actually publish a paper about your software? This is
147- an ideal way to get recognition (and citation) for the software you have spent
148- countless hours creating. In this course we will walk you through an example of
149- submission in the Journal of Open Source Software. We will make an example
150- software submission to the journal, and thanks to the collaboration of the
151- Editor in Chief of JOSS (Arfon Smith), we will look at how the review process is
152- done.
153-
154- ## Prerequisites
155- Each session will have some individual prerequisites. Some experience with
156- developing research software or scripts, for example in Python or R, might be
157- needed. Please refer to the individual course details to know what they are.
158-
159- ## Learning outcomes
160- After completing this modular programme, participants should be able to:
161-
162- - Understand the FAIR principles and describe how they apply to research software
163- - Explain how applying FAIR principles to research software can support open research goals such as transparency, reproducibility and reusability
164- - Identify actions that can be taken at different stages of the research lifecycle to enhance the FAIRness of their research software outputs
165- - Develop a plan addressing the intended scope, impact and lifespan of their research software
166- - Describe different types of software licence and discuss their potential implications for reuse of research software, including commercialisation
167- - Apply best practices for scientific software development including design, version control, testing, continuous integration and documentation
168- - Associate their research software with a unique and persistent identifier and use metadata to enhance its findability, accessibility and reusability
169- - Identify repositories that provide long-term persistent storage for research software
170- - Apply approaches such as packaging and containers to enhance the reusability and reproducibility of research software.
171-
17221# Code Clinic
17322
174- We also offer a service where you can discuss problems / ideas / anything around
23+ We also offer a Code Clinics where you can discuss problems / ideas / anything around
17524the topic of research software. We have a bunch of experts in a wide variety of
17625technical subjects and research disciplines. We are currently refactoring how we
17726run this service, and will announce details shortly!
0 commit comments