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 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.