Two-session hands-on workshop introducing probabilistic programming with NumPyro, run as part of MATH-CODA in Belgium.
| Session | Topic | Notebook |
|---|---|---|
| 1 | From Frequentist to Bayesian via Probabilistic Programming | notebooks/session1.ipynb |
| 2 | Deep Probabilistic Programming | notebooks/session2.ipynb |
Each session is 90 minutes (75 minutes working time + 15 minute break). Students work in pairs and run notebooks in Google Colab.
See math_coda_description.md for the public-facing session descriptions and learning outcomes. The implementation plan (timing, exercises, scaffolding rules, design decisions) lives in implementation_plan.md.
Open in Colab via the badge at the top of each notebook, then run the setup cell. Dependencies are installed from requirements.txt.
Two-tier dev environment:
flake.nixprovides system-level tools (pixi itself, git). Enter vianix developor auto-load withdirenv allow(.envrcisuse flake).pyproject.tomldrives Python deps via pixi (mirrors what Colab installs, plus dev tools: jupytext, jupyterlab, nbconvert, pyright).
One-time setup inside the nix shell:
nix develop # or: direnv allow
pixi install # builds .pixi/envs/default/Notebooks are paired with .py files via jupytext (percent format). Edit the .py files — diffs stay readable in git and code search works normally.
pixi run sync # regenerate .ipynb from .py
pixi run strip # strip outputs from .ipynb before committing
pixi run lab # open JupyterLab
pixi run typecheck # run pyright over notebooks/Pairing is configured in notebooks/jupytext.toml; pixi tasks and pyright config in pyproject.toml.