Assignment architecture

One cumulative bug-triage agent

The homework follows the same system through evaluation, training, and deployment. Students finish with a portfolio-quality experiment rather than three disconnected worksheets.

Homework 1

Build a miniature eval harness

Students receive a task set and stored outputs from two agent versions. They must define success, calculate results, expose a slice-level regression, and recommend whether to release.

def schema_score(output, schema): ...
def task_success(example, output): ...
def summarize_results(results): ...
def paired_difference(before, after): ...
def confidence_interval(outcomes): ...
AutogradedValid and invalid schemas, empty inputs, stochastic repetitions, slice summaries, paired differences, and confidence-interval calculations.
Reviewed artifactA release report naming the baseline, critical slices, observed regressions, quality/latency/cost gates, and rollback rule.

Homework 2

Train a tiny language model

The required path is intentionally small enough to run in NumPy. Every function corresponds to a term used in production fine-tuning conversations.

Optional extension: train a character-level model, generate samples before and after training, plot training and validation loss, and deliberately overfit a tiny dataset.

AutogradedShape contracts, stable numerics, analytical gradients, finite-difference agreement, masks, shifts, and deterministic updates.
Reviewed artifactA short training trace explaining what changed in the model and what the loss curve does—and does not—establish.

Homework 3

Design and defend a fine-tuning experiment

Students receive traces, a proposed dataset, and an underspecified request to “make the model better.” They must determine whether tuning is the right intervention and design the test.

AutogradedData validation, leakage checks, split correctness, label masks, and interpretation of supplied curves.
Reviewed artifactA one-page experiment plan assessed against an explicit rubric. There is no pretense that every design choice has one numeric answer.

Autograder implementation path

StageExecutionTradeoff
Course prototypePyodide and NumPy in a browser Web WorkerLow cost and no server-side student code; hidden tests are not truly secret.
Credentialed gradingShort-lived isolated backend sandboxProtects hidden tests and enables stronger limits; requires operational security and cost controls.
Design judgmentStructured rubric and instructor reviewHonest about ambiguity; cannot be reduced to unit tests.