Course introduction


Figure 1

Four cartoon images depicting two researchers at two machines which take in data and output the same landscape image in 4 different ways. These visually describe the four scenarios listed above.
The Turing Way project illustration of aspects of reproducible research by Scriberia, used under a CC-BY 4.0 licence, DOI: 10.5281/zenodo.3332807

Figure 2

Quote: Research Software includes source code files, algorithms, scripts, computational workflows and executables that were created during the research process or for a research purpose. Software components (e.g., operating systems, libraries, dependencies, packages, scripts, etc.) that are used for research but were not created during or with a clear research intent should be considered software in research and not Research Software.
Definition of “research software” from the FAIR4RS working group, image by the Netherlands eScience Center licensed under CC-BY 4.0

FAIR research software


Figure 1

FAIR represented as as a 4-dimensional spectrum with 4 axes - findable, accessible, interoperable and reusable, image by the Netherlands eScience Center licensed under CC-BY 4.0
FAIR as a 4D spectrum, image by the Netherlands eScience Center licensed under CC-BY 4.0

Figure 2

  • a JSON file (data.json) - a snippet of which is shown below - with data on extra-vehicular activities (EVAs or spacewalks) undertaken by astronauts and cosmonauts from 1965 to 2013 (data provided by NASA via its Open Data Portal) JSON data file snippet showing EVA/spacewalk data including EVA id, country, crew members, vehicle type, date of the spacewalk, duration, and purpose

  • Figure 3

  • a Python script (my code v2.py) containing some analysis. A first few lines of a Python script used as example code for the episode

  • Tools and practices for FAIR research software development


    Version control


    Figure 1

    Software development lifecycle with Git showing Git commands and flow of data between components of a Git system, including working directory, staging area, local and remote repository
    Software development lifecycle with Git

    Figure 2

    Example Diff 1
    Example Diff 1

    Figure 3

    Example Diff 2
    Example Diff 2

    Figure 4

    2 Git repositories belonging to 2 different developers linked to a central repository and one another showing two way flow of information in each link
    Git - distributed version control system, image from W3Docs (freely available)

    Figure 5

    Creating a new GitHub repository
    Creating a new GitHub repository

    Figure 6

    Naming the GitHub repository
    Naming the GitHub repository

    Figure 7

    Complete GitHub repository creation
    Complete GitHub repository creation

    Figure 8

    Copy the commands to sync the local and remote repositories
    Copy the commands to sync the local and remote repositories

    Reproducible development environment


    Code readability


    Code structure


    Code correctness


    Code documentation


    Open collaboration on code


    Figure 1

    DOI

    Wrap-up


    Figure 1

    An image of a Chinese proverb "The best time to plant a tree was 20 years ago. The second best time is now
    An image of a Chinese proverb “The best time to plant a tree was 20 years ago. The second best time is now” by CCNULL, used under a CC-BY 2.0 licence

    Figure 2

    Help the team principles of writing FAIR, secure and maintainable code
    Helping your team, image from RSECon2024, used under CC BY 4.0

    Figure 3

    Help the peers principles of making your work reproducible, inclusive and credit everyone involved
    Helping your peers, image from RSECon2024, used under CC BY 4.0

    Figure 4

    Help the world principles of being responsible, open and global, and humanist when developing research software
    Helping the world, image from RSECon2024, used under CC BY 4.0