Awesome Open Source
Awesome Open Source


Lesson synopsis:

In this session we will start by reviewing case studies of (lack of) reproducibility gone wrong. Then participants will work on two reproducibility exercises: first a simple data manipulation and analysis exercise using any software they generally work with and then the same exercise (and extensions to it) using RMarkdown in RStudio as a better alternative, highlighting how this approach makes documentation, organization, automation, and dissemination easier.


  • Recognize the problems that reproducible research helps address
  • Identify pain points in getting your analysis to be reproducible.
  • The role of documentation, sharing, automation, and organization in making your research more reproducible.
  • Introducing some tools to solve these problems, specifically R/RStudio/RMarkdown.


At the beginning of this session, participants should be able to

  • use a spreadsheet program to generate a plot
  • use a text editor (Word, Google Docs, etc.) to communicate

At the end of the session students will be able to

  • recognize the problems that reproducible research helps address
  • identify pain points in getting their analysis to be reproducible

The specific problems to be addressed in each session are as follows:

  • First half (01): motivating reproducibility
  • Second half (02): introduce R Markdown as a reproducible data analysis tool

The first half of the intro session is language agnostic. If a workshop uses programming language other than R, only intro-02 will need to be modified.


Participants install R+RStudio.

See email template.

First half (01):

See instructor notes (intro-01-instr-notes.Rmd) for details.

  • Welcome + go over schedule
  • Motivating reproducibility slides
  • Group discussion about current tools people are using for documentation / reproducibility
  • Ex 1: Motivating reproducibility

Second half (02):

See instructor notes (intro-02-instr-notes.Rmd) for details.

  • Provide RMarkdown approach to what's done in Session 1 (intro-template.Rmd)

  • Wrap up with pointing participants to the reproducibility checklist.

Data attribution

  • Gapminder data. Gapminder data is licensed CC-BY 3.0.

  • Processed and subset (population size, life expectancy, GDP per capita; only every 5 years only starting 1952, only complete records) Gapminder data as R package. The data-raw sub-directory reveals the journey from's Excel workbooks to increasingly clean and tidy data.

    • clean dataset can be located in R in the following way (after installing the package):

      pathToTsv <- system.file("gapminder.tsv", package = "gapminder")

People and credits

This lesson was first created at the 1. Reproducible Science Curriculum Hackathon. The corresponding author is Mine Çetinkaya-Rundel (@mine-cetinkaya-rundel). See the commit log for other contributors.

Please post feedback and issues with the lesson on the repository's issue tracker. For instructor questions about teaching this lesson, you can also contact the corresponding author directly.

Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Html (237,492
R (57,230
Session (14,288
English (6,854
Rstudio (3,217
Reproducibility (885
Carpentries (88
Data Carpentry (39
On Hold (20
Project Organization (4