Bookdown contest submission: Creating a course companion website with Bookdown

Zach Bogart, Joyce Robbins
@zachbogart @jtr13

This resource is called and it's designed as an accompaniment to a course taught at Columbia University called "Exploratory Data Analysis and Visualization", or EDAV for short. We wanted to provide a resource directly tailored to new incoming students to the field of data science that allowed them to jump in and learn by example. Using bookdown and GitHub, we were able to create an engaging resource that students can easily navigate as well as directly contribute to. This setup also allowed material that was reused between semesters (such as common questions or problems students run into) to be taken out of the lectures, thus streamlining the teaching process for the professor. Although we only launched the project this month and there is much more material to be added, we already have received positive feedback from students.

We think that can serve as a template for other faculty interested in creating custom resources for their own courses. This setup allows you to make a resource that will improve students' interaction with the material, foster a vibrant community around your course material through student contributions, and reduce external work for the staff by offloading common material repeated across semesters. We have also included explicit pages on how you can create a similar resource of your own, regardless of your level of expertise. We hope this resource inspires you to create a bookdown resource that serves the needs of your course or project.


Help every kind of student

We put a lot of attention into making this resource as engaging as possible, while still getting the relevant course material across to students with very diverse backgrounds. To do this, we split the resource into four sections, color-coded by the type of content. This allowed different students to get the kind of help they needed easily and efficiently, everything from basic setup instructions to thorough walkthroughs to specific chart documentation to more advanced publishing resources. This way, our resource could have something for everyone, from a novice who needs help with installation to an expert who wants to publish a website or dataviz project with R.

Promote the community

Even technically-advanced students can be anxious about contributing to a project, so we tried to remove as many barriers as possible. We wanted to make it easy to contribute to so it becomes not just another resource, but their resource, something they can be a part of and give back to. Using the integration between bookdown and GitHub, we made a thorough tutorial on contributing so that anyone who wanted to add to the resource would be able to do so. We also made adding to an optional choice for a community contribution assignment in the course, to further incentivise the growth of the resource over time.

Improve workflow for professors

We use as a way to reduce the need for the professor to answer questions that come up every semester. Think of this resource as a custom FAQ page. Professors often get questions that only pertain to their specific course but they find themselves answering them over and over. Using we offload those common questions so that students and teachers can focus on the core concepts. To be clear, this type of resource will not replace other resources for scheduling, assignments, or grading; we still use CourseWorks to manage grading, due dates, and confidential student information. However, we find these tools are not the best place to store and share course content. Rather, serves as an ever-growing collection of resources, advice, and answers to address the myriad of questions that arise during the semester.

Encourage others to build new resources

We have found to be immediately beneficial for our students and we believe in sharing this setup with others so that they can create resources of their own. To that end, we have a publishing resources page that includes the resources we used to make The page also includes a basic template to get students and professors started creating similar resources, from a personal project to another course companion resource. We hope people find these resources and templates helpful and look forward to what they will create.

About the authors

Zach Bogart is completing his M.S. in Data Science at Columbia University. Zach was a student in EDAV during the Spring 2018 semester, and created as a summer Curriculum Development Assistant. He took the lead in creating the vast majority of the content, and in managing all technical aspects of the project.

Joyce Robbins is Lecturer-in-Discipline in the Department of Statistics at Columbia University. She teaches Exploratory Data Analysis and Visualization to Masters students in Data Science and Statistics programs.


Main page

Histogram page

Scatterplot page

On contributing

On getting help



  • Bookdown output to HTML linked to GitHub repo
  • Published using GitHub Pages with custom domain
  • Travis CI integration


  • Javascript code for image hover and page-up button



This course companion website looks fascinating to me! The content and instructions in the book are extremely helpful. I can't wait to see more courses notes built following your model. The huge success of Wikipedia always makes me wonder when the same thing can happen to course materials in universities, i.e., why can't all teachers build the best course notes collaboratively (via bookdown and Github)? For example, we could have built the best repo for STAT101 first, and have teachers fork and customize it according to their own teaching preferences and students' need, instead of having every single teacher work on their own materials independently year after year.

The world is flat,
but every teacher's world is a separate flat.
Isn't that sad?


Thank you @yihui! We are very excited about the project, and hope to see it grow over the course of the semester.

p.s. It looks like you have invented a 4-12-4 Haiku!

1 Like

Haha, I just didn't have time to make it 5-7-5. I still have about 20 submissions to review... :blush:

1 Like