🍃 Share notebooks from GitHub!

Badge generator

Learn with marimo

Learn Python, AI/ML, scientific computation, and more with marimo notebooks

Notebooks run in your browser via molab · View courses on GitHub

Teaching with marimo? See our for educators page.
Contribute a lesson. marimo learn is a curated open-source collection of educational notebooks, covering Python, optimization, probability, linear algebra, polars, PyTorch, and more. Students are welcome to contribute new notebooks or entire courses. Open an issue on GitHub to propose a topic!
Learn Altair

Learn Altair

Learn the basics of Altair, a high-performance visualization library, using lessons developed at the University of Washington.

see the lessons
  1. Introduction to Altair
  2. Data Types, Graphical Marks, and Visual Encoding Channels
  3. Data Transformation
  4. Scales, Axes, and Legends
  5. Multi-View Composition
  6. Interaction
  7. Cartographic Visualization
  8. Altair Debugging Guide
Learn DuckDB

Learn DuckDB

These notebooks teach you the basics of DuckDB, a fast in-memory database engine that can interoperate with dataframes, and show how marimo gives DuckDB superpowers.

see the lessons
  1. What is DuckDB?
  2. Loading Parquet files with DuckDB
  3. Loading JSON
  4. Working with Apache Arrow
Learn Optimization

Learn Optimization

Learn the basics of convex optimization using Python, and see how to apply these ideas to vehicle control, portfolio allocation in finance, and other areas.

see the lessons
  1. Least Squares
  2. Linear Program
  3. Minimal Fuel Optimal Control
  4. Quadratic Program
  5. Portfolio Optimization
  6. Convex Optimization
  7. Semidefinite Program
Learn Python

Learn Python

These notebooks will help you learn the basics of Python programming in an easy, interactive way.

see the lessons
  1. Numbers
  2. Strings
  3. Collections
  4. Conditional logic
  5. Loops
  6. Dictionaries
  7. Advanced Collections
  8. Functions
  9. Using Modules
  10. Handling Errors
Learn Queueing Theory

Learn Queueing Theory

Why is your line always slower than the other one? Why do traffic jams happen without any apparent cause? These lessons use a mixture of queueing theory and simulation to explain these scenarios and others.

see the lessons
  1. Basic Ideas in Queueing Theory
  2. Queue Formation
  3. Little's Law
  4. Sojourn Time
  5. M/M/1 Queue Nonlinearity
  6. Pooled vs. Separate Queues
  7. Late Merge
  8. The Inspector's Paradox
  9. The Convoy Effect
  10. Priority Starvation
  11. Tandem Queue Blocking
  12. Rush Hour Displacement
  13. Braess's Paradox
Learn SQL

Learn SQL

Learn the basics of SQL, the industry standard for interacting with relational databases. These notebooks also show how easy it is to work with relational data in marimo.

see the lessons
  1. Basic Selection
  2. Filtering
  3. Aggregating and Grouping
  4. Missing Data
  5. Combining Tables
  6. Primary and Foreign Keys
Tools for Educators

Tools for Educators

Explore some tools for teaching

see the lessons
  1. Wigglystuff Widgets
  2. Formative Assessment
  3. Turtle Graphics

Learning with marimo

Notebooks

A computational notebook combines prose, code, and outputs in a single runnable document, so explanations and evidence sit side by side. Learners can tweak a parameter, modify a cell, and see the result immediately. And when notebooks are hosted, the first session can focus on what learners came to learn — not on installing a runtime.

Why marimo notebooks

marimo is a free and open-source reactive Python notebook, available under the Apache 2.0 license on GitHub. Unlike traditional notebooks, marimo keeps code and outputs in sync: run a cell and marimo automatically updates everything that depends on it. This reactive execution eliminates the hidden state and “it worked on my machine” bugs that plague Jupyter, and gives learners immediate feedback as they experiment.

marimo includes a UI component library, so lessons can include sliders, dropdowns, and selectable plots that let students explore what-if questions about data and algorithms. Built-in pytest support makes it easy to give learners immediate feedback on exercises, and the AnyWidget standard means custom domain-specific widgets work out of the box.

Because every marimo notebook is a pure Python file, it versions cleanly with Git, runs as a script, and can be imported as a module — capabilities that are impossible with JSON-based notebook formats.

Coming from Jupyter? You can convert ipynb files to marimo with a single command.

molab: run marimo in the cloud

molab is marimo's free cloud-hosted notebook service. It runs entirely in the browser — no local install required, similar to Google Colab — and notebooks can be downloaded as .py, .ipynb, or PDF for submission to grading systems like Gradescope.

Preview from GitHub. molab can also preview notebooks hosted on GitHub, providing a stable URL that stays current as the notebook changes; learners can fork the preview into their own workspace.

AI as a learning partner

When an LLM can do homework, static problem sets lose their impact. marimo's interactivity changes that equation by turning AI from a shortcut into a study partner: ask for an explanation, an error trace, or a next step, and the answer arrives in the context of your actual work.

marimo-pair lets you pair-program with an AI that shows its work. The agent operates inside your live notebook, so when it adds a cell or tests a hypothesis, you see exactly what changed. The notebook becomes an executable trace of how the problem was solved — and along the way, learners pick up real skills in prompting, iterating on, and evaluating AI-generated code.