Teaching Python

We're two middle school teachers learning and teaching Python

RESOLVED - RIP Google Colab in Education

RESOLVED - Update as of November 2021

Google has fixed this issue and allowed Google Colab to be added to Google Workspaces for Education. See their announcement on Twitter, as well as the support article for enabling Colab in your organization.

I have to say that I was impressed with the speed at which the Colab team worked to resolve this issue. You can see the thread on the GitHub issue with lots of engagement from the team.

I am leaving the rest of the article in place with the alternatives to Colab in case you can't use it in your classroom.

Huge thanks to the Colab team for fixing this and keeping this tool in classrooms for learners and teachers!

Sean


One of my favorite apps that I discovered when I became a computer science teacher was Google Colab. Since my students were already very familiar with Google Docs, the concept of a Jupyter notebook within the Google Drive ecosystem was a very natural step for all of us. Students preferred the easy to use interface and we even started creating most of our class assignments using notebooks.

But then a few weeks ago, it all came to a grinding halt.

What's happened

Starting in September 2021, students in K-12 schools began receiving warnings that their access to Google Colab was denied. Increasingly frustrating was that the issue was inconsistent across student accounts. One student could be happily coding away, while the student sitting next to them was unable to access their notebooks. At our school, our technology admins could see that Google Colab was enabled as a marketplace app for all students.

After opening a GitHub issue on the Google Colab project, representatives for Google clarified that access to Colab was disabled starting on September 1 for students marked as being under the age of 18.

From cperry-goog:

We were impacted by the recent change which prohibits access for Education users under 18 to services without an on/off control in Workspace: https://support.google.com/a/answer/10651918?hl=en

We are working to improve access to Colab for Education users in the long run, though I cannot give solid timelines at this time, I am prioritizing this work. For the time being, note that the access policy does not apply to accounts not administered by institutions. As a workaround to allow students to access notebooks, you could also consider using one of our related products, Kaggle Notebooks: https://www.kaggle.com/code

Based on this information, it appears that Google for Education is driving the prioritization of Google Apps and Services that have the correct on/off control in Workspace.

Further, according to this article from TechCrunch, the push to restrict access for Google Workspace for Education students under the age of 18 is part of a broader push to tighten access for minors.

How we were using it

It may not seem like a big deal since there are so many alternatives to code in Python, but Colab had quickly become a core part of our lesson delivery, especially during the COVID-19 pandemic.

For example, a typical week on my computer science classroom might include an interactive coding session where we would teach concepts, a "choice board" homework assignment where students would complete various tasks, and a "class challenge" where the students would have a limited amount of time to figure out how to fix a piece of broken code or solve a coding puzzle.

Each of these assignments worked well in the Colab environment.

  • Interactive coding sessions could be started in a matter of minutes without any installations or dependencies
  • Assignments could be created in Colab and students could make a copy of the assignment and complete their portions either as text for answers to prompts or code cells for their coding solutions
  • Class challenges were easy to standardize knowing that dependencies were met and students could easily upload a screenshot of their final code into our LMS

Alternatives to Colab

As teachers, we've explored a variety of different tools for lesson delivery and coding environments. There are a wide variety of alternatives to Colab available depending on your needs.

Kaggle

kaggle.com

  • Cost: Free tiers available
  • Ease of Access: Easy to start (see caution below about privacy policy)
  • Educational Institution offering: None at this time
  • Control: Owned by Google

As cperry-goog mentioned in his response to the GitHub issue, Kaggle is another Jupyter-based coding environment owned by Google. As noted in the response, Kaggle's privacy policy strictly prohibits the use of their services for students under the age of 13 and requires verifiable parental consent for students between the ages of 13 and 17.

JupyterHub

jupyter.org/hub

  • Cost: Free, requires server
  • Ease of Access: More challenging technical setup and configuration
  • Educational Institution offering: Open-source, none
  • Control: Open-source, managed by institution

Another option is to set up your own JupyterHub server. While this gives you full control over the server environment and configuration, this can be daunting for your average K-12 computer science teacher. Additionally challenging is the coordination with your school or district's technology department to ensure security and policy compliance. But if you can overcome these challenges, there are quite a few third party packages and extensions to Jupyter like NBGrader that allow you to automate parts of your teaching process.

Replit

replit.com

  • Cost: starts at $35/mo per teacher or $750/yr for K-12 institutions
  • Ease of Access: Simple sign up, web-based
  • Educational Institution offering: Replit Teams for Education
  • Control: Run by Replit

This web-based coding environment continues to grow with features. Students can code in multiplayer mode for realtime collaboration, complete assignments using automated test code for grading, and even use graphics packages like Turtle in the browser. Replit runs virtual environments that act more like remote IDEs rather than Jupyter notebooks. While environments can be downloaded, shared, and even committed to Github, they cannot be exported to ipynb format if you require that kind of portability.

Mu Editor / Thonny / IDLE

codewith.mu
thonny.org
IDLE

  • Cost: Free/open-source
  • Ease of Access: Download & install
  • Educational Institution offering: N/A
  • Control: Locally installed, open-source

Of course, you could just forget all this silly web-based Python nonsense and just write and run local Python code. There are several great beginner-friendly Python editors - my favorite is Mu. The downside is that they require more effort to download and install, but they run locally and fast. Once you outgrow them, you'll start looking at more advanced IDEs like PyCharm or VS Code.

VS Code Notebooks

code.visualstudio.com

  • Cost: Free
  • Ease of Access: Advanced setup of multiple programs and packages
  • Educational Institution offering: N/A
  • Control: Locally installed

Although it's the most complex installation and setup, downloading VS Code, installing Python locally, and pip installing Jupyter will get you a pretty advanced setup. You don't have to run a JupyterHub server, everything is freely available online, and you can customize the offering as much as you need.

On the downside, you may end up in a spiral of dependency management, virtual environments, and ongoing updates that may cost you more time in the end.

Call to Action

So in the end, what can we do?

  1. Tell your Google Workspace for Education rep to bring back Colab
  2. Explore & use alternatives like Kaggle, Replit, or locally-managed servers
  3. Create workarounds

Some domain admins have tried creating Organizational Units that mark students as over 18 while they are taking the computer science course. Other educators have asked students to use or set up personal Google Accounts for Colab.

Unfortunately, educators in the K-12 space are stuck waiting for Google to restore access to Colab. And students who spent hours or days creating code in Colab will have to wait for Google to give them access back to their own code.

So now we wait...

-- Sean