Summary and Setup

This short course teaches tools and practices for producing and sharing quality, sustainable and FAIR (Findable, Accessible, Interoperable and Reusable) research software to support open and reproducible research. The course can be delivered over 2 full or 4 half days.

Target audience


  • Post-graduate students, early career researchers or junior Research Software Engineers (RSEs) who are starting their research or software projects, have foundational knowledge of Python, version control and using software tools from command line shell, and want to develop software to support their research using established best practices
  • Researchers or scientists who had foundational software training before but wish to refresh, reinforce or improve their skills and practices in the wider context of FAIR scientific practice and sharing and writing software for open and reproducible research

Check out a few example learner profiles, to see if this course is a right fit for you.

Prerequisite

Prerequisites

Foundational knowledge of the following is required to be able to understand code examples used in the course:

  • Python used to write scientific code
  • Version control with Git
  • Working in a command line interface (shell)

Attending a Software Carpentry workshop or a similar course will help you gain the skills and experience needed.

Please also make sure you have all the required software installed before attending this course.

Learning objectives


After attending this training, you will be able to:

  • Explain key principles of open and reproducible research and their implications for research software development.
  • Analyse software for maintainability, reproducibility and reuse, identifying risks and opportunities for improvement.
  • Apply professional software development workflows for version control, reproducible environment management and collaboration.
  • Design modular and extensible software to support reuse and scalable development.
  • Design and implement testing, documentation and quality assurance practices to support correct and reusable research software.
  • Evaluate software projects for openness, sustainability, reusablilty and collaborative practices.
  • Select appropriate tools and practices to support collaborative and open research software development.

Acknowledgements


This course was originally developed by the UK’s Software Sustainability Institute and funded by the UK Reproducibility Network (UKRN). See CITATION.cff for the full list of authors.

Software Setup


To go through the course material on your own or at a workshop, you will need the following accounts set up and software installed and working correctly on your system:

Please follow the installation instructions to install the above tools and set up for the course.