Unit 0. Welcome to the course

Week 0 — the prerequisite

A fast lane of four units, self-paced, about 45 minutes each, and beside it the long-form courses in the DataCamp lesson shape. Do the fast lane before Monday 14 September. Nothing in the fifteen sessions waits for you to finish, but session 1 assumes the floor these units build.

Everything runs offline. No API key, no cloud account, no cost.

Short on time? Do units 1–4 and come back for the courses.

The fast lane

# Unit The thing you leave with
1 The environment Which Python is running, why it must be the one uv made, and the four-line walk every notebook here opens with
2 Packages and documentation How to read bootcamp_agent rather than guess at it, and what a docstring owes a caller
3 Classes and contracts Enough dataclass to read the typed contracts the course is built on, and the two mistakes that bite hardest
4 Calling a real API A call built right the first time, and what a specification does not tell you

Take them in order. Unit 1 fixes the setup problem that otherwise ruins unit 2.

Course A — Software engineering foundations

Four units, about 60 minutes each, one per chapter of the DataCamp course Software Engineering Principles in Python, translated and pointed at this repo. Each unit has slides, a notebook and a solutions notebook.

# Unit The thing you leave with
5 Packages, PyPI and PEP 8 help() before you call, ruff before you share, and the three shapes modular Python comes in
6 A portable package A requirement that pins and one that floats, a package a script can import, and the docstring help() shows
7 Classes in a package A class that keeps its docstring's promise, inheritance that calls the parent, and the _ that marks a method non-public
8 Documentation, tests and readability A docstring doctest can run, a pytest file that goes red then green, and a name that says what the function is for

Course B — MCP: AI apps as easy as 1, 2, 3

Three units, about 60 minutes each, one per chapter of the DataCamp course Introduction to Model Context Protocol. You write a real server and talk to it with a real client. Everything runs offline: the conversion behind the tool is computed locally from a recorded table of zone offsets, the model in the loop is the repo's deterministic fake, and the third-party surface is a recorded tool list, so no key and no network are needed.

# Unit The thing you leave with
9 Your first MCP server A tool whose hints are its schema and whose docstring is its description, a client that starts it over stdio, and one call made with the argument names the schema declares
10 Resources, prompts, and the LLM A resource that lists one thing per line, a prompt whose name is not its title, a five-step tool call whose result reaches the model, and a clarifying question where a converted time would have been a guess
11 Databases, APIs, and third-party servers A query the caller cannot finish writing, a credential the client never sees, and the three questions to ask a server somebody else runs

Course C — Data structures for agents

One unit, about 60 minutes, four lessons. Every example is the course's own data: the corpus, the golden set, the agent loop, and the storefront program graph session 13 walks.

# Unit The thing you leave with
12 Data structures for agents A lookup you timed before trusting it, a dedupe that keeps the order seen, a tree walk that stops at its budget, and a derive order that is a topological sort, or None on a cycle

How to run one

uv sync --group dev
uv run jupyter lab        # then open units/en/unit-01-environment/notebook.ipynb

Each notebook opens with the same preflight the whole course uses, so a broken environment tells you what to fix instead of failing three cells later.

Some cells ship broken. That is deliberate.

You will see this:

result = "a" + "b"  # <------ EDIT THIS LINE

Run it first. The cell works and gives the wrong answer, and working out why teaches more than filling in a blank. Every one of these is a mistake people actually make, including one that hangs a notebook forever until you find the stopping condition.

When you get stuck

Three levels, and you can have any of them whenever you want:

Call What you get Cost
check("w01-e2", locate_repo_root) the verdict, and the fix, named free
hint("w01-e2") the next nudge 30 marks
hint("w01-e2", reveal=True) the worked answer, and why 70 marks
review("w01") the scorecard for this unit free

Nothing is locked. If you want the answer immediately you can have it immediately — the scorecard simply says so. Asking twice never costs twice.

An exercise you passed after a hint is worth more than one you skipped, and the point of the number is to show you where to spend another ten minutes, not to rank anybody.

Your progress stays on your machine

One SQLite file at ~/.bootcamp/progress.db. It records exercise ids, whether they passed, how many attempts, and whether you took help.

It does not record your answers, your name, your email, or anything you typed, and nothing is sent anywhere. If you want to share your progress you run bootcamp progress --export and send the file yourself.

That is the same retention rule the optional depth track makes you write down for your own system, and it would be a poor course that taught a policy it did not keep.

What comes next

Session 1 opens on Monday 14 September. The fifteen sessions sit beside this one under units/en/, one directory each, listed in order in week 1, week 2 and week 3. They arrive one week at a time, so run git pull each Monday.