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:

  • Describe the principles of open and repoducible research and apply those principles to make a software development project more reproducible.
  • Version control your software project with git and manage an open source project in GitHub
  • Create and use reproducible virtual environments for software development projects
  • Write or edit code based on coding best practices - using functions, informative variable names, existing packages, docstrings, etc.
  • Refector code into functions, including a main function, to create more modular and re-usable code
  • Write code to take arguments from the command line for improved flexiblity and reuse
  • Write and run tests using a testing suite library
  • Create automated documentation for code to enable use by others
  • Manage an open source or other collaborative software projects (including publishing and licensing)

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 software installed and working correctly on your system:

You will also need to create a GitHub account if you do not have one already, make sure that you are able to log into it, and download the Spacewalks data and analysis code which we will be used for exercises in the course.

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