Marimo notebooks and Molab

Marimo notebooks and Molab

For the course I teach on the design of data visualizations, I have used a large number of tools to create data visualizations. Past years have relied upon GUI-based tools, like Excel, Tableau, and (my absolutely favorite) Veusz. However, I have also used Python in the past. I really enjoyed running the course out of Python, because I think coding is a skill that is valuable for literally everyone, and I think that creating data visualizations is a fun and accessible way to learn to code. However, in the past I found I simply spent too much time helping people trouble shoot their code to justify this approach. Basically, the course turned into “intro to programming” rather than “data meets design.”

However, the emergence of two new tools has led to me try this again… and this semester I will once again be teaching my course using Python. The two tools are:

  1. LLM-based AI agents. It is hard to imagine that anyone would be unaware of all the hubbub that the emergence of these tools has caused. Certainly there are lots of reasons to be concerned about their use or skeptical of how revolutionary they will be. However, one thing they are currently very good at is writing and analyzing basic code—the sort of code that a student new to programming would produce. Thus, the emergence of these LLM agents promises a way to shift much of the trouble shooting away from class time, and place the focus back on designing data visualizations.
  2. Marimo. This is a re-imagined implementation of the Python notebook. Last time I ran this course using Python, the dominant notebook was Jupyter Notebooks. While using a notebook is great for producing data visualizations, there were a number of problems that I had with them. First, Jupyter Notebooks can produce “stale” cells in which the output of the cell is not an accurate representation of the state of the variables in the cell. Second, parsing the file was somewhat difficult, since the Notebook was note simply a Python file. Marimo addresses both of these problems. The notebook is simply a pure Python file, and the structure of the notebook is represented using a directed acyclic graph that ensure all variable states are always up to date. I cannot encourage you enough to check them out.

And if the above was not good enough, the folks over at Marimo have recently started a cloud-based hosting of the notebook: Molab. This tool provides a ready-to-use platform for my students and includes LLM agents within it. So, everything my students need is free and ready to go!

Anyway, I am quite excited to use this tool this year. I am sure I will encounter some challenges along the way, btu I am truly excited. And cautiously optimistic.