How to Build an Interactive Course

Using an open source framework created by SpaCy developer Ines Montani

Table of Contents


Hello! My name is Hayley Boyce. I work for the University of British Columbia’s Master of Data Science program as an Education Specialist. I did my undergraduate degree in Applied mathematics and I am an alumna of the Master of Data Science program.

For the last 8 months I have been working with an open source platform where you can built your own online interactive course. This course was developed by SpaCy developer Ines Montani.

Pre Requisites

  • Knowledge in GitHub

  • Familiarity with .md files

  • A chosen language of R or Python

Learning Outcomes

At the end of this seminar, you should be able to:

  1. Recognize courses that use this framework.

  2. Use resources to begin to install and create your own course.

  3. Identify the different question style you can use to test students knowledge.

  4. Recall key criteria needed to create lectures slides.

  5. Explain the structure needed for your course repository.

  6. See how it can be scaled to larger courses.

Course Options

Currently this platform is available in 2 programming languages:

Of course this platform can be used for other non programming subjects but the interactivity is limited to multiple choice questions only.

Course Examples



If you have any issues with Python setup, I recommend looking in the issue of the course-starter-python repo or even referring to her SpaCy course repo.

Setting up the Interactive Components


  • This is where you specify the repository that will be use for the binder

  • Course information and links


  • This needs to be changed on the branch you specified in the meta.json file

Build a Binder

  • Build a binder for your branch

Repository Structure

  • There are a lot of folders and files but the main ones we are going to focus on are:

  • chapters/

  • slides/

  • exercises/

  • binder/

  • static/

  • Important things I don’t have time to talk about but that are explained in the documentation:

    • theme.sass

    • src/

Demo - How to make it work

  • Making a chapter

  • Making slides

  • Making a multiple choice exercise question

  • Making a coding question (exc, solution, test)


It’s important that before doing any of the content and question making, you build a binder and change the information in the meta.json file. This is explained in the setup documentation provided in the of the course-starter repositories.

Sneak Peak: A brief look at what I’ve been working on:

  • Small customizations

  • Similar video style as Ines’s SpaCy course

  • A bit of a different repo structure

  • Use rmd and a script to produce slides -> Much easier!


Thank you!