Jupyter Notebooks

My book, Problem Solving with Python was constructed using Jupyter Notebooks. The text was written in markdown cells and the code was written in code cells. Sometimes I used the Classic Notebook interface as my editor and other times I used the Jupyter Lab interface.

The GitHub repo for the book can be found at:

https://github.com/ProfessorKazarinoff/Problem-Solving-with-Python

The GitHub repo contains all the Jupyter notebooks used the write the book. The repo also contains a set of custom conversion scripts and templates which convert the Jupyuter notebooks into .html and .tex files.

The directory structure of the GitHub repo for the book is below:

Problem-Solving-with-Python/
|-- conversion_tools/
|-- notebooks/
|-- LICENSE
|-- notebooks/
|-- pdf/
|-- README.md
|-- website/

The notebooks directory contains a subdirectory for each chapter of the book:

notebooks/
|-- 00-Preface/
|-- 01-Orientation/
|-- 02-The-Python-REPL/
|-- 03-Data-Types-and-Variables/
|-- 04-Jupyter-Notebooks/
|-- 05-Functions-and-Modules/
|-- 06-Plotting-with-Matplotlib/
|-- 07-If-Else-Try-Except/
|-- 08-Loops/
|-- 09-Matrices-and-Arrays/
|-- 10-Symbolic-Math/
|-- 11-Python-and-External-Hardware/
|-- 12-MicroPython/
|-- 99-Appendix/
|-- figures/
`-- TOC.ipynb

There is a Jupyter notebook for each section of the book within each chapter directory. Each chapter directory contains an images directory for any images used in the markdown cells of the notebooks.

01-Orientation/
|-- 01.00-Welcome.ipynb
|-- 01.01-Why-Python.ipynb
|-- 01.02-The-Anaconda-Distribution-of-Python.ipynb
|-- 01.03-Installing-Anaconda-on-Windows.ipynb
|-- 01.04-Installing-Anaconda-on-MacOS.ipynb
|-- 01.05-Installing-Anaconda-on-Linux.ipynb
|-- 01.06-Installing-Python-from-Python-dot-org.ipynb
|-- 01.07-Summary.ipynb
|-- 01.08-Review-Questions.ipynb
`-- images/

Website

The website for this book was constructed using mkdocs and the Material for MkDocs theme. Jupyter noteboks were exported to .html files with markdown cells unformatted using a custom script and nbconvert.

Hardcopy

The hard copy of the book was constructed using LaTeX, nbconvert and a set of custom scripts and templates. One conversion script combined all of the notebooks into one BIG notebook. The BIG notebook was then converted into LaTeX using nbconvert and a custom template. Outside of the Python ecosystem, a separate installation of TeXworks compiled the LaTeX .tex file to a .pdf document.