Source code for course materials and website for the Winter 2026 edition of Statistical Intuitions for Social Scientists
Python and all its dependencies are managed by uv in an isolated environment. All pages and computational documents are rendered & executed with quarto using the environment.
- Always
uv run quarto renderbeforegit commitandgit pushto build the site to thedocs/folder - The website is automatically updated from this folder each push!
- Install homebrew a macOS package manager to make the
brewcommand available in your terminal - Install Quarto:
brew install --cask quarto - Install uv for Python management:
brew install uv - Clone the repository:
git clone copyURLfromButton - Install dependencies:
uv sync - Register the Jupyter kernel (one-time):
uv run poe setup
Note: Step 6 registers a Jupyter kernel that Quarto uses to run Python code. This works across VSCode, RStudio, Positron, and the command line. Re-run it if you delete and recreate the
.venvdirectory.
We've setup Poe the Poet which lets us define custom commands in pyproject.toml to reduce typing:
The .vscode/ folder includes workspace settings that:
- Use Python, Ruff, and ty from the project's
.venv(no global installs needed) - Recommend essential extensions (Quarto, Jupyter, Ruff, ty)
- Provide a clean, distraction-free UI with telemetry disabled
When you open the project, VSCode will prompt to install recommended extensions. Accept to get the full experience.
Other IDEs: RStudio and Positron also work — run
uv run poe setupfirst to register the Jupyter kernel
uv add mypackage: installs mypackage and adds it to pyproject.toml
uv remove mypackage: removes mypackage and the corresponding entry in pyproject.toml
This project uses Claude Code for AI-assisted development. Project context is in CLAUDE.md.
# Install Claude Code (requires Node.js 18+)
npm install -g @anthropic-ai/claude-code
# Install beads for issue tracking
brew tap ejfox/tap && brew install beads
# Run from project root
claudeWe use bd (beads) for persistent issue tracking across sessions:
bd ready # What's available to work on?
bd list --status=open # All open issues
bd show <id> # Issue details
bd update <id> --status=in_progress # Claim work
bd close <id> # Mark complete