Skip to main content

Module 5: Abstraction & Interpretation: Mistake Clinic

This clinic turns wrong moves into reusable judgment. Use it after each practice page and again before the quiz or checkpoint.


Module-Specific Mistake Radar

Start with these traps. Replace or extend them with real mistakes from your own work.

Mistake to look forWhere it shows upSymptomRepair evidence
Finishing Abstraction and HOF Lab with only a final answerAbstraction and HOF LabThe work has no failed case, trace, test, proof gap, or design stress point.Add the smallest broken example and show the repair that changes the result.
Finishing Evaluation Models Workshop with only a final answerEvaluation Models WorkshopThe work has no failed case, trace, test, proof gap, or design stress point.Add the smallest broken example and show the repair that changes the result.
Finishing Interpreter Construction Clinic with only a final answerInterpreter Construction ClinicThe work has no failed case, trace, test, proof gap, or design stress point.Add the smallest broken example and show the repair that changes the result.
Finishing Code Katas with only a final answerCode KatasThe work has no failed case, trace, test, proof gap, or design stress point.Add the smallest broken example and show the repair that changes the result.
Treating Procedural Abstraction: Procedures as Black Boxes as vocabulary instead of a toolProcedural Abstraction: Procedures as Black BoxesThe explanation names the concept but cannot decide between two cases.Write one example, one non-example, and the rule that separates them.
Treating Data Abstraction and Abstract Data Types as vocabulary instead of a toolData Abstraction and Abstract Data TypesThe explanation names the concept but cannot decide between two cases.Write one example, one non-example, and the rule that separates them.

Practice Mistake Checks

Pull any miss from these checks into your mistake log.

Abstraction and HOF Lab

Source: practice/01-abstraction-and-hof-lab.md

Identify the error in each of these patterns (do NOT write correct code yet -- explain the bug):

  1. newton is implemented as a loop that mutates x, then returns x. Why is this a smell in a library that wants to be composable?
  2. average-damp is implemented as average-damp(f, x) -- taking x as an extra argument instead of returning a procedure.
  3. integral hard-codes dx = 0.001 deep inside its body.
  4. fixed-point uses set! inside a loop over a mutable binding captured by a closure; two callers of the same library share a cached guess.

Repair Protocol

For each real mistake:

  1. Reproduce the failure on the smallest example, trace, proof, query, command, or design sketch.
  2. Name the hidden assumption.
  3. Repair the artifact.
  4. Save evidence that changed: failing then passing test, corrected proof step, revised diagram, safer command, benchmark, or review note.
  5. Add one retrieval card beginning with Check... before... or Do not use... when....

Mistake Log

DateMistakeSymptomRoot causeRepair evidenceRetrieval card
StarterPick one radar row aboveExplain how it would fail in this moduleName the assumptionAdd a counterexample or corrected artifactWrite the card before closing the page

Completion Standard

  • At least five real mistakes are logged.
  • At least two mistakes include a counterexample or failing test.
  • At least one mistake connects to an older semester skill.
  • At least one correction changes code, a proof, a diagram, a command transcript, a query, or a design decision.