avatarDimitris Poulopoulos

Free AI web copilot to create summaries, insights and extended knowledge, download it at here

3569

Abstract

e of the most popular ML <a href="https://course.fast.ai/">courses</a> using only Notebooks. He, and <a href="https://sgugger.github.io/pages/about-me.html">Sylvain Gugger</a>, have also written a <a href="https://github.com/fastai/fastbook">book</a> that goes hand in hand with the course, using only Jupyter Notebooks.</p><p id="e030">Another great resource is the <a href="https://github.com/full-stack-deep-learning/fsdl-text-recognizer-2022-labs">labs</a> by the <a href="https://fullstackdeeplearning.com/course/2022/">Full Stack Deep Learning</a> team. Packed with insightful explanations of various concepts, embedded views of tools like <a href="https://wandb.ai/site">Weights & Biases</a>, <a href="https://www.tensorflow.org/tensorboard">TensorBoard</a>, and <a href="https://gradio.app/">Gradio</a>, 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.</p><p id="45fb">Last but not least, <a href="https://datasciencecastnet.home.blog/">Jonathan Whitaker</a> 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 <a href="https://github.com/johnowhitaker/aiaiart">here</a>, while the <a href="https://github.com/johnowhitaker/tglcourse">successor</a> of this course is expected to be out sometime in November.</p><p id="65f4">As a bonus, a repository I enjoyed, but I’m not sure its authors maintain it, is the Probabilistic <a href="https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers">Programming and Bayesian Methods for Hackers</a>. 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.</p><h1 id="2de7">The Tools</h1><p id="5fb0">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.</p><h2 id="cda3">How to take the courses</h2><p id="fabf">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 <code>.ipynb</code> file pushed to GitHub in seconds.</p><p id="a921">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.</p><h2 id="11d7">How to create courses</h2><p id="c8fb">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 <a href="https://github.com/dexplo/jupyter_to_medium">tools</a> that push your Notebooks directly to Medium.</p><p id="fbad">However, there ar

Options

e two tools to take your Notebooks to another level. First, <a href="https://nbgrader.readthedocs.io/en/stable/">Nbgrader</a>. 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.</p> <figure id="0348"> <div> <div> <img class="ratio" src="http://placehold.it/16x9"> <iframe class="" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F5WUm0QuJdFw%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D5WUm0QuJdFw&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F5WUm0QuJdFw%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" allowfullscreen="" frameborder="0" height="480" width="854"> </div> </div> </figure></iframe></div></div></figure><p id="2d57">Finally, if you’re targeting a younger audience, you can check out <a href="https://developers.google.com/blockly">Blockly</a>. Blockly aims to make coding more approachable for kids. It uses a block-based visual programming interface instead of traditional coding syntax. With Blockly, coding concepts like if statements, loops, and functions are represented by interlocking graphical blocks, similar to LEGOs.</p> <figure id="2a0f"> <div> <div> <img class="ratio" src="http://placehold.it/16x9"> <iframe class="" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FW9cHhdMeoyA%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DW9cHhdMeoyA&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FW9cHhdMeoyA%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" allowfullscreen="" frameborder="0" height="480" width="854"> </div> </div> </figure></iframe></div></div></figure><h1 id="18f3">Conclusion</h1><p id="9396">Jupyter Notebooks are great for experimenting with new ideas, bringing prototypes to life, and understanding concepts working interactively. These attributes make them an excellent tool for teaching complex concepts like Machine Learning.</p><p id="b219">In this story, we saw how the most charismatic educators use them to create courses and how you can, too, using great extensions like NBGrader and Blockly.</p><h1 id="8862">About the Author</h1><p id="3164">My name is <a href="https://www.dimpo.me/?utm_source=medium&amp;utm_medium=article&amp;utm_campaign=jupyter-education">Dimitris Poulopoulos</a>, and I’m a machine learning engineer working for <a href="https://www.arrikto.com/">Arrikto</a>. I have designed and implemented AI and software solutions for major clients such as the European Commission, Eurostat, IMF, the European Central Bank, OECD, and IKEA.</p><p id="84d9">If you are interested in reading more posts about Machine Learning, Deep Learning, Data Science, and DataOps, follow me on <a href="https://towardsdatascience.com/medium.com/@dpoulopoulos/follow">Medium</a>, <a href="https://www.linkedin.com/in/dpoulopoulos/">LinkedIn</a>, or <a href="https://twitter.com/james2pl">@james2pl</a> on Twitter.</p><p id="2b9a">Opinions expressed are solely my own and do not express the views or opinions of my employer.</p></article></body>

Jupyter is Now the Best Tool for Education

The top courses on Machine Learning and how you can create your own, using Jupyter Notebooks.

Teacher in the classroom — Image created by Stable Diffusion

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.

Finally, if you’re targeting a younger audience, you can check out Blockly. Blockly aims to make coding more approachable for kids. It uses a block-based visual programming interface instead of traditional coding syntax. With Blockly, coding concepts like if statements, loops, and functions are represented by interlocking graphical blocks, similar to LEGOs.

Conclusion

Jupyter Notebooks are great for experimenting with new ideas, bringing prototypes to life, and understanding concepts working interactively. These attributes make them an excellent tool for teaching complex concepts like Machine Learning.

In this story, we saw how the most charismatic educators use them to create courses and how you can, too, using great extensions like NBGrader and Blockly.

About the Author

My name is Dimitris Poulopoulos, and I’m a machine learning engineer working for Arrikto. I have designed and implemented AI and software solutions for major clients such as the European Commission, Eurostat, IMF, the European Central Bank, OECD, and IKEA.

If you are interested in reading more posts about Machine Learning, Deep Learning, Data Science, and DataOps, follow me on Medium, LinkedIn, or @james2pl on Twitter.

Opinions expressed are solely my own and do not express the views or opinions of my employer.

Technology
Artificial Intelligence
Jupyter Notebook
Machine Learning
Towards Data Science
Recommended from ReadMedium