MADE4MADE4Manufacturing Centre for Doctoral Training,
Data science and RSE module ,
October 2025
You can follow the slides on your own laptop ➡️➡️
Slides are available freely on github.
Interrupt me whenever you want.
Every blue text is a hyperlink
Name : Romain Thomas
Role : Head of Research Software Engineering
Previously : Staff Astronomer and Software Project manager at the Very Large Telescope (Chile)
Released/Published a few modules/software:
Research Software Engineering
The Research Software Engineering team is composed of 13 members and collaborates with researchers across the University in building research software. Areas of expertise within the group include: general software development, code optimisation and performance, reproducibility, GPU computing and Deep Learning, High Performance Computing, training, etc…
Data Analytics Service
The Data Analytics Service (IT Services) supports research excellence at the University of Sheffield by bridging technical and analytical gaps through consultation, delivering training, and long-term collaboration with research teams. DAS supports researchers with reproducible data analysis, data visualisation, data engineering, machine learning, statistics, big data, research software, web design, and much more.
Library’s Scholarly Communications
The Library’s Scholarly Communications Team provides specialist services to support researchers at the University of Sheffield. They offer guidance on making your research outputs open access, and give support on good practice in research data management, copyright and licensing as well as open research more broadly.
“The succession of researchers is comparable to a single person who learns indefinitely.
Pascal, Pensee, French Mathematician, Physicist, inventor, philosopher and theologian [1623-1662]
“Knowledge is humankind’s most precious treasure. Everything that we accomplished has been done due to the capacity to create a transmissible heritage, which spares each new generation the task of starting from scratch.” B. Sirbey, le grand homme qui apprend.
If we are doing the research we are doing today, it is thanks to the work of previous generations that created the knowledge that we are using now.
The Turing Way project illustration by Scriberia. Used under a CC-BY 4.0 licence. DOI: 10.5281/zenodo.3332807
The Turing Way project illustration by Scriberia. Used under a CC-BY 4.0 licence. DOI: 10.5281/zenodo.3332807
“Source code files, algorithms, scripts, computational workflows and executables that were created during the research process or for a research purpose.”
Barker et al. Scientific Data 9:622 (2022) “Introducing the FAIR Principles for research software”
The Turing Way project illustration by Scriberia. Used under a CC-BY 4.0 licence. DOI: 10.5281/zenodo.3332807
A guideline for those wishing to enhance the reusability of their data holdings
–Wilkinson et al. (2016)–
“Many of the FAIR Guiding Principles can be directly applied to research software by treating software and data as similar digital research objects. However, specific characteristics of software — such as its executability, composite nature, and continuous evolution and versioning — make it necessary to revise and extend the principles.”
Chue Hong, Neil P. et al, FAIR Principles for Research Software (FAIR4RS Principles)
Findable: Software, and its associated metadata, is easy for both humans and machines to find
Accessible: Software, and its metadata, is retrievable via standardised protocols
Interoperable: Software interoperates with other software by exchanging data and/or metadata, and/or through interaction via application programming interfaces (APIs), described through standards.
Reusable: Software is both usable (can be executed) and reusable (can be understood, modified, built upon, or incorporated into other software)
‘‘We aspire to open research culture that values a diverse range of contributions and adheres to the FAIR principles to enable the results of our research to be of maximum benefit to society (findable, accessible, interoperable and reusable), whilst also respecting circumstances that limit data sharing (for example, due to issues of privacy, non-consent, contractual agreements, legislation or practicality).’’
University of Sheffield, Statement on Open Research
‘‘All researchers, including postgraduate research students, have a personal responsibility to manage effectively the data they create….. All researchers are expected to document research data and software in line with the FAIR principles…..’’
University of Sheffield, Policy on good research and innovation practices
A little poem from A beginner’s guide to writing documentation:
A little poem from A beginner’s guide to writing documentation:
In practice, Github can host documentation as website (and it is very easy to do!) ➡️➡️
You need to tell people how they can re-use your code.
The licence must be made clear in the code repository and in the documentation.
If people are using your software you should get credit for it.
➡️ state how you want to be credited. You can add it in the documentation and/or create a citation.cff file that you can add with your code (tools. are available to generate them)
Examples:
In order to ensure that others can access and download your code, and that this access remains permanent over time, you should deposit your code in a repository. Two types:
Choose what makes more sense for you project!
In order to ensure that others can access and download your code, and that this access remains permanent over time, you should deposit your code in a repository. Two types:
Choose what makes more sense for you project!
Numerous repositories give your content a DOI [Digital Object Identifier] It means it can be cited in publication and other communications in order to open up your research to others and invite collaboration, as well as ensuring a constant link to your code.
You can find a list of potential journals here
Do you feel that you have received sufficient training to develop reliable software?
Bob Turner & Paul Richmond, UoS, RSE team, github.com/RSE-Sheffield/sssurvey.
Who: R Thomas
When/Length: After this talk today!
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 management plan, licences and dissemination. This module should allow you to ask yourself the right questions when starting a research software project.
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.
Who: Martin Dyer, Neil Shephard
When/Length: 24/11 & 01/12
The way you write your code will have a massive impact on how easy it is to maintain in the long run. This course on Code Design introduces essential principles and best practices for writing clean and maintainable code. We will learn how we can write clean code, adhering to naming conventions, commenting, and following PEP 8 guidelines. We will then explore some fundamental principles such as DRY, KISS or YAGNI that are important to keep in mind when writing new code and see how we can spend less time touching the code by introducing configuration files and command line interface.
Who: Joe Heffer
When/Length: 19/2
Abstract:
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.
Does your code work? Are you sure? How do you ensure that it keeps working when you change it? Manually verifying is slow and tedious. Why not automate it? Software testing checks that your code works for you, and when it breaks, it can show you exactly where it broke, without you having to trawl through hundreds of lines of code manually.This course aims to provide you with the tools you need to start automatically ensuring the reliability of your code.
Who: Dan Brady
When/Length: 30/4
Abstract:
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.
Contacts:
References
* D. Wilby Lunchbyte talk on the FAIR principles
* T. James, FAIR for research software, Talk OpenFest 2024
* The Turing Way
* B. Sirvey Le grand homme qui apprend
* Chue Hong, Neil P. et al, FAIR principles for Research Software
Access to the slides: here - Source Github repository