Struggles with hosting Jupyter notebooks for teaching

Last year I changed my second-year computing teaching to Jupyter Python notebooks. I think Jupyter notebooks worked well at teaching how to do useful stuff like analyse data. The notebooks were hosted on the Micrsoft service Azure which wasn’t great but basically worked. However, not only is Azure far from perfect, it is also being binned around about week 2 of semester.

So I need an alternative. The obvious big one is Github but the way it works is distinctive, kind of rigid I think, and really not ideal for what I want. Although Github displays Jupyter notebooks really well (eg see here), if a Jupyter notebook is in one of Github’s usual repositories then it is not so obvious to a student how to download just the notebook they need that week.

In addition to its normal repositories, Github also has a kind-of mini-repository called a Gist. A Jupyter notebook in a Gist is relatively easy to download by a student (eg see the first notebook of the course here). However, for reasons that mystify me, it appears to be impossible to create a Github Gist by uploading a file such as notebook. Either I am missing something (if so comments are open below, please let me know) or Github have made an odd and annoying choice here.

Google does offer a solution. Their Colaboratory does work well. It will host Jupyter notebooks and run them online (I think you need a Google account here unfortunately) — the first notebook is here. And, in a pleasant change from Github, I can easily upload them, and students can easily download them (without a Google account, which some students will not have). They have even fixed Github’s omission and you can save a Jupyter notebook directly to a Github Gist.

So at the moment, I am planning on going with Google Colaboratory, but am open to ideas here.

1 Comment

Leave a Comment

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s