Downloads and runnable resources
Choose the complete source when you want to run or adapt the course. A notebook on its own does not install the shared package, dependencies, or data.
Complete project
Download the complete source ZIP. Extract it, keep its folder structure, and follow first-run setup. It includes the Python package, all module scripts/notebooks, teaching pages, contracts, fixtures, tests, and authoring templates. If a download link does not open, use the offline access route.
The GitHub links on each reading page identify its exact source revision. Use a tested commit or semester edition when adapting.
Notebooks
Start with a clean source notebook when working through the steps. Use the executed copy to inspect saved outputs without rerunning. Executed copies come from the actual verified CI kernels, not invented results. Their saved presentation still requires manual review.
On GitHub, the source notebooks are in notebooks/lessons/. The built site supplies the individual download links above. Keep a notebook inside the complete source tree when running locally.
Practice with less support
Modules 5, 6 and 8 provide separate starter notebooks and worked solutions. Start with a learner function, use its visible feedback, then inspect solutions after attempting the task. Sources are also under notebooks/practice/ in the complete archive. Executed starters retain unfinished feedback; executed solutions contain the actual development sandbox outputs. Those are distinct evidence claims.
Reviewed external data caches
Initial data downloads require internet. These separately attributed caches preserve the reviewed original archive/member bytes and provenance. Follow the module's cache instructions rather than scattering extracted files into its source.
Read source rights and provenance before reuse. Public messages and historic demographic labels have privacy and interpretation limits. Model weights are not bundled in the source ZIP.
Choose an execution environment
Modules 1–2 can start with Python alone. The core setup supports data processing and classical ML. TensorFlow, local language models, and the app use the separate framework environment, currently verified on Linux CPU.
Use scripts and text/table reports when they fit your access needs. Reading a saved result is useful preparation but does not itself demonstrate implementation.