[IPython-dev] Jupyter + Processing for education
Doug Blank
doug.blank at gmail.com
Fri Jan 23 09:01:29 EST 2015
IPython community,
Thought you might be interested in seeing how students can use the new
Jupyterhub with a new, external kernel. This semester I am using the
language "Processing"... originally designed for artists by artists. My
colleagues have written a textbook on how to use it for teaching computer
science [1].
Here is a 5 minute video on how it looks to the student:
https://www.youtube.com/watch?v=V4TzARh-ClY
and here is a live notebook:
http://jupyter.cs.brynmawr.edu/hub/kohara/public/Untitled.ipynb
(mouse over some of the sketches)
If you know Processing, this is different from the regular Processing IDE:
* students log into the Jupyterhub system over the web
* uses the Processing-Javascript system
* each Jupyter notebook "cell" is a Processing "sketch"
* Shift+Tab shows Processing on-line help
* Tab will do completion (completes with Processing variables and functions)
* Rendered notebooks (eg, without a live computational engine/kernel behind
them) will still run
* Slight bit of interpreter feel: can execute draw/setup functions
interactively
* uses MetaKernel magics [2]
I like the setup for education because:
* I can control/configure the environment exactly (what buttons are
available, etc). I have a few nbextensions in the newly supported system
folder, and load them in the notebook.html template.
* I can update the system at any time
* I can track students' time-on-task
* Students will be able to submit their homework (as notebooks) via a button
* I can add more stuff as I think of it (like the "Publish" and "Submit
Homework" buttons)
* All of the benefits of using a notebook: by students, for students ("runs
like code; reads like a journal paper", "literate computing", "reproducible
research", etc)
Things I don't like:
* Processing -> Javascript error messages are terrible
We'll have all of the code easily installable (via pip) as soon as Jupyter
is out. Of course, you can also get the code directly [3].
It could be that a Processing IPython magic could turn Processing code into
a really fancy, low-level, dynamic widget system for Python. Because
rendered Processing sketches run in rendered notebooks, it also solves some
of those issues. There needs to be a way to get data to Processing. Also,
for live kernels, it would be handy to have Processing be able to set
Python variables.
-Doug
[1] - http://www.apress.com/9781430244646
[2] - https://github.com/Calysto/metakernel
[3] -
https://github.com/Calysto/calysto/tree/master/calysto/language/processing
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ipython-dev/attachments/20150123/add33c91/attachment.html>
More information about the IPython-dev
mailing list