mirror of
https://github.com/harvard-edge/cs249r_book.git
synced 2026-07-24 08:47:40 -05:00
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.
131 lines
7.9 KiB
JSON
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"
|
|
}
|