Hour of Code++

Jealous of #HourOfCode this CS Education week? Want to explore some things in about an hour? Try this!

(You have an idea for an hour of code for more advanced CS people? Tweet it with the hash tags #hourofcode and #hourofcodeplusplus)

Literate Computing: Reads like a journal paper---runs like code

Introducing Jupyter and the idea of literate computing!

  1. Explore an on-line interface to programming, called Jupyter (nee IPython 3.0.0)
  2. Explore ideas like literate computing and reproducible research
  3. Explore how you could implement sophisticated ideas like Continuations and call-with-current-continuation in Python

Explore an on-line interface to all programming languages, called Jupyter

Jupyter is an architecture for computing. It has many facets, but one of the most interesting is being able to create executable notebooks over the web. To try this out:

  • Go to http://tmpnb.org, a temporary Jupyter notebook server hosted by RackSpace
  • A Python notebook will open up. Read the directions on that page.
  • You can program in Python (versions 2 and 3), Julia, and R.
  • Use Markdown, but also LaTeX equations!
  • Use matplotlib and numpy for beautiful plots and fast math!
  • You can create many notebooks here. Download them as .ipynb files to save for future use!
  • Explore!

Explore ideas like literate computing and reproducible research

There are many notebooks on the web that you can download, and then upload to your temporary notebook server. One of the most exciting aspects of Jupyter is "reproducible research"... entire programs that can be replicated completely. If this were standard operating procedures, it could have profound affects on data-driven journalism and our economy.

Some interesting places to find notebooks for downloading (or just reading):

Or just search for "ipython notebook" and your favorite computing topics!

Explore how you could implement sophisticated ideas like Continuations and call-with-current-continuation

Ok, this is an especially geeky one for those of you interested in Scheme, but are more familiar with Python. How would you implement Scheme? Not just sorta... but the whole thing! The following notebooks are from my current Programming Languages course that I taught completely over the web using Jupyterhub, a locally-installed Jupyter system where students can log in to their own account.

Future work

At Bryn Mawr College, we are working on bringing many other languages to Jupyter, including:

And many others!

comments powered by Disqus