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
Learn Altair
Learn the basics of Altair, a high-performance visualization library, using lessons developed at the University of Washington.
see the lessonshide the lessons
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 lessonshide the lessons
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 lessonshide the lessons
Learn Polars
Learn the basics of data wrangling with a high-performance Python library called Polars.
see the lessonshide the lessons
Learn Probability
These marimo notebooks teach the fundamentals of probability with an emphasis on interactive learning and computation in Python.
see the lessonshide the lessons
- Sets
- Axioms of Probability
- Probability of Or
- Conditional Probability
- Independence in Probability Theory
- Probability of And
- Law of Total Probability
- Bayes' Theorem
- Random Variables
- Probability Mass Functions
- Expectation
- Variance
- Bernoulli Distribution
- Binomial Distribution
- Poisson Distribution
- Continuous Distributions
- Normal Distribution
- Central Limit Theorem
- Maximum Likelihood Estimation
- Naive Bayes Classification
- Logistic Regression
Learn Python
These notebooks will help you learn the basics of Python programming in an easy, interactive way.
see the lessonshide the lessons
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 lessonshide the lessons
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 lessonshide the lessons
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.