Jupyter is Now the Best Tool for Education
The top courses on Machine Learning and how you can create your own, using Jupyter Notebooks.

Jupyter Notebooks are great for experimenting with new ideas, bringing prototypes to life, and understanding concepts working interactively. Moreover, JupyterLab aims to become a full-fledged IDE in its own style, looking like no other tool in the area.
In recent years, Jupyter Notebooks have also had a significant impact on education. Notebooks replace handouts and slide decks, while new extensions facilitate the process of teaching and grading students at any level.
This story explores how Notebooks affect education, how the most charismatic educators apply these ideas in practice, and the best extensions available to aid teachers.
Learning Rate is a newsletter for those who are curious about the world of AI and MLOps. You’ll hear from me on the first Saturday of every month with updates and thoughts on the latest AI news and articles. Subscribe here!
Courses and Books
Notebooks are replacing handouts and slide decks more and more every year. Instead of going through an endless slide show, setting your audience in a passive state, educators now create Notebook walkthrough videos.
The idea is that students can work on the material synchronously or study it later at their own pace. Moreover, tools like Google Colab make it super easy to create a working environment in seconds. It is like opening a book or PDF to read, but this time it is an interactive document.
Also, in my opinion, it is far better to go through a Notebook that explains a concept than read an article about it or, worse, watch a lecture on YouTube. The latter approaches are promising if you want to get a glimpse of what is going on, but Notebooks force you to understand every line you are reading. So, instead of passively watching hours of video content, look for courses that offer Notebooks that you can go through line by line and get hands-on experience on the subject.
Jeremy Howard is a pioneer in this area. He and his colleagues have created one of the most popular ML courses using only Notebooks. He, and Sylvain Gugger, have also written a book that goes hand in hand with the course, using only Jupyter Notebooks.
Another great resource is the labs by the Full Stack Deep Learning team. Packed with insightful explanations of various concepts, embedded views of tools like Weights & Biases, TensorBoard, and Gradio, and even exercises at the end of the Notebooks, the FSDL team has provided a fantastic resource for those who want to play with tools that help bring your models to production.
Last but not least, Jonathan Whitaker has created two great series that take you from the foundations of Machine Learning to building state-of-the-art generative models. You can find the first one here, while the successor of this course is expected to be out sometime in November.
As a bonus, a repository I enjoyed, but I’m not sure its authors maintain it, is the Probabilistic Programming and Bayesian Methods for Hackers. This course introduces Bayesian methods and probabilistic programming with a code-first, mathematics-second point of view—all in pure Python. If you’re interested in this topic, this is a great resource.
The Tools
Now that we’ve gone through the courses and books you can study, let’s talk about the tools. There are two categories here; the tools you use to take the classes and the tools you use to create them.
How to take the courses
First, the tool of choice to study the content can’t be anything other than Google Colab. Most GitHub repositories provide direct links to Colab, but even if they don’t, you can use Colab to open any .ipynb file pushed to GitHub in seconds.
Google colab offers GPU and TPU runtimes, and even though the resources are limited, they are more than enough to skim through a Notebook. If you plan to go local, I’d suggest using a Docker container to build an easily reproducible environment, although it’s not something I would do. When you study something, it’s crucial to get your hands dirty sooner than later. Setting up a local working environment can take a day, or even days, if you lose yourself in the rabbit hole of the GPU + Docker world.
How to create courses
Creating a course using a series of Notebooks is as easy as pushing code to GitHub. If you can do that, you can teach people about anything you like. Yes, I know that most of the examples I presented here are primarily about ML courses, but you can teach anything you want using Notebooks, even if you just write markdown. You could even blog using Notebooks, using tools that push your Notebooks directly to Medium.
However, there are two tools to take your Notebooks to another level. First, Nbgrader. The developers of the NBgrader extension make it easy for instructors to create assignments in Jupyter notebooks that include both coding exercises and responses. NBgrader also offers a user-friendly interface for swiftly grading completed assignments.






