{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "

If we knew what we were doing, it wouldn't be called research

\n", "\n", "

—widely attributed to Albert Einstein

" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true, "slideshow": { "slide_type": "slide" } }, "source": [ "## Exploratory computing\n", "\n", "```python\n", "while True:\n", " code = input('>>> ')\n", " exec(code)\n", "```\n", "\n", "\n", "

\n", "" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true, "slideshow": { "slide_type": "slide" } }, "source": [ "## The notebook interface" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true, "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np, matplotlib.pyplot as plt\n", "x = np.linspace(0, 20, num=500)\n", "plt.plot(x, np.sin(.5*x**2))\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true, "slideshow": { "slide_type": "slide" } }, "source": [ "## Notebook documents\n", "\n", "* Reproducible papers\n", "* Lecture materials\n", "* Interactive books\n", "* Executable software documentation\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Sharing notebooks\n", "\n", "Nbconvert to other formats\n", "\n", "\n", "\n", "View notebooks online:\n", "\n", "

https://nbviewer.jupyter.org/

\n", "\n", "Github, Indico can view notebook files" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true, "slideshow": { "slide_type": "slide" } }, "source": [ "## Interactive output" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "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\noh8MrRvnfNBPmxb3SkQkyYIK+lor+rS2bp54wv+gGjcu7pWISJIFFfS19ujT2rp54AF44xvjXoWI\nJF1QQR/H1E3IFf2DD6ptIyL1Cyroa6no623dqKIXkbQLKuhr6dGXGq9Mcutm82bfoz/uuLhXIiJJ\nF1TQ1zp1U6xHn+TWzSOPwKRJpX9QiYhUIqigb/bUzbBhvuov9v1xUttGRKISVNCXq+hbWqrr0Zdr\n3bS0wO67w/bt0aw/Sgp6EYlKooI+f+vicuOV5Vo3EGb7pq8PHnpIEzciEo2ggr6S1k1uRV/JeGW5\nHneIkzcrV8Lee/ubjYiI1CuooK+moo+idQNhTt5o2wMRiVJQQV9NRZ/buikU9M5VXtGH1rpZsABO\nOinuVYhIWgQV9NVW9KXGK3O/XkqIFf3ChXDCCXGvQkTSIqigr7ZH39rqn3POf+SqpG0D4QX9jh2w\nahUce2zcKxGRtAgq6GuZujEbOF+fVcnEDYTXulm2DA4/3I99iohEIaigr2XqBgqPWFbSn4fwKvqF\nC2Hy5LhXISJpElTQ1zJ1k39sVlJbN4sWqT8vItEKKuhrmbrJPzYrqa0bVfQiErWggr6WqRsoPGKZ\nxIq+uxtWr4Y3vCHulYhImgQV9LVM3WSPradHH0pFv3QpHHGE32xNRCQqQQV9lD36SoM+pC0Q1J8X\nkUYIKuir7dFnfzAUCvqeHmhvL/+eIbVuFi1Sf15EohdU0Ber6Ht6Slf0hXr01QR9KK0bXRErIo2Q\niKCvpUdfadCH0rp55RV47DGdiBWR6AUV9KVaN+3tu14ZW6p1k7QLppYuhSOPhKFD416JiKRNUEFf\na0WfhtaNTsSKSKO0xb2AXOVOxjpXfOom6a2bxYvh+OPjXoWIpFFiK/q0Td0sXar+vIg0RqIqeqh8\njr7a1o1zfifMOPT2wl/+Aq9/fTzvLyLpVndFb2ZnmNkqM1tjZhcXOeZ/Ml9fYmaTii4m4h59JSdj\nd9vNv+6rr5Y/tlGefBL22QdGjoxvDSKSXnUFvZm1AlcBZwATgZlmdnTeMTOAw51zE4CPANcUe73c\nij4b+n19xfejz23dFNoCoZKKHuJv3yxZohuNiEjj1FvRTwEed86tdc71AD8Hzsk75mzgJgDn3MPA\nKDPbr+BiclaTe0ORSuboa23dQPw7WKo/LyKNVG/QHwg8k/P42cxz5Y4ZW+jF8u/vmg3wcnvd1DNe\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from ipywidgets import interact\n", "\n", "@interact(a=(0.1, 5.0), func=['sin', 'cos', 'tan'])\n", "def plot_func(a=1, func='sin'):\n", " x = np.linspace(0.01, 2*np.pi, 200)\n", " y = getattr(np, func)(a/x)\n", " plt.plot(x, y)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Multiple languages\n", "\n", "\n", "\n", "

and many more...

" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## How does it work?\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Message format\n", "\n", "```json\n", "{\n", " \"header\": {\n", " \"msg_type\": \"execute_request\",\n", " ...\n", " },\n", " \"content\": {\n", " \"code\": \"print('Hello, world')\",\n", " ...\n", " },\n", " ...\n", "}\n", "```" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## How does it work?\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Kernels for other languages\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Future plans\n", "\n", "Modular UI, to build more varied applications - like:\n", "\n", "Thebe: https://oreillymedia.github.io/thebe/\n", "\n", "Hydrogen\n", "\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Future plans\n", "\n", "More support for notebook documents in various contexts - e.g.\n", "\n", "* As student assignments (see **nbgrader**)\n", "* As academic papers (see **cite2c**)\n", "* As docs for software projects" ] } ], "metadata": { "celltoolbar": "Slideshow", "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.4.3" } }, "nbformat": 4, "nbformat_minor": 0 }