Title: Lab 1 — Scope Your Capstone and Stand Up Your Environment
Course: AIINFRA 303: Capstone Project > Section: Week 01 — Capstone Kickoff: Scoping a Production AI System

🛠️ Lab 1 — Scope Your Capstone and Stand Up Your Environment (50 pts)

Goal: Turn your capstone idea into a concrete, one-page scoping brief anchored to a real dataset, and stand up the reproducible Python environment you'll build in for the rest of the course. No compute required beyond a laptop and a text editor. Steps:

1. Pick your capstone idea. Write down, in one sentence, the AI system you want to build over the rest of this course. If you're stuck, think back to a real annoyance from AIINFRA 100–302 that a small, deployable tool could solve.
2. Narrow it to a vertical slice. Rewrite your idea specifying exactly: one user (who, specifically), one input (format and source), one output (format and destination), and one deployment target (e.g., a CLI, a Slack bot, a small web API). If you can't state all four in one sentence each, your scope is still too big — keep cutting.
3. Find a real, free dataset that matches your slice. Search the UCI Machine Learning Repository or the Hugging Face Datasets Hub for a dataset that fits your input/output. Record: dataset name, URL, number of rows/examples, label schema (or note if unlabeled), and any obvious quality issues (missing values, class imbalance, outdated data).
4. Write your one-page scoping brief, using the free-to-audit DeepLearning.AI "Machine Learning in Production" framing as a checklist. Include five short sections:
  - Business goal — what real problem this solves and for whom.
  - ML feasibility — why this problem is learnable from your chosen dataset (or why it might not need ML at all — see Discussion 1).
  - Data availability — the dataset details from Step 3.
  - Success metric — one concrete, measurable metric (e.g., "top-3 accuracy ≥ 80% on a held-out split").
  - Non-functional requirements — at least two (e.g., response latency budget, max acceptable cost per 1,000 requests, privacy constraints).
5. Write your explicit in/out-of-scope list. Minimum 3 items each. Be specific — "no multi-language support in v1" is useful; "keep it simple" is not.
6. Sketch a C4 System Context + Container diagram for your slice using Mermaid's C4 syntax (or Structurizr DSL if you prefer). Two levels only — don't go deeper yet.
7. Install uv and initialize your capstone repo: run uv init capstone-<yourname>, then uv add at least one dependency you already know you'll need (e.g., pandas, scikit-learn, or requests). Confirm uv run python -c "print('environment ready')" executes cleanly.
8. Take a screenshot or paste terminal output showing your working uv environment.

Deliverables: One PDF or Markdown file containing your one-page scoping brief, your in/out-of-scope list, and your C4 diagram (image or Mermaid source), submitted via online upload; plus a short online text entry with your uv init/uv add/uv run terminal output and a link to (or copy of) your initialized repo structure.