Introduction - How it all connects

Instructor note

  • 10 min teaching/discussion

  • 0 min exercises


A person showing another person what steps to take to make their data research reproducible. There is a path with several steps- Here is my data - Here are my tools - Here is my code - Here are my results

[The Turing Way project illustration by Scriberia. Used under a CC-BY 4.0 licence. DOI: https://zenodo.org/records/13882307]

This workshop is all about reproducibility - from a computational perspective

“Here is my code”

-> Version control with git with focus on collaboration -> Social coding: What can you do to get credit for your code and to allow reuse -> Documentation: How to let others or future you know about your thoughts and how to use your code -> Jupyter Notebooks: A tool to write and share executable notebooks and data visualization -> Automated testing: Preventing yourself and others from breaking your functioning code -> Modular code development: Making reusing parts of your code easier

“Here are my tools”

-> This lesson on general Reproducibility: Preparing code to be usable by you and others in the future

This includes organizing your projects on your own computer and recording your computational steps, dependencies and computing environment.

We will also mention a few tools and platforms for sharing data (“Here is my data”) and research outputs(“Here are my results”), but they are not the focus of this workshop.

Small steps towards reproducible research

If this is all new to you, it may feel quite overwhelming. Our recommendation: Focus on “good enough” instead of perfect: To start, pick one topic that seems reasonable to implement for your current project. Something that helps YOU right now. Some things you may have to implement due to requirements from your funders or the journal where you want to publish your research. Use their requirements as a checklist and find tools that feel comfortable for you. A great way to see what are the really important things to implement, meet with a colleague, exchange codes and try to run each others code. Every question your colleague has to ask from you about your code gives a hint on where you may need to improve your documentation. Keeping a “log book” while working on your own code also serves as a great basis for making your code more reproducible. Can you use any of the tools and techniques learned in this workshop to share parts of your log book with others to help them run your code?