Chapter 1, Introduction to Jupyter, investigates the various user interface elements available in a notebook. We will learn how to install the software on a macOS or a PC. We will expose the notebook structure. We will see the typical workflow used when developing a notebook. We will walk through the user interface operations available in a Notebook. And lastly, we will see some of the configuration options available to advanced users for their notebook.
Chapter 2, Jupyter Python Scripting, walks through a simple notebook and the underlying structure. Then, we will see an example of using pandas and looked at a graphics example. Finally, we will look at an example using random numbers in a Python script.
Chapter 3, Jupyter R Scripting, adds the ability to use R scripts in our Jupyter Notebook. We will add an R library that's not included in the standard R installation, and we will make a Hello World script in R. We will then see R data access built-in libraries and some of the simpler graphics and statistics that are automatically generated. We will use an R script to generate 3D graphics in a couple of different ways. We will then perform a standard cluster analysis (which I think is one of the basic uses of R) and use one of the forecasting tools. We will also build a prediction model and test its accuracy.
Chapter 4, Jupyter Julia Scripting, adds the ability to use Julia scripts in our Jupyter Notebook. We will add a Julia library that's not included in the standard Julia installation. We will see the basic features of Julia in use, and also outline some of the limitations that are encountered using Julia in Jupyter. We will display graphics using some of the available graphics packages. Finally, we will see parallel processing in action, a small control flow example, and how to add unit testing to your Julia script.
Chapter 5, Jupyter Java Coding, explains how to install the Java engine into Jupyter. We will see examples of the different output presentations available from Java in Jupyter. Then, we will investigate using optional fields. We will see what a compile error looks like in Java in Jupyter. Next, we will see several examples of lambdas. We will use collections for several purposes. Lastly, we will generate summary statistics for one of the standard datasets.
Chapter 6, Jupyter JavaScript Coding, shows how to add JavaScript to our Jupyter Notebook. We will see some of the limitations of using JavaScript in Jupyter. We will look at examples of several packages that are typical of Node.js coding, including graphics, statistics, built-in JSON handling, and creating graphics files with a third-party tool. We will also see how multithreaded applications can be developed using Node.js under Jupyter. Lastly, we will use machine learning to develop a decision tree.
Chapter 7, Jupyter Scala, explains how to install Scala for Jupyter. We will use Scala coding to access large datasets. We will see how Scala can manipulate arrays. We will generate random numbers in Scala. There are examples of higher-order functions and pattern matching. We will use case classes. We will see examples of immutability in Scala. We will build collections using Scala packages, and we will look at Scala traits.
Chapter 8, Jupyter and Big Data, discusses using Spark functionality via Python coding for Jupyter. First, we will install the Spark additions to Jupyter on a Windows machine and a macOS machine. We will write an initial script that just read lines from a text file. We will go further and determine the word count in that file. We will add sorting to the results. There is a script to estimate pi. We will evaluate web log files for anomalies. We will determine a set of prime numbers, and we will evaluate a text stream for some characteristics.
Chapter 9, Interactive Widgets, explains how to add widgets to our Jupyter installation. We will use the interact and interactive widgets to produce a variety of user input controls. We will then look at the widgets package in depth to investigate some of the available user controls, properties available in the containers, and events that can be emitted from the controls, and we'll how to build containers of controls.
Chapter 10, Sharing and Converting Jupyter Notebooks, covers how to share notebooks on a Notebook server. We will add a notebook to a web server distribute it using GitHub. We will also look into converting our notebooks into different formats, such as HTML and PDF.
Chapter 11, Multiuser Jupyter Notebooks, shows how to expose a notebook so that multiple users can use a Notebook at the same time. We will see an example of the sharing error occurring. We will install a Jupyter server that addresses the problem, and we will use Docker to alleviate the issue as well.
Chapter 12, What's Next?, looks into some ideas that may be incorporated into Jupyter in the future.