Files
Vijay Janapa Reddi 3c95e3e67c refactor(quizzes): rename book/tools/scripts/genai/quiz_refresh to quizzes
The genai/ folder advertised an implementation detail (AI-driven) and
held only one tool. The siblings under book/tools/scripts/ are all
named by purpose (audit/, glossary/, mit_press/, publish/, ...) — this
brings the quiz pipeline into line with that convention.

Changes:
- git mv book/tools/scripts/genai/quiz_refresh -> book/tools/scripts/quizzes
- empty genai/ parent directory removed
- 4 path-string references rewritten (filters.yml comment, three
  internal docstrings/CLI examples in README/generate_quizzes/
  build_audit_context)
- 2 BUILD.md + DEVELOPMENT.md tree-listing entries updated to point at
  the new path
- README.md title and tagline updated (no longer "Quiz Refresh — runner";
  the "quiz-refresh pattern" label is replaced with "spec-plus-runner
  pattern" since the directory name now self-documents)
- generate_quizzes.py: meta["generated_by"] now writes
  "quizzes/generate_quizzes.py" (was "quiz-refresh/generate_quizzes.py");
  --skip-existing matcher loosened from "quiz-refresh" substring to
  "generate_quizzes" so it accepts both old and new descriptors
- 33 chapter quiz JSONs and 30 _audit/*_audit.json files: the
  generated_by metadata string updated to match new descriptor
- extract_anchors.py docstring: "quiz-refresh pipeline" -> "quizzes pipeline"

Verified post-rename:
- All scripts parse (ast.parse on all three .py files passes)
- validate_quiz_json.py works on sample chapters from each volume
- --skip-existing dry-run matches the new descriptor correctly
- git grep finds no remaining "genai/" or "quiz_refresh" references;
  the one remaining "quiz-refresh" reference is an intentional
  backwards-compat note in the --skip-existing comment block

The chapter quiz corpus and the spec at .claude/rules/quiz-generation.md
are unchanged in content — this is purely a directory + descriptor rename.
2026-04-25 08:09:47 -04:00

131 lines
7.9 KiB
JSON

{
"metadata": {
"chapter": "vol2/introduction",
"position": 17,
"total_chapters": 33,
"questions_audited": 42,
"audit_date": "2026-04-24",
"source_file": "book/quarto/contents/vol2/introduction/introduction.qmd",
"schema_version": 2,
"generated_by": "quizzes/generate_quizzes.py",
"generated_on": "2026-04-24",
"model": "gpt-5.4",
"total_sections": 0,
"sections_with_quizzes": 0,
"sections_without_quizzes": 0
},
"overall": {
"quality_grade": "B",
"summary": "The chapter quiz set is generally strong: most questions are grounded in the section text, emphasize systems reasoning, and cover the major conceptual arc of the introduction. The remaining issues are concentrated in a few low-value FILL items, one under-specified TF, and several places where prior-chapter concepts are re-explained instead of being leveraged more confidently for a chapter at position 17/33."
},
"build_up": {
"prior_terms_appropriately_used": [
"memory wall",
"federated learning",
"model parallelism",
"pipeline parallelism",
"mapreduce",
"cap theorem",
"differential privacy",
"ai triad",
"five-pillar framework",
"dlrm",
"bitter lesson",
"arithmetic intensity"
],
"redefinition_violations": [],
"missed_buildup_opportunities": [
{
"section_id": "#sec-vol2-introduction-scale-moment",
"question_index": 5,
"concept": "warehouse-scale computer",
"explanation": "The answer re-explains the datacenter-as-computer framing in a way that is somewhat heavier than needed for a fill-in item. The chapter could assume more reader fluency and instead use the term in a more applied scenario."
},
{
"section_id": "#sec-vol2-introduction-foundational-concepts",
"question_index": 4,
"concept": "measure everything",
"explanation": "The item effectively asks the reader to recall the prior systems-engineering principle by name. Since the principle was established earlier in the book, this chapter should build on it in a fleet-scale scenario rather than spend a quiz slot naming it."
},
{
"section_id": "#sec-vol2-introduction-constraints-scale",
"question_index": 4,
"concept": "CAP theorem",
"explanation": "The short answer correctly applies CAP, but it also re-states the core theorem in fairly tutorial fashion. At chapter 17, the quiz could assume CAP familiarity and focus more directly on ML-specific consequences such as stale gradients, stalled jobs, or recovery behavior."
}
],
"forward_reference_violations": [],
"chapter_level_assessment": "The quizzes do use prior vocabulary appropriately in many places and generally feel chapter-aware rather than isolated. However, a few items still read as if they are reintroducing earlier-book concepts instead of exploiting them for more specialized, fleet-scale reasoning appropriate to chapter 17."
},
"distribution": {
"type_mix": {
"MCQ": 20,
"SHORT": 11,
"TF": 6,
"FILL": 4,
"ORDER": 3
},
"type_mix_assessment": "slightly over-MCQ and under-ORDER, but overall acceptable; SHORT presence is healthy, TF/FILL are within reasonable bounds for one chapter",
"section_count_outliers": []
},
"per_question_issues": [
{
"section_id": "#sec-vol2-introduction-scale-moment",
"question_index": 5,
"issue_type": "trivia_fill",
"severity": "medium",
"description": "This FILL item mainly tests recall of the phrase \"warehouse-scale computer\" from a very explicit sentence in the section. It is more naming than reasoning, and the surrounding context makes the answer nearly verbatim from the text.",
"suggested_fix": "Replace it with a scenario asking what architectural consequence follows from treating the datacenter as one computer\u2014for example, why interconnect and orchestration become analogous to a bus and operating system."
},
{
"section_id": "#sec-vol2-introduction-constraints-scale",
"question_index": 2,
"issue_type": "trivia_fill",
"severity": "medium",
"description": "This FILL item asks for the term \"communication intensity\" almost directly from its definition. It is a clean item structurally, but it skews toward term recall rather than diagnosis or system reasoning.",
"suggested_fix": "Turn it into an MCQ or SHORT scenario where the reader must infer that a workload is communication-intensive from observed bytes-moved vs. local-FLOPs behavior and then predict the scaling consequence."
},
{
"section_id": "#sec-vol2-introduction-foundational-concepts",
"question_index": 4,
"issue_type": "build_up_violation",
"severity": "medium",
"description": "The FILL question asking for \"Measure\" mainly retests a previously established systems-engineering principle by name rather than applying it in this chapter's fleet-scale context. That is a missed build-up opportunity for a chapter this late in the sequence.",
"suggested_fix": "Rewrite it as a scenario-based SHORT or MCQ asking how 'measure everything' changes when observability itself becomes distributed\u2014for example, what instrumentation is needed to diagnose whether a fleet is compute-, communication-, or coordination-bound."
},
{
"section_id": "#sec-vol2-introduction-c-cube",
"question_index": 4,
"issue_type": "recall_only",
"severity": "low",
"description": "The ORDER question on T_Compute, T_Communication, and T_Coordination is mechanically correct but low-value because the order in the sum is not causally necessary. The answer even notes that reordering would not change the arithmetic, which undercuts the pedagogical fit for ORDER.",
"suggested_fix": "Replace ORDER with an MCQ or SHORT that uses the decomposition diagnostically\u2014for example, given symptoms and timing data, ask which term is dominating and what intervention follows."
},
{
"section_id": "#sec-vol2-introduction-engineering-crux",
"question_index": 5,
"issue_type": "easy_tf",
"severity": "low",
"description": "The TF item on the warehouse-scale computer perspective is true and fairly direct from an emphasized passage, with little misconception pressure. An attentive reader can answer it from the wording alone without much analysis.",
"suggested_fix": "Make it contrastive or scenario-based\u2014for example, ask whether a design decision should be treated as local server tuning or as a whole-facility systems issue under the warehouse-scale computer perspective."
},
{
"section_id": "#sec-vol2-intro-ai-scaling-laws-a043",
"question_index": 4,
"issue_type": "trivia_fill",
"severity": "medium",
"description": "The FILL item for \"Chinchilla\" is precise, but it still primarily checks recall of a named regime rather than the reasoning behind compute-optimal balancing. The concept is important; the item's form is less valuable than the surrounding questions in the same section.",
"suggested_fix": "Convert it into an applied question that asks what mistake a team makes when they scale parameters without tokens, and why a compute-optimal frontier avoids that mistake."
},
{
"section_id": "#sec-vol2-intro-summary-66bb",
"question_index": 3,
"issue_type": "easy_tf",
"severity": "low",
"description": "This TF statement is very easy because the chapter repeatedly insists that governance is not an add-on. It functions more as a slogan check than as a meaningful misconception probe.",
"suggested_fix": "Strengthen it by making the misconception more plausible, such as contrasting performance-first deployment with an architecture that must support auditability, privacy, and fairness invariants under operational constraints."
}
],
"recommended_action": "minor_fixes_recommended"
}