Computational Notebooks for AI Education
Keith J. O’Hara, Douglas Blank, James B. Marshall · Scholarship, Research, and Creative Work at Bryn Mawr College (Bryn Mawr College) · 2015
Computational notebooks are documents that serve dual purposes: they serve as an archive format containing code, text, images and equations; but they can also be run like computer programs. This paper explores the use of these new computational notebooks to teach AI and introduces tools that we have developed — ICalico and Calysto — to facilitate that use. Not only do these new tools broaden the languages and contexts available to students exploring notebook-based AI computing, but they offer a new mode of teaching and learning for the AI classroom. A computational notebook is a document that can be read like a journal paper and run like a computer program. Al-though the idea is not new, the computational notebook ap-proach has just recently begun to be widely adopted by com-puter science educators. For example, Peter Norvig recently shared notebooks on the web presenting topics in Artifi-cial Intelligence such as the Traveling Salesperson Problem (TSP, see Figure 1). A new computational notebook system, called Jupyter (Pérez and Granger, 2007), is being devel-oped and appears to be an excellent medium for teaching many topics, especially AI. This paper explores the use of these new computational notebooks to teach AI and intro-duces tools that we have developed — ICalico and Calysto — to facilitate that use. Not only do these new tools broaden the languages and contexts available to students exploring notebook-based AI computing, but they offer a new mode of teaching and learning for the AI classroom. Jupyter Computational Notebooks This paper focuses on the use of the Jupyter computa-tional notebook project. The Jupyter system itself evolved from the IPython project (Pérez and Granger, 2007). Orig-inally, IPython was just a better console-based read-eval-print loop for Python—it had many conveniences for pro-gramming including command-line history, command com-pletion, and a set of built-in macros called “magics. ” How-ever, in the last few years, IPython has evolved into a vast Copyright c 2015, Association for the Advancement of Artificial