How to remix the assignment
The dog-medicine story is only one skin. Preserve the structure of uncertainty and replace the domain. A strong remix has several small computations, shared data, at least one stateful rule, and enough ambiguity that the highest-value question is not obvious.
Reusable ambiguity patterns
- Missing units (minutes vs hours, kilograms vs pounds, percent vs decimal)
- Undefined time window
- Circular dependency
- Problematic lookup data (Merged keys, duplicate columns, missing rows)
- Stale requirements (An outdated idea conflicts with a newer policy)
- Missing functionality
Example domains
- Campus meal plan: meal credits, guest passes, tax, dining-hall hours, rollover rules, and account history.
- Concert tickets: base price, seat fees, student discount, promo codes, venue tax, transfer fee, and purchase limits.
- Bike share: ride duration, membership tier, parking zone, surge fee, credits, taxes, and monthly caps.
- Game economy: damage, armor, buffs, cooldowns, item stacking, currency conversion, and inventory history.
Difficulty knobs
- For early CS1, use 4–5 components and a 10-row data table. For later CS1, use all seven components, stateful history, file I/O, and a change request after integration.
- For a testing course (or for more fun), split teams by component and deliberately let their reasonable assumptions collide during integration.
AI knobs
Three useful variants are: (1) no AI, to focus entirely on human collaboration; (2) AI only after requirements and test-plan signoff; or (3) AI allowed throughout, but students must annotate each generated artifact with the requirement or test that justifies it. The assignment works in all three modes because the learning target is ownership of meaning and evidence.