Best Practices for Writing Reproducible Code

Ensuring your research is reproducible can be a difficult task. Scripting your analysis is a start, but this in and of itself is no guarantee that you, or someone else, can faithfully repeat your work at a later stage. In this workshop, we will help you not only to make your work reproducible, but also to increase the efficiency of your workflow. We do this by teaching you a few good programming habits: how to set up a good project structure, how to code and comment well, and how to document your code so that it can be used by others. We will furthermore introduce you to Git and GitHub, which are essential tools in managing and publishing code. Reproducibility requires extra effort, but we will focus on teaching you skills that will save you much more time in the long run than they cost to implement.

In this hands-on workshop, you will learn to become a better programmer. We will take you through a project from research question to published code in a single (admittedly intense, but fun!) day. At the end of this day you will know: 

  • How to set up and use an efficient project structure;
  • How to use Git for version control, and GitHub to publish your code; 
  • How to write robust code that allows and invites re-use; 
  • How to document your code well; 
  • How to license and release your code to ensure maximum reusability.   

Prior knowledge

We require participants to have at least a basic understanding of a programming language, and preferably already have some code to work with (though this is not required). The course content accommodates most languages, but insofar as we give examples of specific tools, we will cater to R and Python users. If you are unsure if the language you use will fit our course, please get in touch with Neha Moopen before registration.