Excellent Julia Notebook

As I skill up between jobs, I’ve started working through the Computational Thinking course on MIT from Fall 2020, and while I’m sure there’ll be a post about that course in the future, for now I just want to focus on one particular notebook and how it stood out to me as an excellent guide to an engaging interactive modeling.

Before we talk about the notebook in general, a quick introduction to the course is in order to help set the stage.  The class is taught by many professors, including Grant Sanderson of 3Blue1Brown fame, and Alan Edelson, one of the creators of the Julia programming language.  It aims to teach undergraduates who may not be familiar with programming in general, as well as the skills involved in translating mathematical models and algorithmic thinking to code in particular, how to leverage the power of our computational world to understand complicated phenomena.  The third module of the course, focused on modeling climate and the intricacies of nonlinear dynamics, is where we encounter this exceptional Pluto notebook.

A Pluto notebook is similar to a Jupyter notebook in form, but behind the scenes the implementation is very different.  A Pluto notebook is described as reactive, meaning that the current state of the entire notebook is described by the code in the notebook only. A more thorough explanation is available here. This capability allows for Pluto notebooks to be tinkered with endlessly (if build to accommodate it) and to be extremely transparent to the user.  The notebook is saved as a .jl file that can be executed by Julia without modification and will return the output of the final cell to the user.

The excellent notebook is by Henri Drake and concerns a simple energy balance model for the Earth’s climate.  It starts with a high level physical derivation of the model as a differential equation, then converts it into a discrete model and solves it numerically, all the while allowing the user to modify parameters of the model and plotting many different aspects of the model (e.g. CO2 in the atmosphere, temperature over time, etc.).  The end result is an interactive, completely transparent model of the climate, with full control over all the variables.  I love this presentation, and Pluto notebooks overall for learning Julia. More info on Pluto can be found here.