Course Overview#

Description
Fostering a culture of open research is important to enable reproducibility of results. Scripts and code used to generate results in research studies are normally ommitted from publication, leading to several challenges in reproducibility of research. In this course we will learn how to address this when coding in Python, using literate programming and version control. We will learn how to create Jupyter Notebooks - a way to integrate your Python analyses into reports. We will also cover the importance of version control when developing code. Version control helps you write code for your research more sustainably and collaboratively, in line with best practices for open research. We will take you through the basic use of GitHub to help you store, manage, and track changes to your code and develop code collaboratively with others.

Prerequisites
To be able to follow this course, learners should have knowledge in programming in Python.

Learning Outcomes
By the end of the course, learners will be able to:

  1. explain what Jupyter Notebooks are and identify their advantages and importance in open research

  2. create Python Juypter Notebooks

  3. use Markdwon to format text in Notebooks

  4. explain what version control systems and identify their advantages and importance in open research

  5. create repositories on GitHub

  6. commit changes to files in repositories on GitHub

  7. open issues on GitHub

  8. create branches on GitHub

  9. open pull requests and merge changes into the main branch

  10. describe the GitHub flow and be able to execute it

Target audience
Designed with beginners in mind, this course caters to those who have not yet delved into Jupyter Notebooks, Git or GitHub.

Level: Intermediate

Exercises levels#

Exercises in this course are labelled with the level of difficulty of the respective exercise. These levels are designed to provide a gradual progression in difficulty, allowing learners to build on their skills and understanding as they move from one level to the next.

Level

Description

   

Level 1: Exercises in Level 1 are simple exercises designed to get you familiar with a concept or syntax.

Level 2: Exercises in Level 2 build upon the concepts introduced.

Level 3: Exercises in Level 3 are more complex and build upon concepts introduced.

Software Installation Instructions#

Please following these instructions prior to taking this course.

Acknowledgements#

Some of the content of this course was adapted from the Reproducible Research in R course (Cardona, Alexia 2019)