With the global pandemic lose on the world, and with most of the kids indoors and remotely schooled, cracks in education systems have started to show on all sides. And this has particularly been true for the education of kids in computer sciences. Here in Croatia not until the 7th grade of elementary school do kids start to code, and the way they're doing it is not helping anything.
So, what is Google Colab?
Google Colaboratory allows you to write and execute Python in your browser, with zero configuration required, access to GPU that can be used for neural network programming., and easy sharing and storage using Google Drive. Google Colab is basically a google hosted Jupyter notebook service. Now, what is Jupyter?
The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text.
In essence, it’s an interactive textbook where every line of code can be executed and results seen within the context. No more reading and reentering the code to see what it does, the code is part of the book.
Eric Matthes writes on his blog peak5390 about using Jupyter for teaching python that as a teacher he found that it was a perfect tool for creating lessons. He would write a few notes about a topic, then write a small program to illustrate how to implement the topic in code and share it with his students.
Check out his blog, it’s a quick read and offers some basic tips and workflows for using it in class. He also provides a collection of IPython Notebooks for teaching Python.
Here is a list of additional sources for Jupyter notebooks about Python. You can view them directly from GitHub but they will load in view mode only. To view them in Google Colab you need to download them and reupload them to Colab. Or, when selecting to Open a notebook in Colab select Github and search there or enter the URL of the GitHub repository. To enable notebook interactivity press Connect in the upper right corner and that is it. Now you can play any cell containing code or all code in the notebook at once.
A gallery of interesting Jupyter Notebooks is maintained by Jupyter project. It is curated and contains a lot of links to various notebooks that cover a wide range of topics. It is somewhat unwieldy and at first site hard to understand as notebooks are written in a wide range of styles and folder structures.
Numerical computing is fun is a basic starter book for programming in python geared toward younger generations of aspiring computer scientists and a good example of basic notebooks.
As much as this series is to educate aspiring computer programmers and data scientists of all ages and all backgrounds, it is also a reminder to myself. After playing with computers and numbers for nearly 4 decades, I've also made this to keep in mind how to have fun with computers and maths.
Python Lectures are more detailed guides to Python usage at the University level of mathematics.
Python Data Science Handbook repository contains complete code that can be found in O'Reilly's published book by Jake VanderPlas. It is not a beginner’s guide but a researcher’s handbook about how to sort out large amounts of data and come to a single conclusion.
Python for Developers as the name suggests is a notebook meant for students who have mastered the basics and want to learn more, like creating user interfaces, computer graphics, internet applications, and distributed systems.
Introduction to Python for Computational Science and Engineering is another full book written in notebook form and contains a lot of information. It is not meant for young students to find its structure a little overwhelming, but for older and more inquisitive students, it is a complete overview of Python’s ability.
Algorithms in Python is a collection of notebooks that deal with various popular algorithms but are written in Python. Various algorithms for sorting, searching, data structures, and others can be played with these notebooks.
Code Katas - tricky algorithms and data structures are notebooks containing common problems used in computer science classes or even competitions. It consists of two notebooks, one is with problems and the other is with solutions. The notebook with problems can be edited and results seen immediately.
Extended Introduction to Computer Science with Python is an extended introduction to Python and covers in-depth Python. Meant for undergraduate students.