Jupyter Notebook is a browser-based Python application enabling the creation of documents that can contain both rich text and executable computer code.  By mixing text and code in the same display, these notebooks are useful for presenting not only data analysis and visualization, but also textual descriptions of the code and of results. Text is normally entered using the Markdown syntax, but Jupyter notebooks can also include HTML, Javascript, and LaTeX code for equations. These documents are meant to be both human-readable text documents while also containing executable code. Jupyter runs Python most natively but by installing alternate kernels can execute R, Ruby, Haskell, Scala, Go, and many other languages.

A good introduction to the platform by Corey Schafer can be found on YouTube. Those who are interested in learning more about using Jupyter in teaching might be interested in JupyterDay, a day long session devoted to teaching with Jupyter at Bryn Mawr College on May 19, 2017