Jupyter Notebooks are terrific and highly interactive tools that are extremely popular for both publishing data science results and for teaching concepts.
Udacity uses Jupyter extensively, particularly for teaching machine learning and data science.
We love Jupyter so much, in fact, that Udacity engineers have developed a set of enhancements for Jupyter called, “Graffiti”. Graffiti allows Udacity instructors to record screencasts, mouseovers, and audio walkthroughs of code. Those features get embedded directly into our Jupyter notebooks.
In Udacity’s C++ Nanodegree Program, we use Graffiti to add terminals to Jupyter notebooks, so that we can compile, run, and debug C++ programs from within Jupyter Notebooks. It’s really pretty neat.
My Udacity colleague, Will Kessler, has written a blog post about Graffiti and how it enhances Jupyter Notebooks to improve the learning experience.
Also: Udacity has released Graffiti as an open-source project!