Skip to main content

Guided Labs

Download the offline OOD foundations kit. Extract it and run from its directory with Python 3.10+; only the standard library is needed. No accounts, paid tools or network access are required.

python check.py --module reference
python check.py --module starter
python run_labs.py --module reference

The reference should pass four check groups. The untouched starter deliberately fails with NotImplementedError. Implement it before opening the reference, then run checks and examples with --module starter. Use the included evidence template for actual observations, commands, contract arguments and assistance.

LabWorkAcceptance evidence
L1: values and leaksDiagnose legacy.py; implement MoneyInvalid domains rejected explicitly; currency checks, exact arithmetic, ordinary immutability
L2: substitutable state machinesImplement cached and derived accountsSame public traces as an independent scalar model, failed-state preservation, stable history and independent instances
L3: client roles and wiringImplement statement and quoteMinimal read-only fake, call counts, failure propagation and two callable policies
L4: observable report behaviorImplement rendering and output boundaryOne-shot iterators, escaped text, invalid late rows, no writes on input failure and explicit sink limitations

Budget 16–24 hours. Follow the design contracts and README's exact HTML format. The checker enumerates bounded traces; write the invariant and failure argument too. Architecture review must compare ownership, change pressure and cost; the checker does not require inheritance or a particular number of classes.

The legacy fixture intentionally fails useful contracts. New validation, escaping and changed output timing are declared repairs/migrations, not evidence that its old behavior was preserved. Keep an unaffected case alongside each intentional change.

Construction and semantics continuation​

Complete the construction clinic after cluster 6. Its DS1–DS4 evidence is required alongside existing C01–C10 gates; original labs remain. The 8–12 additional hours are explicitly included in the updated module/semester allocation.