swcarpentry / python-novice-gapminder

Plotting and Programming in Python

Home Page:http://swcarpentry.github.io/python-novice-gapminder/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Adding Google Colab as a possible working enviroment for learners?

GuillermoFidalgo opened this issue · comments

Pros:

  • Google Colab brings a jupyter notebook style working environment with many packages installed.
  • It's free, reliable and steady (as long as your internet connection is stable).
  • No installation needed.
  • Only requires a Google account.
  • I can give my learners a fully working piece of code that they can then use to solve exercises on their own and share with others.
  • Notebooks get saved to learners' google drive.
  • Learners can (somewhat asynchronously) collaborate on the same notebook.

Cons:

  • Unlike Binder, I'm not able to give learners the data I used for the exercises unless:
    • Learners download and upload the data to their Colab session.
    • Learners run wget or curl commands inside one of the notebook cells to download the data from an openly available online site (usually download from Github or give the direct link to the zip files)
    • Use python packages like pandas.read_csv() to read in the data. Again has to be publicly available online.
  • If I decide to share pre-filled notebooks I would need to provide a badge or a link to each notebook or ask learners to download a browser extension to open them from Github.
  • Requires a Google account. (People might not want to make an account just for learning python)

P.S.
Wasn't sure which repo was most appropriate to add this as an issue.

Forgot to mention the reason for this issue.

I've noticed that we focus on learners having Anaconda distribution of python and Jupyter notebooks as the only working environment for this tutorial.
I believe Google Colab has some value especially since it's basically a ready-to-go environment with little to no setup required.

I agree with this. I often use this myself as a backup strategy for students with install problems in order to get something that just works.

I agree with you @GuillermoFidalgo that adding Google Colab as another possible working environment is a good idea. We have shifted towards Colab in some of our work with novice programmers from underrepresented communities and it has been a game changer for them in that it allows them to get going with writing code without the barriers of needing to set up JupyterLab ahead of time.

One recommendation would be to add some text about Google Colab as an alternative to JupyterLab in the 'Setup' or 'Running & Quitting' episodes of the Python Plotting & Programming Lesson.

I'm going to add support to the suggestion to add documentation for Google CoLab or similar. Inevitably at least one student is unable to get a successful install in time and we have to direct them to Google CoLab.

Imho, colab is ok as a backup option, and should/could be mentioned as an alternative to use in case of emergency (ie. when the workshop has already started and the learner has a broken environment).

However, generally, the Carpentries policy is that learners should leave the workshop and be able to immediately apply what they learned, at home or in their work. So ideally I think Colab should not be encouraged as a default option, precisely because it's not easy to install python, jupyter, and all, and the workshop might be the only chance learners have to get support for that.

This is an interesting conversation - we recently were involved with an online workshop where some users were unable to get the prerequisites installed before the workshop, and doing this during the workshop was also proving to be difficult so we used Google Colab and it seemed to be a useful backup. I would agree that the best scenario is to:

  • have a pre-workshop "helpdesk" drop-in session if possible to try and get installation issues resolved before the first day
  • suggest Colab as a "last resort" if there are users having local issues due to personal hardware or typical difficulties with assisting learners with complex install problems whilst a workshop is in progress

I was about to say that we could go ahead and add Colab or MyBinder as alternative solutions, but I noticed that this Carpentries blog post specifically says We recommend that Instructors wait to share this information with learners until the start of the workshop, and then only with those learners who have not successfully completed installation on their own computer.

I can see that we do not want learners to simply give up installing and rely on online options. So either we add specific phrasing that discourages learners, or we only add it to the instructors' notes.