🏆 We're running a notebook competition with alphaXiv.

Enter by April 26
Interested in teaching with marimo? See our tips and tools for educators!

learn with marimo

Explore our interactive courses for Python, data science, and machine learning.

All notebooks run interactively in your browser via molab · View on GitHub

Learning with marimo

A computational notebook lets you combine explanation, code, and results in a single runnable document. Notebooks make new concepts easier to learn by pairing explanations and evidence. They also improve reproducibility, since the code that produced a result lives beside the result itself.

Unlike static tutorials, notebooks are hands-on: readers can tweak settings, modify code, and see what changes all in one place. Because notebooks can be hosted, learners do not need to install anything before they start: the first session can focus on what they came to learn, not the tools. Along the way, learners pick up a tool they can keep using long after the tutorial.

Why marimo?

marimo is free and open source, and more capable than a plain text editor without the complexity of a full IDE. Because it is both a notebook environment and a UI component library, it's well-suited to building interactive, dynamic lessons. marimo also includes built-in AI coding assistance and supports custom widgets through the AnyWidget standard.

One key feature is that marimo does not allow out-of-order cell execution, which eliminates a common class of “it worked on my machine” complaints. And since a marimo notebook is a Python file, it integrates naturally with version control and other tools.

molab

molab is marimo's free cloud-hosted notebook service, available at molab.marimo.io. It is the easiest way to get started because it requires no local installation: marimo runs entirely in the browser, just like Google Colab. Notebooks created on molab are public but not discoverable by default, and can be shared with others by URL. Students can download their notebooks as .py, .ipynb, or PDF files, which makes submission to grading systems such as Gradescope straightforward.

molab can also preview notebooks hosted on GitHub. The service provides a stable URL for a notebook that stays current as the notebook changes, so students always see the latest version. From the preview page, students can fork the notebook into their own workspace. And if you are coming from a legacy environment, Jupyter notebooks can be converted to marimo notebooks with a single command.

We offer free, additional compute resources for students and educators using molab in their research or learning. Reach out if you'd like to learn more.

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 the AI to explain a variable or an error message, or suggest 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 session, so when it adds a cell or tests a hypothesis, you see exactly what it did and how your notebook's state changed. You can watch it explore a dataset, then take over and push the analysis in your own direction. The notebook becomes an executable trace of how the problem was solved, not just a final answer.

Most importantly, marimo gives you a place to learn how to use AI effectively. Working with the in-built assistant, with marimo-pair, or with agent tools teaches you how to prompt, iterate, and evaluate AI-generated code and explanations.

Courses

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

Teaching

Tools for Educators

Tools for Educators

Explore some tools for teaching

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