Tuesday, 9/15
Reading an error message
Checkpoint 1 Due Sunday, 9/20
Open in a new tab
· press f for fullscreen, o for an overview
The notebook is loading. The first load takes about 25 seconds.
Or run it on your own machine, which is how this course works from the second session on.
- Download
01-first-notebook.pyinto your project'snotebooks/folder. -
Run
uv run marimo editfrom the project, with no file name. You get a page listing every notebook in it.
uv run 01-first-notebook.py runs the cells and exits without showing you
anything, which looks like nothing happened. No project yet?
uvx marimo edit opens whichever folder you are in.
·
Jupyter version, which
reads without being run but has no working controls.
TL;DR#
Tonight was setup: a project, tonight's notebook running on your own machine, and an agent answering inside it on your Babson key. The notebook has three jobs: getting marimo running on your machine, taking the whole workflow through once including working with AI, and running Python before you have been taught its syntax. Then the topic itself, which is what to do when Python stops and prints something at you. Read the last line of the traceback first. It names the error and points at the line.
What we covered#
Commit, push, pull, and what a conflict actually is. A commit saves a set of changes on your machine. Nothing appears on github.com until you push, which was demonstrated by committing three times and refreshing the page to find nothing there. A pull brings the remote version back to you. When the same file changed in both places, the push fails until you pull. Then you choose: keep your version, take theirs, or keep both. The tool shows you both sides and you decide.
Which window is which. GitHub Desktop moves commits between your machine and github.com. VS
Code is where you write code, run it, and open a terminal. marimo in the browser is where the
notebooks run. github.com is the copy other people can see. A prompt reading PS C:\...> or % is
the operating system waiting for a command. Three angle brackets, >>>, means you are inside
Python and commands like uv will not work until you leave with exit().
Your repository became a project. uv init --app --no-package --python 3.14 adds three files.
.python-version pins the Python, so a Mac that ships 3.9 does not quietly use it. pyproject.toml
lists what your project needs, which is how every package from here on gets recorded. uv add marimo then installed marimo into that project, permanently, rather than for one session.
The agent, inside the notebook. Your Babson key goes into marimo as a custom provider, and the
model name carries the provider with it: babson_ai/claude-sonnet-5. The point of doing it this
way rather than keeping a chat window open in another tab is that the agent can see your notebook.
Ask it about a cell and it reads the cell. Ask it about an error and it finds the error. That is
also why the budget is worth thinking about: re-running a failing cell twenty times without reading
the message costs more than twenty good questions.
An agent is a model plus a prompt somebody wrote. The Custom Rules box in marimo's AI settings is where you write yours. Putting "I am a beginner learning Python" in it changes every answer you get afterwards. Nothing else about the model changed.
Reading an error message. Three turned up tonight, none of them on purpose:
NameErrormeans Python has never seen that name. Almost always a typo or a cell you have not run yet. Python is case sensitive, andfreight_chargesandfright_chargesare two different names.IndexErrormeans you asked for a position that does not exist. A list of five has positions 0, 1, 2, 3 and 4. There is no 5.SyntaxErrormeans Python could not read the line at all. With quotes, it usually means it found the end of your string somewhere you did not intend. The arrow in the message points at roughly where it gave up.
Cells recompute themselves. Change one value in the cell that defines it and every cell that depends on it updates, with no re-running by hand and no stale numbers left on screen. marimo also warns you before you define the same name in two places, and before you delete a cell something else needs. This is why the course uses marimo. It removes the bug where the notebook shows one number and the code would now produce another.
When the setup does not work#
These two stopped people tonight and neither means anything is wrong with your machine.
- There is no robot icon and no Chat & Agents panel. Enable AI features is unticked. It is on the AI Features tab of the AI settings, and the same tick box is under Settings → User settings → AI. Check this first: with it off, everything else you configure has no effect, including a provider that says Configured.
- marimo will not start, or the terminal says
uv trampoline failed to canonicalize script path. The virtual environment is broken. Delete the.venvfolder in your repository, then runuv add "marimo[recommended]"again. It rebuilds.venvfrompyproject.toml, so you lose nothing.
Two more from earlier in the night:
- The first chat message fails with
ModuleNotFoundError: pydantic_ai, even though the settings screen says Configured. The extra packages are missing. Stop marimo withCtrl+C, answery, runuv add "marimo[recommended]", then start it again withuv run marimo edit. Stopping marimo first is the step people skip, and it is the one that matters. Failed to hardlink files, falling back to full copyis a warning, not an error. It uses more disk and nothing else. Carry on.
Everything here, with screenshots, is on Your Babson AI Key.
One correction from tonight#
I said Ctrl+Enter and Shift+Enter do the same thing. They are close but not the same:
Ctrl+Enterruns the cell and leaves you in it.Shift+Enterruns the cell and moves to the next one, creating a new cell if there is nothing below. It is the one to use while you are writing a sequence of cells.
They looked identical tonight because every cell already had something under it. Ctrl+Shift+H
inside a notebook lists every shortcut.
What we did not get to#
We ran out of clock before three things, and all of them are in tonight's notebook with explanations
around them: types and f-strings, for, if and .append(), and Markdown. If the
second half of the notebook feels like it is asking for something you have not seen, that is why,
and it is not you. Work through it in order and read what each section says before you run its
code. Bring whatever does not land to next session or to office hours.
Public links#
- Your Babson AI Key, the full setup for marimo and for VS Code
- Where Am I Typing?, the three prompts and which window is which
- Markdown, which we did not reach in the room
- Python Projects, including where each kind of file goes
- Git and GitHub
- marimo keyboard shortcuts
Before next session#
- Work through the whole notebook and push it. Every section, including the ones we did not
reach in class: run the cells, read what they show, and write the cells it asks you to write.
Use your agent for the sections we did not get to, which is what it is for. Push it to your
oim7510repository by the end of Sunday, so I can read it and get back to you on Monday. Saving is not pushing: save, then commit and push in GitHub Desktop. - The last section of the notebook, A Question About Your Own Numbers, is optional this week. Nothing is graded on it. It is the first thing in this course that is yours rather than mine, so it is worth the hour if you have one, and you lose nothing by skipping it.
- If your agent is not answering, work through the two fixes above. If it still will not, bring the error text to office hours on Thursday rather than retyping the setup from scratch.
Checkpoint 1 closes Sunday 9/20 and covers the first two sessions. Each item is simply present
or absent: a public repository named oim7510, more than one commit in each week it covers, the
notebook in it, the notebook worked through, and commit messages that say what changed. The full
checklist is on Canvas.
In the handbook
Reference for this session. None of it is assigned.