{
  "schema": "ml-prep/catalog@1",
  "generated_at": "build-time",
  "capabilities": {
    "browser_bridge": "window.mlPrepAgent@1",
    "search": "https://mlprep.iwase.dev/data/search.json",
    "custom_sets": "https://mlprep.iwase.dev/custom/",
    "local_storage": "IndexedDB"
  },
  "sources": [
    {
      "id": "mit-18-06-s2010",
      "title": "MIT 18.06 Linear Algebra",
      "organization": "MIT OpenCourseWare",
      "course_url": "https://ocw.mit.edu/courses/18-06-linear-algebra-spring-2010/",
      "materials_url": "https://ocw.mit.edu/courses/18-06-linear-algebra-spring-2010/pages/exams/"
    },
    {
      "id": "mit-18-02sc-f2010",
      "title": "MIT 18.02SC Multivariable Calculus",
      "organization": "MIT OpenCourseWare",
      "course_url": "https://ocw.mit.edu/courses/18-02sc-multivariable-calculus-fall-2010/",
      "materials_url": "https://ocw.mit.edu/courses/18-02sc-multivariable-calculus-fall-2010/pages/2.-partial-derivatives/exam-2/"
    },
    {
      "id": "mit-18-01sc-f2010",
      "title": "MIT 18.01SC Single Variable Calculus",
      "organization": "MIT OpenCourseWare",
      "course_url": "https://ocw.mit.edu/courses/18-01sc-single-variable-calculus-fall-2010/",
      "materials_url": "https://ocw.mit.edu/courses/18-01sc-single-variable-calculus-fall-2010/pages/exams/"
    },
    {
      "id": "mit-18-05-s2022",
      "title": "MIT 18.05 Introduction to Probability and Statistics",
      "organization": "MIT OpenCourseWare",
      "course_url": "https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/",
      "materials_url": "https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/pages/exams/"
    },
    {
      "id": "mit-6-036-exams",
      "title": "MIT 6.036 Introduction to Machine Learning Exams",
      "organization": "Massachusetts Institute of Technology",
      "course_url": "https://introml.mit.edu/",
      "materials_url": "https://introml.mit.edu/spring23/final/review"
    },
    {
      "id": "mit-6-100l-f2022",
      "title": "MIT 6.100L Introduction to CS and Programming using Python",
      "organization": "MIT OpenCourseWare",
      "course_url": "https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-programming-using-python-fall-2022/",
      "materials_url": "https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-programming-using-python-fall-2022/pages/finger-exercises/"
    },
    {
      "id": "google-mlcc",
      "title": "Machine Learning Crash Course",
      "organization": "Google for Developers",
      "course_url": "https://developers.google.com/machine-learning/crash-course",
      "materials_url": "https://developers.google.com/machine-learning/crash-course/exercises"
    },
    {
      "id": "leetcode",
      "title": "LeetCode Problem Set",
      "organization": "LeetCode",
      "course_url": "https://leetcode.com/problemset/",
      "materials_url": "https://leetcode.com/problemset/"
    },
    {
      "id": "harvard-stat110-f2011",
      "title": "Harvard Stat 110 Probability — Strategic Practice",
      "organization": "Harvard University",
      "course_url": "https://stat110.hsites.harvard.edu/",
      "materials_url": "https://stat110.hsites.harvard.edu/strategic-practice-problems"
    },
    {
      "id": "pml-book1-2022",
      "title": "Probabilistic Machine Learning: An Introduction — online draft dated 2025-04-18",
      "organization": "Kevin P. Murphy and MIT Press",
      "course_url": "https://probml.github.io/pml-book/book1.html",
      "materials_url": "https://probml.github.io/pml-book/solns-public.pdf"
    }
  ],
  "items": [
    {
      "id": "mit-6-100l-finger-06",
      "area": "programming",
      "topic": "data-structures",
      "origin": "external",
      "title": "Bisection search finger exercise",
      "skills": [
        "binary-search",
        "loops",
        "conditionals"
      ],
      "priority": "foundation",
      "difficulty": "easy",
      "estimated_minutes": 10,
      "prerequisites": [
        "integer-arithmetic"
      ],
      "source_id": "mit-6-100l-f2022",
      "locator": {
        "document": "Finger Exercises",
        "label": "Lecture 6"
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-programming-using-python-fall-2022/pages/finger-exercises/#finger-exercise-lecture-6",
        "solution": "https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-programming-using-python-fall-2022/resources/mit6_100l_f22_ex06_sol_pdf/"
      },
      "selection_note": "A small official exercise that separates binary-search reasoning from library use.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-6-100l-finger-11",
      "area": "programming",
      "topic": "python",
      "origin": "external",
      "title": "List mutation and sorting finger exercise",
      "skills": [
        "lists-tuples",
        "mutability"
      ],
      "priority": "foundation",
      "difficulty": "easy",
      "estimated_minutes": 8,
      "prerequisites": [
        "lists"
      ],
      "source_id": "mit-6-100l-f2022",
      "locator": {
        "document": "Finger Exercises",
        "label": "Lecture 11"
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-programming-using-python-fall-2022/pages/finger-exercises/#finger-exercise-lecture-11",
        "solution": "https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-programming-using-python-fall-2022/resources/mit6_100l_f22_ex11_sol_pdf/"
      },
      "selection_note": "Directly tests in-place mutation and ordering semantics.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-6-100l-finger-14",
      "area": "programming",
      "topic": "data-structures",
      "origin": "external",
      "title": "Dictionary selection finger exercise",
      "skills": [
        "dictionaries-sets",
        "hash-map"
      ],
      "priority": "foundation",
      "difficulty": "easy",
      "estimated_minutes": 10,
      "prerequisites": [
        "dictionaries"
      ],
      "source_id": "mit-6-100l-f2022",
      "locator": {
        "document": "Finger Exercises",
        "label": "Lecture 14",
        "solution_pages": "1"
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-programming-using-python-fall-2022/pages/finger-exercises/#finger-exercise-lecture-14",
        "solution": "https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-programming-using-python-fall-2022/resources/mit6_100l_f22_ex14_sol_pdf/"
      },
      "selection_note": "Uses dictionary iteration, filtering, and deterministic output ordering.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-6-100l-finger-15",
      "area": "programming",
      "topic": "recursion",
      "origin": "external",
      "title": "Recursive power finger exercise",
      "skills": [
        "base-case",
        "recursive-trace",
        "recursive-implementation"
      ],
      "priority": "foundation",
      "difficulty": "easy",
      "estimated_minutes": 7,
      "prerequisites": [
        "functions"
      ],
      "source_id": "mit-6-100l-f2022",
      "locator": {
        "document": "Finger Exercises",
        "label": "Lecture 15"
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-programming-using-python-fall-2022/pages/finger-exercises/#finger-exercise-lecture-15",
        "solution": "https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-programming-using-python-fall-2022/resources/mit6_100l_f22_ex15_sol_pdf/"
      },
      "selection_note": "A minimal official check of base and recursive cases.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-6-100l-finger-16",
      "area": "programming",
      "topic": "recursion",
      "origin": "external",
      "title": "Recursive flattening finger exercise",
      "skills": [
        "base-case",
        "recursive-implementation",
        "lists-tuples"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 10,
      "prerequisites": [
        "recursion",
        "lists"
      ],
      "source_id": "mit-6-100l-f2022",
      "locator": {
        "document": "Finger Exercises",
        "label": "Lecture 16"
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-programming-using-python-fall-2022/pages/finger-exercises/#finger-exercise-lecture-16",
        "solution": "https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-programming-using-python-fall-2022/resources/mit6_100l_f22_ex16_sol_pdf/"
      },
      "selection_note": "Adds recursive structural decomposition beyond a scalar recurrence.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-6-100l-finger-23",
      "area": "programming",
      "topic": "python",
      "origin": "external",
      "title": "Asymptotic complexity finger exercise",
      "skills": [
        "complexity",
        "loops"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 10,
      "prerequisites": [
        "loops"
      ],
      "source_id": "mit-6-100l-f2022",
      "locator": {
        "document": "Finger Exercises",
        "label": "Lecture 23"
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-programming-using-python-fall-2022/pages/finger-exercises/#finger-exercise-lecture-23",
        "solution": "https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-programming-using-python-fall-2022/resources/mit6_100l_f22_ex23_sol_pdf/"
      },
      "selection_note": "Tests complexity from actual Python operations rather than memorized algorithm names.",
      "answer_status": "official-solution"
    },
    {
      "id": "google-mlcc-linear-regression-quiz",
      "area": "machine-learning",
      "topic": "regression",
      "origin": "external",
      "title": "Linear regression knowledge check",
      "skills": [
        "linear-regression",
        "squared-loss",
        "gradient-update"
      ],
      "priority": "foundation",
      "difficulty": "easy",
      "estimated_minutes": 10,
      "prerequisites": [
        "algebra"
      ],
      "source_id": "google-mlcc",
      "locator": {
        "document": "Machine Learning Crash Course",
        "label": "Linear regression — Test your knowledge"
      },
      "links": {
        "problem": "https://developers.google.com/machine-learning/crash-course/linear-regression/test-your-knowledge",
        "solution": "https://developers.google.com/machine-learning/crash-course/linear-regression/test-your-knowledge"
      },
      "selection_note": "An authoritative interactive check of the regression objective and training loop.",
      "answer_status": "official-interactive-feedback"
    },
    {
      "id": "google-mlcc-logistic-quiz",
      "area": "machine-learning",
      "topic": "classification",
      "origin": "external",
      "title": "Logistic regression knowledge check",
      "skills": [
        "logistic-regression",
        "cross-entropy",
        "regularization"
      ],
      "priority": "foundation",
      "difficulty": "easy",
      "estimated_minutes": 10,
      "prerequisites": [
        "probability"
      ],
      "source_id": "google-mlcc",
      "locator": {
        "document": "Machine Learning Crash Course",
        "label": "Logistic regression — Test your knowledge"
      },
      "links": {
        "problem": "https://developers.google.com/machine-learning/crash-course/logistic-regression/test-your-knowledge",
        "solution": "https://developers.google.com/machine-learning/crash-course/logistic-regression/test-your-knowledge"
      },
      "selection_note": "Checks probability interpretation, loss, and regularization on the official Google course.",
      "answer_status": "official-interactive-feedback"
    },
    {
      "id": "google-mlcc-classification-quiz",
      "area": "machine-learning",
      "topic": "classification",
      "origin": "external",
      "title": "Classification metrics knowledge check",
      "skills": [
        "confusion-matrix",
        "precision-recall",
        "decision-boundary"
      ],
      "priority": "core",
      "difficulty": "easy",
      "estimated_minutes": 10,
      "prerequisites": [
        "fractions"
      ],
      "source_id": "google-mlcc",
      "locator": {
        "document": "Machine Learning Crash Course",
        "label": "Classification — Test your knowledge"
      },
      "links": {
        "problem": "https://developers.google.com/machine-learning/crash-course/classification/test-your-knowledge",
        "solution": "https://developers.google.com/machine-learning/crash-course/classification/test-your-knowledge"
      },
      "selection_note": "Authoritative questions on threshold-dependent classification metrics.",
      "answer_status": "official-interactive-feedback"
    },
    {
      "id": "google-mlcc-overfitting-quiz",
      "area": "machine-learning",
      "topic": "theory",
      "origin": "external",
      "title": "Generalization and overfitting knowledge check",
      "skills": [
        "generalization",
        "overfitting",
        "train-validation-test",
        "model-complexity",
        "regularization"
      ],
      "priority": "core",
      "difficulty": "easy",
      "estimated_minutes": 10,
      "prerequisites": [
        "training-loss"
      ],
      "source_id": "google-mlcc",
      "locator": {
        "document": "Machine Learning Crash Course",
        "label": "Datasets"
      },
      "links": {
        "problem": "https://developers.google.com/machine-learning/crash-course/overfitting/test-your-knowledge",
        "solution": "https://developers.google.com/machine-learning/crash-course/overfitting/test-your-knowledge"
      },
      "selection_note": "Covers the evaluation distinctions most often confused under time pressure.",
      "answer_status": "official-interactive-feedback"
    },
    {
      "id": "google-mlcc-neural-network-quiz",
      "area": "machine-learning",
      "topic": "neural-networks",
      "origin": "external",
      "title": "Neural-network knowledge check",
      "skills": [
        "forward-pass",
        "activations",
        "backpropagation"
      ],
      "priority": "core",
      "difficulty": "easy",
      "estimated_minutes": 10,
      "prerequisites": [
        "linear-models"
      ],
      "source_id": "google-mlcc",
      "locator": {
        "document": "Machine Learning Crash Course",
        "label": "Neural networks — Test your knowledge"
      },
      "links": {
        "problem": "https://developers.google.com/machine-learning/crash-course/neural-networks/test-your-knowledge",
        "solution": "https://developers.google.com/machine-learning/crash-course/neural-networks/test-your-knowledge"
      },
      "selection_note": "A concise official check of architecture, activations, and training.",
      "answer_status": "official-interactive-feedback"
    },
    {
      "id": "leetcode-20-valid-parentheses",
      "area": "programming",
      "topic": "data-structures",
      "origin": "external",
      "title": "Valid Parentheses",
      "skills": [
        "stack",
        "conditionals"
      ],
      "priority": "foundation",
      "difficulty": "easy",
      "estimated_minutes": 12,
      "prerequisites": [
        "strings"
      ],
      "source_id": "leetcode",
      "locator": {
        "document": "LeetCode Problem Set",
        "label": "Problem 20: Valid Parentheses"
      },
      "links": {
        "problem": "https://leetcode.com/problems/valid-parentheses/",
        "solution": "https://leetcode.com/problems/valid-parentheses/"
      },
      "selection_note": "A standard stack invariant problem with immediate judge feedback on malformed nesting and edge cases.",
      "answer_status": "official-interactive-feedback"
    },
    {
      "id": "leetcode-215-kth-largest",
      "area": "programming",
      "topic": "data-structures",
      "origin": "external",
      "title": "Kth Largest Element in an Array",
      "skills": [
        "heap",
        "complexity"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 20,
      "prerequisites": [
        "arrays",
        "priority-queues"
      ],
      "source_id": "leetcode",
      "locator": {
        "document": "LeetCode Problem Set",
        "label": "Problem 215: Kth Largest Element in an Array"
      },
      "links": {
        "problem": "https://leetcode.com/problems/kth-largest-element-in-an-array/",
        "solution": "https://leetcode.com/problems/kth-largest-element-in-an-array/"
      },
      "selection_note": "Requires selecting an appropriate heap or selection strategy under an explicit complexity target and provides judge feedback.",
      "answer_status": "official-interactive-feedback"
    },
    {
      "id": "leetcode-704-binary-search",
      "area": "programming",
      "topic": "data-structures",
      "origin": "external",
      "title": "Binary Search",
      "skills": [
        "binary-search",
        "conditionals",
        "loops"
      ],
      "priority": "foundation",
      "difficulty": "easy",
      "estimated_minutes": 10,
      "prerequisites": [
        "sorted-arrays"
      ],
      "source_id": "leetcode",
      "locator": {
        "document": "LeetCode Problem Set",
        "label": "Problem 704: Binary Search"
      },
      "links": {
        "problem": "https://leetcode.com/problems/binary-search/",
        "solution": "https://leetcode.com/problems/binary-search/"
      },
      "selection_note": "Tests interval invariants and termination on a canonical sorted-array search with judge feedback.",
      "answer_status": "official-interactive-feedback"
    },
    {
      "id": "leetcode-752-open-the-lock",
      "area": "programming",
      "topic": "data-structures",
      "origin": "external",
      "title": "Open the Lock",
      "skills": [
        "queue",
        "bfs",
        "dictionaries-sets"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 25,
      "prerequisites": [
        "graphs",
        "shortest-path"
      ],
      "source_id": "leetcode",
      "locator": {
        "document": "LeetCode Problem Set",
        "label": "Problem 752: Open the Lock"
      },
      "links": {
        "problem": "https://leetcode.com/problems/open-the-lock/",
        "solution": "https://leetcode.com/problems/open-the-lock/"
      },
      "selection_note": "Models an implicit state graph and requires BFS with visited-state handling; submissions receive judge feedback.",
      "answer_status": "official-interactive-feedback"
    },
    {
      "id": "leetcode-200-number-of-islands",
      "area": "programming",
      "topic": "data-structures",
      "origin": "external",
      "title": "Number of Islands",
      "skills": [
        "dfs",
        "bfs",
        "queue",
        "recursive-implementation"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 25,
      "prerequisites": [
        "grids",
        "graph-traversal"
      ],
      "source_id": "leetcode",
      "locator": {
        "document": "LeetCode Problem Set",
        "label": "Problem 200: Number of Islands"
      },
      "links": {
        "problem": "https://leetcode.com/problems/number-of-islands/",
        "solution": "https://leetcode.com/problems/number-of-islands/"
      },
      "selection_note": "Uses recursive or iterative flood fill to test traversal state, base cases, and component counting with judge feedback.",
      "answer_status": "official-interactive-feedback"
    },
    {
      "id": "mit-18-02sc-f2010-exam2-q1",
      "area": "mathematics",
      "topic": "calculus",
      "origin": "external",
      "title": "Gradient, tangent plane, linearization, and directional derivative",
      "skills": [
        "gradient",
        "directional-derivative"
      ],
      "priority": "core",
      "difficulty": "easy",
      "estimated_minutes": 12,
      "prerequisites": [
        "partial-derivatives"
      ],
      "source_id": "mit-18-02sc-f2010",
      "locator": {
        "document": "Exam 2",
        "label": "Question 1(a–d)",
        "page": 1,
        "solution_pages": "1"
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/18-02sc-multivariable-calculus-fall-2010/resources/mit18_02sc_exam2/",
        "solution": "https://ocw.mit.edu/courses/18-02sc-multivariable-calculus-fall-2010/resources/mit18_02sc_exam2sol/"
      },
      "selection_note": "A fast diagnostic of the multivariable differential concepts most likely to transfer to ML.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-18-02sc-f2010-exam2-q3",
      "area": "mathematics",
      "topic": "calculus",
      "origin": "external",
      "title": "Critical points and constrained domain boundaries",
      "skills": [
        "critical-points"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 14,
      "prerequisites": [
        "partial-derivatives",
        "quadratic-functions"
      ],
      "source_id": "mit-18-02sc-f2010",
      "locator": {
        "document": "Exam 2",
        "label": "Question 3(a–b)",
        "page": 1,
        "solution_pages": "1"
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/18-02sc-multivariable-calculus-fall-2010/resources/mit18_02sc_exam2/",
        "solution": "https://ocw.mit.edu/courses/18-02sc-multivariable-calculus-fall-2010/resources/mit18_02sc_exam2sol/"
      },
      "selection_note": "Separates local critical-point classification from optimization over a constrained region.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-18-02sc-f2010-exam2-q4",
      "area": "mathematics",
      "topic": "calculus",
      "origin": "external",
      "title": "Multivariable chain rule under a change of variables",
      "skills": [
        "chain-rule",
        "partial-derivatives"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 10,
      "prerequisites": [
        "partial-derivatives"
      ],
      "source_id": "mit-18-02sc-f2010",
      "locator": {
        "document": "Exam 2",
        "label": "Question 4(a–c)",
        "page": 1,
        "solution_pages": "1"
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/18-02sc-multivariable-calculus-fall-2010/resources/mit18_02sc_exam2/",
        "solution": "https://ocw.mit.edu/courses/18-02sc-multivariable-calculus-fall-2010/resources/mit18_02sc_exam2sol/"
      },
      "selection_note": "Tests symbolic chain-rule bookkeeping that directly supports backpropagation and reparameterization.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-18-02sc-f2010-exam2-q5",
      "area": "mathematics",
      "topic": "calculus",
      "origin": "external",
      "title": "Lagrange multiplier equations and tangent geometry",
      "skills": [
        "constrained-optimization"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 10,
      "prerequisites": [
        "gradient",
        "implicit-surfaces"
      ],
      "source_id": "mit-18-02sc-f2010",
      "locator": {
        "document": "Exam 2",
        "label": "Question 5(a–b)",
        "page": 1,
        "solution_pages": "2"
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/18-02sc-multivariable-calculus-fall-2010/resources/mit18_02sc_exam2/",
        "solution": "https://ocw.mit.edu/courses/18-02sc-multivariable-calculus-fall-2010/resources/mit18_02sc_exam2sol/"
      },
      "selection_note": "Focuses on setting up constrained optimization and interpreting the shared normal direction.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-18-02sc-f2010-exam2-q6",
      "area": "mathematics",
      "topic": "calculus",
      "origin": "external",
      "title": "Total differentials and implicit differentiation",
      "skills": [
        "implicit-differentiation",
        "linear-systems"
      ],
      "priority": "supplementary",
      "difficulty": "medium",
      "estimated_minutes": 10,
      "prerequisites": [
        "partial-derivatives"
      ],
      "source_id": "mit-18-02sc-f2010",
      "locator": {
        "document": "Exam 2",
        "label": "Question 6",
        "page": 2,
        "solution_pages": "2–3"
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/18-02sc-multivariable-calculus-fall-2010/resources/mit18_02sc_exam2/",
        "solution": "https://ocw.mit.edu/courses/18-02sc-multivariable-calculus-fall-2010/resources/mit18_02sc_exam2sol/"
      },
      "selection_note": "Checks whether local differential constraints can be combined and solved without treating variables as independent.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-18-05-s2022-exam1-q1b",
      "area": "mathematics",
      "topic": "probability",
      "origin": "external",
      "title": "Events, unions, and conditional probability",
      "skills": [
        "event-algebra",
        "inclusion-exclusion",
        "conditional-probability"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 6,
      "prerequisites": [
        "basic-algebra"
      ],
      "source_id": "mit-18-05-s2022",
      "locator": {
        "document": "Exam 1",
        "label": "Question 1(b)",
        "page": 2
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/resources/mit18_05_s22_exam01_pdf/",
        "solution": "https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/resources/mit18_05_s22_exam01_sol_pdf/"
      },
      "selection_note": "A compact check of whether event notation and conditioning are operational rather than merely familiar.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-18-05-s2022-exam1-q3",
      "area": "mathematics",
      "topic": "probability",
      "origin": "external",
      "title": "Joint tables, Bayes rule, and independence",
      "skills": [
        "bayes-rule",
        "independence"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 14,
      "prerequisites": [
        "basic-algebra"
      ],
      "source_id": "mit-18-05-s2022",
      "locator": {
        "document": "Exam 1",
        "label": "Question 3",
        "page": 4
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/resources/mit18_05_s22_exam01_pdf/",
        "solution": "https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/resources/mit18_05_s22_exam01_sol_pdf/"
      },
      "selection_note": "Uses one finite model to test joint and marginal probabilities, reverse conditioning, and independence.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-18-05-s2022-exam1-q4",
      "area": "mathematics",
      "topic": "probability",
      "origin": "external",
      "title": "Diagnostic testing with base rates",
      "skills": [
        "bayes-rule",
        "conditional-probability"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 8,
      "prerequisites": [
        "basic-algebra"
      ],
      "source_id": "mit-18-05-s2022",
      "locator": {
        "document": "Exam 1",
        "label": "Question 4",
        "page": 5
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/resources/mit18_05_s22_exam01_pdf/",
        "solution": "https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/resources/mit18_05_s22_exam01_sol_pdf/"
      },
      "selection_note": "A short, discriminative Bayes calculation whose interpretation transfers directly to ML evaluation.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-18-05-s2022-exam1-q5",
      "area": "mathematics",
      "topic": "probability",
      "origin": "external",
      "title": "Joint density, moments, covariance, and correlation",
      "skills": [
        "joint-marginal-conditional",
        "independence",
        "expectation",
        "variance"
      ],
      "priority": "core",
      "difficulty": "hard",
      "estimated_minutes": 24,
      "prerequisites": [
        "basic-algebra"
      ],
      "source_id": "mit-18-05-s2022",
      "locator": {
        "document": "Exam 1",
        "label": "Question 5",
        "page": 6
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/resources/mit18_05_s22_exam01_pdf/",
        "solution": "https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/resources/mit18_05_s22_exam01_sol_pdf/"
      },
      "selection_note": "Integrates continuous probability, moments, dependence, and a geometric integration region in one coherent problem.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-18-05-s2022-exam1-q6",
      "area": "mathematics",
      "topic": "probability",
      "origin": "external",
      "title": "Central limit theorem for an aggregate",
      "skills": [
        "central-limit-theorem",
        "sums-of-random-variables"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 10,
      "prerequisites": [
        "basic-algebra"
      ],
      "source_id": "mit-18-05-s2022",
      "locator": {
        "document": "Exam 1",
        "label": "Question 6",
        "page": 8
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/resources/mit18_05_s22_exam01_pdf/",
        "solution": "https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/resources/mit18_05_s22_exam01_sol_pdf/"
      },
      "selection_note": "Tests whether the learner can propagate mean and variance and standardize an aggregate.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-18-05-s2022-exam2-i2",
      "area": "mathematics",
      "topic": "statistics",
      "origin": "external",
      "title": "Type I error, Type II error, and power",
      "skills": [
        "null-alternative",
        "type-errors-power"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 5,
      "prerequisites": [
        "basic-algebra"
      ],
      "source_id": "mit-18-05-s2022",
      "locator": {
        "document": "Exam 2",
        "label": "Question I.2",
        "page": 3
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/resources/mit18_05_s22_exam02_pdf/",
        "solution": "https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/resources/mit18_05_s22_exam02_sol_pdf/"
      },
      "selection_note": "A rapid conceptual diagnostic that catches common confusion among significance, power, and error rates.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-18-05-s2022-exam2-ii1",
      "area": "mathematics",
      "topic": "statistics",
      "origin": "external",
      "title": "Maximum likelihood estimation from a density",
      "skills": [
        "likelihood",
        "maximum-likelihood"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 12,
      "prerequisites": [
        "basic-algebra"
      ],
      "source_id": "mit-18-05-s2022",
      "locator": {
        "document": "Exam 2",
        "label": "Question II.1",
        "page": 6
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/resources/mit18_05_s22_exam02_pdf/",
        "solution": "https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/resources/mit18_05_s22_exam02_sol_pdf/"
      },
      "selection_note": "Requires constructing and differentiating a likelihood rather than quoting an estimator.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-18-05-s2022-exam2-ii2",
      "area": "mathematics",
      "topic": "statistics",
      "origin": "external",
      "title": "Bayesian posterior density and normalization",
      "skills": [
        "bayesian-updating"
      ],
      "priority": "core",
      "difficulty": "hard",
      "estimated_minutes": 15,
      "prerequisites": [
        "basic-algebra"
      ],
      "source_id": "mit-18-05-s2022",
      "locator": {
        "document": "Exam 2",
        "label": "Question II.2",
        "page": 7
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/resources/mit18_05_s22_exam02_pdf/",
        "solution": "https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/resources/mit18_05_s22_exam02_sol_pdf/"
      },
      "selection_note": "Tests likelihood construction, prior multiplication, and posterior normalization in a finite-outcome model.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-18-05-s2022-exam2-ii4",
      "area": "mathematics",
      "topic": "statistics",
      "origin": "external",
      "title": "One-sided test, critical value, and p-value",
      "skills": [
        "null-alternative",
        "p-values-critical-regions"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 12,
      "prerequisites": [
        "basic-algebra"
      ],
      "source_id": "mit-18-05-s2022",
      "locator": {
        "document": "Exam 2",
        "label": "Question II.4",
        "page": 9
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/resources/mit18_05_s22_exam02_pdf/",
        "solution": "https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/resources/mit18_05_s22_exam02_sol_pdf/"
      },
      "selection_note": "Connects a rejection region, significance level, observed statistic, and p-value without relying on one mnemonic.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-18-05-s2022-exam2-ii5",
      "area": "mathematics",
      "topic": "statistics",
      "origin": "external",
      "title": "Chi-square test for a contingency table",
      "skills": [
        "goodness-of-fit",
        "chi-square"
      ],
      "priority": "core",
      "difficulty": "hard",
      "estimated_minutes": 18,
      "prerequisites": [
        "basic-algebra"
      ],
      "source_id": "mit-18-05-s2022",
      "locator": {
        "document": "Exam 2",
        "label": "Question II.5",
        "page": 10
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/resources/mit18_05_s22_exam02_pdf/",
        "solution": "https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/resources/mit18_05_s22_exam02_sol_pdf/"
      },
      "selection_note": "Checks end-to-end statistical reasoning from hypotheses through expected counts to a justified decision.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-18-06-s2010-exam1-q2",
      "area": "mathematics",
      "topic": "linear-algebra",
      "origin": "external",
      "title": "Nullspace, column space, pivots, and block structure",
      "skills": [
        "matrix-operations",
        "linear-systems",
        "row-reduction",
        "subspaces",
        "rank",
        "rank-nullity"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 14,
      "prerequisites": [
        "linear-systems",
        "reduced-row-echelon-form"
      ],
      "source_id": "mit-18-06-s2010",
      "locator": {
        "document": "Quiz 1 (listed by OCW as Exam 1)",
        "label": "Question 2(a–c)",
        "page": 2,
        "solution_pages": "2–3"
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/18-06-linear-algebra-spring-2010/resources/mit18_06s10_exam1_s10/",
        "solution": "https://ocw.mit.edu/courses/18-06-linear-algebra-spring-2010/resources/mit18_06s10_exam1_s10_sol/"
      },
      "selection_note": "Distinguishes procedural row reduction from geometric understanding of the four fundamental subspaces.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-18-06-s2010-exam2-q1",
      "area": "mathematics",
      "topic": "linear-algebra",
      "origin": "external",
      "title": "Projection matrix as geometry and spectrum",
      "skills": [
        "projection",
        "eigenvalues"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 15,
      "prerequisites": [
        "orthogonality",
        "outer-products"
      ],
      "source_id": "mit-18-06-s2010",
      "locator": {
        "document": "Quiz 2 (listed by OCW as Exam 2)",
        "label": "Question 1(a–c)",
        "page": 1,
        "solution_pages": "1–3"
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/18-06-linear-algebra-spring-2010/resources/mit18_06s10_exam2_s10/",
        "solution": "https://ocw.mit.edu/courses/18-06-linear-algebra-spring-2010/resources/mit18_06s10_exam2_s10_soln/"
      },
      "selection_note": "Connects a projection formula to its subspaces and eigenstructure, a high-value ML pattern.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-18-06-s2010-exam2-q2",
      "area": "mathematics",
      "topic": "linear-algebra",
      "origin": "external",
      "title": "Least squares, QR, and orthonormal projection",
      "skills": [
        "least-squares",
        "normal-equations",
        "qr",
        "projection",
        "orthogonality"
      ],
      "priority": "core",
      "difficulty": "hard",
      "estimated_minutes": 18,
      "prerequisites": [
        "orthogonality",
        "matrix-inverse"
      ],
      "source_id": "mit-18-06-s2010",
      "locator": {
        "document": "Quiz 2 (listed by OCW as Exam 2)",
        "label": "Question 2(a–c)",
        "page": 2,
        "solution_pages": "4"
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/18-06-linear-algebra-spring-2010/resources/mit18_06s10_exam2_s10/",
        "solution": "https://ocw.mit.edu/courses/18-06-linear-algebra-spring-2010/resources/mit18_06s10_exam2_s10_soln/"
      },
      "selection_note": "Tests the derivation and interpretation of least squares rather than formula recall alone.",
      "source_caveat": "The official solution's wording about dependent columns can blur the distinction between the unique fitted vector and potentially non-unique coefficient vectors.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-18-06-s2010-exam3-q1",
      "area": "mathematics",
      "topic": "linear-algebra",
      "origin": "external",
      "title": "Symmetry, orthogonality, and eigenspaces",
      "skills": [
        "symmetric-matrices",
        "eigenvalues",
        "diagonalization"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 16,
      "prerequisites": [
        "outer-products",
        "orthogonal-complements"
      ],
      "source_id": "mit-18-06-s2010",
      "locator": {
        "document": "Quiz 3 (listed by OCW as Exam 3)",
        "label": "Question 1(a–d)",
        "page": 1,
        "solution_pages": "1"
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/18-06-linear-algebra-spring-2010/resources/mit18_06s10_exam3_s10/",
        "solution": "https://ocw.mit.edu/courses/18-06-linear-algebra-spring-2010/resources/mit18_06s10_exam3_s10_soln/"
      },
      "selection_note": "Uses a structured matrix to test proof, geometry, multiplicity, and trace in one compact question.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-18-06-s2010-exam3-q2",
      "area": "mathematics",
      "topic": "linear-algebra",
      "origin": "external",
      "title": "Positive definite and semidefinite transformations",
      "skills": [
        "positive-definiteness",
        "quadratic-forms"
      ],
      "priority": "core",
      "difficulty": "hard",
      "estimated_minutes": 14,
      "prerequisites": [
        "eigenvalues",
        "quadratic-forms"
      ],
      "source_id": "mit-18-06-s2010",
      "locator": {
        "document": "Quiz 3 (listed by OCW as Exam 3)",
        "label": "Question 2(a–c)",
        "page": 2,
        "solution_pages": "2"
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/18-06-linear-algebra-spring-2010/resources/mit18_06s10_exam3_s10/",
        "solution": "https://ocw.mit.edu/courses/18-06-linear-algebra-spring-2010/resources/mit18_06s10_exam3_s10_soln/"
      },
      "selection_note": "Exercises three interchangeable tests for positive definiteness and a useful block-matrix argument.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-18-06-s2010-exam3-q3c",
      "area": "mathematics",
      "topic": "linear-algebra",
      "origin": "external",
      "title": "Singular value decomposition from the Gram matrix",
      "skills": [
        "svd",
        "orthogonality"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 10,
      "prerequisites": [
        "eigenvalues",
        "orthogonality"
      ],
      "source_id": "mit-18-06-s2010",
      "locator": {
        "document": "Quiz 3 (listed by OCW as Exam 3)",
        "label": "Question 3(c)",
        "page": 3,
        "solution_pages": "3"
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/18-06-linear-algebra-spring-2010/resources/mit18_06s10_exam3_s10/",
        "solution": "https://ocw.mit.edu/courses/18-06-linear-algebra-spring-2010/resources/mit18_06s10_exam3_s10_soln/"
      },
      "selection_note": "A compact check that the learner can construct an SVD from the eigendecomposition of a Gram matrix.",
      "source_caveat": "The official solution's explanatory sentence reverses conventional left/right singular-vector labels, although its displayed factor matrices are consistent with the standard SVD.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-6-036-s2018-final-q9",
      "area": "machine-learning",
      "topic": "convolution",
      "origin": "external",
      "title": "Convolutional representation and detector design",
      "skills": [
        "convolution-operation",
        "output-shape",
        "receptive-field"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 18,
      "prerequisites": [
        "matrix-indexing",
        "relu"
      ],
      "source_id": "mit-6-036-exams",
      "locator": {
        "document": "Spring 2018 Final Exam",
        "label": "Question 9: Convoluted network",
        "page_label": "problem PDF pp. 23–24",
        "solution_pages": "23–24"
      },
      "links": {
        "problem": "https://introml.mit.edu/_static/spring23/final/review/Spring18-final.pdf#page=23",
        "solution": "https://introml.mit.edu/_static/spring23/final/review/Spring18-final-solutions.pdf#page=23"
      },
      "selection_note": "Requires an actual convolution and composes small filters into a deeper detector instead of testing shape recall alone.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-6-036-s2019-final-q4",
      "area": "machine-learning",
      "topic": "convolution",
      "origin": "external",
      "title": "CNN shapes, pooling, and backpropagation",
      "skills": [
        "convolution-operation",
        "output-shape",
        "parameter-count",
        "pooling"
      ],
      "priority": "supplementary",
      "difficulty": "hard",
      "estimated_minutes": 25,
      "prerequisites": [
        "backpropagation",
        "max-pooling",
        "sgd"
      ],
      "source_id": "mit-6-036-exams",
      "locator": {
        "document": "Spring 2019 Final Exam",
        "label": "Question 4: CNN Backpropagation",
        "page_label": "problem PDF pp. 10–12",
        "solution_pages": "10–12"
      },
      "links": {
        "problem": "https://introml.mit.edu/_static/spring23/final/review/final_spring2019.pdf#page=10",
        "solution": "https://introml.mit.edu/_static/spring23/final/review/final_solutions_spring2019.pdf#page=10"
      },
      "selection_note": "Integrates convolutional shapes, loss choice, differentiation through convolution and pooling, and an SGD debugging decision.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-6-036-s2019-midterm-q5",
      "area": "machine-learning",
      "topic": "optimization",
      "origin": "external",
      "title": "Learning as optimization",
      "skills": [
        "objective-functions",
        "convexity",
        "optimization-diagnostics",
        "stationary-points"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 18,
      "prerequisites": [
        "derivatives",
        "gradient-descent",
        "loss-functions"
      ],
      "source_id": "mit-6-036-exams",
      "locator": {
        "document": "Spring 2019 Midterm Exam",
        "label": "Question 5: Learning as Optimization",
        "page_label": "problem PDF pp. 15–16",
        "solution_pages": "15–16"
      },
      "links": {
        "problem": "https://introml.mit.edu/_static/spring23/midterm/review/midterm_spring2019.pdf#page=15",
        "solution": "https://introml.mit.edu/_static/spring23/midterm/review/midterm_solutions_spring2019.pdf#page=15"
      },
      "selection_note": "Derives an update and distinguishes slow, oscillating, and divergent learning-rate behavior from objective geometry.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-6-036-s2019-midterm-q4",
      "area": "machine-learning",
      "topic": "theory",
      "origin": "external",
      "title": "Diagnose model evaluation failures",
      "skills": [
        "bias-variance",
        "generalization",
        "overfitting",
        "train-validation-test",
        "model-complexity"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 15,
      "prerequisites": [
        "classification-metrics"
      ],
      "source_id": "mit-6-036-exams",
      "locator": {
        "document": "Spring 2019 Midterm Exam",
        "label": "Question 4: Model Evaluation",
        "page_label": "problem PDF pp. 13–14",
        "solution_pages": "13–14"
      },
      "links": {
        "problem": "https://introml.mit.edu/_static/spring23/midterm/review/midterm_spring2019.pdf#page=13",
        "solution": "https://introml.mit.edu/_static/spring23/midterm/review/midterm_solutions_spring2019.pdf#page=13"
      },
      "selection_note": "Uses observed train and held-out behavior to separate overfitting, insufficient expressivity, data scarcity, and distribution shift.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-6-100l-finger-05",
      "area": "programming",
      "topic": "control-flow",
      "origin": "external",
      "title": "Even-indexed characters finger exercise",
      "skills": [
        "conditionals",
        "loops",
        "strings"
      ],
      "priority": "foundation",
      "difficulty": "easy",
      "estimated_minutes": 5,
      "prerequisites": [
        "string-indexing"
      ],
      "source_id": "mit-6-100l-f2022",
      "locator": {
        "document": "Finger Exercises",
        "label": "Finger Exercise Lecture 5"
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-programming-using-python-fall-2022/pages/finger-exercises/#finger-exercise-lecture-5",
        "solution": "https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-programming-using-python-fall-2022/resources/mit6_100l_f22_ex05_sol_pdf/"
      },
      "selection_note": "Uses a compact string traversal to test index parity, loop state, and output construction.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-6-100l-finger-08",
      "area": "programming",
      "topic": "control-flow",
      "origin": "external",
      "title": "Compare character sets in two strings",
      "skills": [
        "conditionals",
        "loops",
        "strings"
      ],
      "priority": "core",
      "difficulty": "easy",
      "estimated_minutes": 6,
      "prerequisites": [
        "membership"
      ],
      "source_id": "mit-6-100l-f2022",
      "locator": {
        "document": "Finger Exercises",
        "label": "Finger Exercise Lecture 8"
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-programming-using-python-fall-2022/pages/finger-exercises/#finger-exercise-lecture-8",
        "solution": "https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-programming-using-python-fall-2022/resources/mit6_100l_f22_ex08_sol_pdf/"
      },
      "selection_note": "Tests bidirectional membership reasoning rather than only one pass over one string.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-6-100l-finger-17",
      "area": "programming",
      "topic": "python",
      "origin": "external",
      "title": "Circle class and value equality",
      "skills": [
        "classes",
        "value-equality",
        "functions"
      ],
      "priority": "supplementary",
      "difficulty": "medium",
      "estimated_minutes": 12,
      "prerequisites": [
        "methods",
        "object-state"
      ],
      "source_id": "mit-6-100l-f2022",
      "locator": {
        "document": "Finger Exercises",
        "label": "Finger Exercise Lecture 17"
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-programming-using-python-fall-2022/pages/finger-exercises/#finger-exercise-lecture-17",
        "solution": "https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-programming-using-python-fall-2022/resources/mit6_100l_f22_ex17_sol_pdf/"
      },
      "selection_note": "Exercises object state, accessors, mutation, and explicit value equality through a small class contract.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-6-100l-finger-19",
      "area": "programming",
      "topic": "data-structures",
      "origin": "external",
      "title": "Stack subclass implementation",
      "skills": [
        "stack",
        "classes",
        "lists-tuples"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 15,
      "prerequisites": [
        "lists",
        "methods"
      ],
      "source_id": "mit-6-100l-f2022",
      "locator": {
        "document": "Finger Exercises",
        "label": "Finger Exercise Lecture 19"
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-programming-using-python-fall-2022/pages/finger-exercises/#finger-exercise-lecture-19",
        "solution": "https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-programming-using-python-fall-2022/resources/mit6_100l_f22_ex19_sol_pdf/"
      },
      "selection_note": "Implements a LIFO abstraction while distinguishing inherited container behavior from stack-specific removal.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-18-01sc-f2010-final-foundations",
      "area": "mathematics",
      "topic": "calculus",
      "origin": "external",
      "title": "Single-variable calculus foundation check",
      "skills": [
        "limits-continuity",
        "single-variable-calculus",
        "taylor-approximation"
      ],
      "priority": "foundation",
      "difficulty": "easy",
      "estimated_minutes": 24,
      "prerequisites": [
        "polynomials"
      ],
      "source_id": "mit-18-01sc-f2010",
      "locator": {
        "document": "Final Exam",
        "label": "Questions 1(a), 3(b), 8(b), and 14(a,c)",
        "page_label": "problem PDF pp. 1, 3, 8, 14–15",
        "solution_pages": "1, 2, 6, 11–12"
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/18-01sc-single-variable-calculus-fall-2010/resources/mit18_01scf10_final/",
        "solution": "https://ocw.mit.edu/courses/18-01sc-single-variable-calculus-fall-2010/resources/mit18_01scf10_finalsol/"
      },
      "selection_note": "Uses official exam questions to check differentiation, a limit, definite integration, and Taylor approximation independently.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-18-05-s2022-pset11-q1",
      "area": "mathematics",
      "topic": "statistics",
      "origin": "external",
      "title": "Confidence intervals with known and unknown variance",
      "skills": [
        "confidence-intervals",
        "standard-error",
        "sampling-distributions"
      ],
      "priority": "core",
      "difficulty": "easy",
      "estimated_minutes": 14,
      "prerequisites": [
        "gaussian-distribution"
      ],
      "source_id": "mit-18-05-s2022",
      "locator": {
        "document": "Problem Set 11",
        "label": "Problem 1(a–c)",
        "page": 1,
        "solution_pages": "1"
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/resources/mit18_05_s22_pset11_pdf/",
        "solution": "https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/resources/mit18_05_s22_pset11_sol_pdf/"
      },
      "selection_note": "Contrasts t and z intervals on the same data and extends the calculation to sample-size planning.",
      "answer_status": "official-solution"
    },
    {
      "id": "mit-18-05-s2022-pset6-q2",
      "area": "mathematics",
      "topic": "statistics",
      "origin": "external",
      "title": "Simple linear regression from Gaussian maximum likelihood",
      "skills": [
        "simple-linear-regression",
        "maximum-likelihood",
        "likelihood"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 25,
      "prerequisites": [
        "gaussian-distribution",
        "partial-derivatives"
      ],
      "source_id": "mit-18-05-s2022",
      "locator": {
        "document": "Problem Set 6",
        "label": "Problem 2(a–b)",
        "page_label": "problem PDF pp. 1–2",
        "solution_pages": "1–3"
      },
      "links": {
        "problem": "https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/resources/mit18_05_s22_pset06_pdf/",
        "solution": "https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/resources/mit18_05_s22_pset06_sol_pdf/"
      },
      "selection_note": "Derives a fitted line from an explicit Gaussian error model, linking regression, likelihood, and least squares.",
      "answer_status": "official-solution"
    },
    {
      "id": "original-la-foundations",
      "area": "mathematics",
      "topic": "linear-algebra",
      "origin": "original",
      "title": "Matrix fundamentals under time pressure",
      "skills": [
        "matrix-operations",
        "inverse",
        "determinant-trace",
        "matrix-norms"
      ],
      "priority": "foundation",
      "difficulty": "easy",
      "estimated_minutes": 8,
      "prerequisites": [
        "matrix-arithmetic"
      ],
      "prompt": "Let\n$$\nA = \\begin{bmatrix} 1 & 2 \\\\ 3 & 4 \\end{bmatrix}.\n$$\nCompute $\\det(A)$, $\\operatorname{tr}(A)$, $A^{-1}$, and the Frobenius norm $\\lVert A \\rVert_F$. State whether $A$ is invertible and justify the answer in one sentence.\n",
      "answer": "$$\n\\det(A) = -2, \\qquad \\operatorname{tr}(A) = 5, \\qquad\nA^{-1} = \\begin{bmatrix} -2 & 1 \\\\ \\frac{3}{2} & -\\frac{1}{2} \\end{bmatrix}, \\qquad\n\\lVert A \\rVert_F = \\sqrt{30}.\n$$\n$A$ is invertible because its determinant is nonzero.\n",
      "check": {
        "kind": "numeric",
        "id": "original-la-foundations",
        "values": [
          -2,
          5,
          -2,
          1,
          1.5,
          -0.5,
          30
        ]
      }
    },
    {
      "id": "original-la-basis-change",
      "area": "mathematics",
      "topic": "linear-algebra",
      "origin": "original",
      "title": "Basis, dimension, and coordinates",
      "skills": [
        "independence",
        "basis-dimension",
        "change-of-basis"
      ],
      "priority": "foundation",
      "difficulty": "easy",
      "estimated_minutes": 8,
      "prerequisites": [
        "linear-combinations"
      ],
      "prompt": "In $\\mathbb{R}^3$, let $v_1 = (1,0,1)$, $v_2 = (0,1,1)$, and $v_3 = (1,1,2)$. Determine a basis and dimension for their span. Express $x = (2,3,5)$ in your chosen basis.\n",
      "answer": "Since $v_3 = v_1 + v_2$, the set $\\{v_1,v_2\\}$ is a basis and the span has dimension $2$. Since $x = 2v_1 + 3v_2$, its coordinates in that basis are $(2,3)$.\n",
      "check": {
        "kind": "numeric",
        "id": "original-la-basis-change",
        "values": [
          2,
          2,
          3
        ]
      }
    },
    {
      "id": "original-la-low-rank",
      "area": "mathematics",
      "topic": "linear-algebra",
      "origin": "original",
      "title": "Low-rank error and explained variance",
      "skills": [
        "svd",
        "low-rank-approximation",
        "pca-connection",
        "svd-pca"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 8,
      "prerequisites": [
        "singular-values"
      ],
      "prompt": "A centered data matrix has singular values $5$, $2$, and $1$. Find the Frobenius error of its best rank-$1$ approximation and the fraction of total squared variation retained by the first principal component.\n",
      "answer": "The best rank-$1$ error is\n$$\n\\sqrt{2^2 + 1^2} = \\sqrt{5}.\n$$\nThe retained fraction is\n$$\n\\frac{5^2}{5^2 + 2^2 + 1^2} = \\frac{25}{30} = \\frac{5}{6}.\n$$\n",
      "check": {
        "kind": "numeric",
        "id": "original-la-low-rank",
        "values": [
          5,
          0.8333333333333334
        ]
      }
    },
    {
      "id": "original-calc-jacobian",
      "area": "mathematics",
      "topic": "calculus",
      "origin": "original",
      "title": "Jacobian and chain rule",
      "skills": [
        "partial-derivatives",
        "jacobian",
        "chain-rule",
        "gradient"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 10,
      "prerequisites": [
        "partial-derivatives"
      ],
      "prompt": "Let $F(x,y) = (xy, x+y^2)$ and $g(u,v) = u+v^2$. Compute $J_F$ at $(1,2)$ and the gradient of $g(F(x,y))$ at $(1,2)$.\n",
      "answer": "$$\nJ_F(1,2) = \\begin{bmatrix} 2 & 1 \\\\ 1 & 4 \\end{bmatrix}.\n$$\nSince $F(1,2)=(2,5)$, we have $\\nabla g=(1,10)$ in $(u,v)$ coordinates. Therefore,\n$$\nJ_F(1,2)^{\\mathsf T}\\nabla g(F(1,2)) = (12,41).\n$$\n",
      "check": {
        "kind": "numeric",
        "id": "original-calc-jacobian",
        "values": [
          2,
          1,
          1,
          4,
          12,
          41
        ]
      }
    },
    {
      "id": "original-calc-matrix",
      "area": "mathematics",
      "topic": "calculus",
      "origin": "original",
      "title": "Matrix gradient and Hessian",
      "skills": [
        "matrix-calculus",
        "gradient",
        "hessian",
        "convexity"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 10,
      "prerequisites": [
        "matrix-multiplication",
        "chain-rule"
      ],
      "prompt": "For\n$$\nf(w) = \\lVert Xw-y \\rVert_2^2 + \\lambda \\lVert w \\rVert_2^2,\n$$\nderive the gradient and Hessian. State a sufficient condition for strict convexity.\n",
      "answer": "$$\n\\nabla f(w) = 2X^{\\mathsf T}(Xw-y) + 2\\lambda w,\n\\qquad\n\\nabla^2 f(w) = 2X^{\\mathsf T}X + 2\\lambda I.\n$$\nIt is strictly convex if $\\lambda>0$, or if $X$ has full column rank when $\\lambda=0$.\n",
      "check": {
        "kind": "symbolic",
        "id": "original-calc-matrix",
        "values": [
          2,
          2
        ]
      }
    },
    {
      "id": "original-prob-distributions",
      "area": "mathematics",
      "topic": "probability",
      "origin": "original",
      "title": "Recognize distribution moments",
      "skills": [
        "discrete-random-variables",
        "continuous-random-variables",
        "named-distributions",
        "sums-of-random-variables",
        "expectation",
        "variance"
      ],
      "priority": "foundation",
      "difficulty": "easy",
      "estimated_minutes": 8,
      "prerequisites": [
        "random-variables"
      ],
      "prompt": "Give the mean and variance of $\\operatorname{Binomial}(n,p)$, $\\operatorname{Poisson}(\\lambda)$, $\\operatorname{Exponential}(\\lambda)$ under the rate parameterization, and $\\mathcal{N}(\\mu,\\sigma^2)$. Then identify the distribution of a sum of independent Poisson variables.\n",
      "answer": "- $\\operatorname{Binomial}(n,p)$: mean $np$ and variance $np(1-p)$.\n- $\\operatorname{Poisson}(\\lambda)$: mean $\\lambda$ and variance $\\lambda$.\n- $\\operatorname{Exponential}(\\lambda)$: mean $1/\\lambda$ and variance $1/\\lambda^2$.\n- $\\mathcal{N}(\\mu,\\sigma^2)$: mean $\\mu$ and variance $\\sigma^2$.\n\nIndependent Poisson variables sum to a Poisson variable with rate equal to the sum of the rates.\n",
      "check": {
        "kind": "symbolic",
        "id": "original-prob-distributions",
        "values": [
          1,
          1
        ]
      }
    },
    {
      "id": "original-prob-total-variance",
      "area": "mathematics",
      "topic": "probability",
      "origin": "original",
      "title": "Conditional expectation and total variance",
      "skills": [
        "conditional-expectation",
        "total-expectation-variance",
        "expectation",
        "variance"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 8,
      "prerequisites": [
        "conditional-probability"
      ],
      "prompt": "Let $Z \\sim \\operatorname{Bernoulli}(1/2)$. Conditional on $Z=0$, $X$ has mean $0$ and variance $1$; conditional on $Z=1$, $X$ has mean $2$ and variance $3$. Compute $\\mathbb{E}[X]$ and $\\operatorname{Var}(X)$.\n",
      "answer": "We have $\\mathbb{E}[X]=1$. Also,\n$$\n\\mathbb{E}[\\operatorname{Var}(X\\mid Z)] = \\frac{1+3}{2} = 2\n$$\nand\n$$\n\\operatorname{Var}(\\mathbb{E}[X\\mid Z]) = 1,\n$$\nbecause $\\mathbb{E}[X\\mid Z]$ equals $0$ or $2$ with equal probability. Therefore, $\\operatorname{Var}(X)=3$.\n",
      "check": {
        "kind": "numeric",
        "id": "original-prob-total-variance",
        "values": [
          1,
          3
        ]
      }
    },
    {
      "id": "original-prob-gaussian",
      "area": "mathematics",
      "topic": "probability",
      "origin": "original",
      "title": "Linear transform of a multivariate Gaussian",
      "skills": [
        "multivariate-gaussian",
        "transformations",
        "covariance-correlation"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 8,
      "prerequisites": [
        "matrix-multiplication",
        "gaussian-distribution"
      ],
      "prompt": "Let $X \\sim \\mathcal{N}(\\mu,\\Sigma)$, where\n$$\n\\mu = \\begin{bmatrix} 1 \\\\ 2 \\end{bmatrix},\n\\qquad\n\\Sigma = \\begin{bmatrix} 2 & 1 \\\\ 1 & 3 \\end{bmatrix},\n\\qquad\nY = \\begin{bmatrix} 1 & -1 \\end{bmatrix}X + 2.\n$$\nFind the distribution of $Y$.\n",
      "answer": "$Y$ is Gaussian with mean\n$$\n\\begin{bmatrix} 1 & -1 \\end{bmatrix}\\mu + 2 = 1\n$$\nand variance\n$$\n\\begin{bmatrix} 1 & -1 \\end{bmatrix}\n\\Sigma\n\\begin{bmatrix} 1 & -1 \\end{bmatrix}^{\\mathsf T} = 3.\n$$\nTherefore, $Y \\sim \\mathcal{N}(1,3)$.\n",
      "check": {
        "kind": "numeric",
        "id": "original-prob-gaussian",
        "values": [
          1,
          3
        ]
      }
    },
    {
      "id": "original-prob-foundations",
      "area": "mathematics",
      "topic": "probability",
      "origin": "original",
      "title": "Counting, total probability, and independence",
      "skills": [
        "counting",
        "conditional-probability",
        "independence"
      ],
      "priority": "foundation",
      "difficulty": "easy",
      "estimated_minutes": 7,
      "prerequisites": [
        "fractions"
      ],
      "prompt": "A class has $6$ students, $4$ of whom use Python. Two students are selected uniformly without replacement. Find the probability that both use Python. Then state whether the two selection indicators are independent.\n",
      "answer": "The probability is\n$$\n\\frac{\\binom{4}{2}}{\\binom{6}{2}} = \\frac{6}{15} = \\frac{2}{5}.\n$$\nThe indicators are not independent because sampling without replacement changes the second probability after the first outcome.\n",
      "check": {
        "kind": "numeric",
        "id": "original-prob-foundations",
        "values": [
          0.4
        ]
      }
    },
    {
      "id": "original-prob-lln",
      "area": "mathematics",
      "topic": "probability",
      "origin": "original",
      "title": "LLN versus CLT",
      "skills": [
        "law-of-large-numbers",
        "central-limit-theorem"
      ],
      "priority": "core",
      "difficulty": "easy",
      "estimated_minutes": 5,
      "prerequisites": [
        "expectation",
        "variance"
      ],
      "prompt": "For i.i.d. variables with mean $\\mu$ and finite variance $\\sigma^2$, state what the law of large numbers says about the sample mean $\\overline{X}_n$ and what the central limit theorem says about its standardized error.\n",
      "answer": "The law of large numbers says\n$$\n\\overline{X}_n \\xrightarrow{p} \\mu.\n$$\nThe central limit theorem says\n$$\n\\frac{\\sqrt{n}(\\overline{X}_n-\\mu)}{\\sigma}\n\\xrightarrow{d} \\mathcal{N}(0,1).\n$$\n",
      "check": {
        "kind": "symbolic",
        "id": "original-prob-lln",
        "values": [
          1
        ]
      }
    },
    {
      "id": "original-stats-estimator",
      "area": "mathematics",
      "topic": "statistics",
      "origin": "original",
      "title": "Bias, variance, MSE, and consistency",
      "skills": [
        "samples-statistics",
        "sampling-distributions",
        "estimator-bias-variance-mse",
        "consistency",
        "standard-error"
      ],
      "priority": "foundation",
      "difficulty": "easy",
      "estimated_minutes": 7,
      "prerequisites": [
        "expectation",
        "variance"
      ],
      "prompt": "For i.i.d. observations with mean $\\mu$ and variance $\\sigma^2$, analyze the sample mean $\\overline{X}_n$ as an estimator of $\\mu$: give its bias, variance, MSE, standard error, and whether it is consistent.\n",
      "answer": "The bias is $0$; the variance and MSE are $\\sigma^2/n$; and the standard error is $\\sigma/\\sqrt{n}$. It is consistent because the variance tends to zero and the estimator is unbiased.\n",
      "check": {
        "kind": "symbolic",
        "id": "original-stats-estimator",
        "values": [
          0,
          1
        ]
      }
    },
    {
      "id": "original-stats-mom-map",
      "area": "mathematics",
      "topic": "statistics",
      "origin": "original",
      "title": "Method of moments and Bayesian updating",
      "skills": [
        "method-of-moments",
        "map",
        "bayesian-updating",
        "likelihood"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 10,
      "prerequisites": [
        "exponential-distribution",
        "beta-distribution"
      ],
      "prompt": "For $\\operatorname{Exponential}(\\lambda)$ data under the rate parameterization, derive the method-of-moments estimate. Separately, with a $\\operatorname{Beta}(2,2)$ prior and $7$ successes in $10$ Bernoulli trials, give the posterior and its MAP.\n",
      "answer": "Matching $\\mathbb{E}[X]=1/\\lambda$ to the sample mean gives\n$$\n\\widehat{\\lambda} = \\frac{1}{\\overline{X}}.\n$$\nThe posterior is $\\operatorname{Beta}(9,5)$, whose MAP is\n$$\n\\frac{9-1}{9+5-2} = \\frac{2}{3}.\n$$\n",
      "check": {
        "kind": "numeric",
        "id": "original-stats-mom-map",
        "values": [
          9,
          5,
          0.6666666666666666
        ]
      }
    },
    {
      "id": "original-ml-regression",
      "area": "machine-learning",
      "topic": "regression",
      "origin": "original",
      "title": "Linear regression objective and gradient",
      "skills": [
        "linear-regression",
        "squared-loss",
        "regression-gradient"
      ],
      "priority": "foundation",
      "difficulty": "easy",
      "estimated_minutes": 8,
      "prerequisites": [
        "matrix-multiplication",
        "derivatives"
      ],
      "prompt": "For $X=\\begin{bmatrix}1&0\\\\1&1\\end{bmatrix}$, $\\mathbf{y}=(1,3)$, and $\\mathbf{w}=(0,0)$, use\n\n$$L(\\mathbf{w})=\\frac{1}{2}\\lVert X\\mathbf{w}-\\mathbf{y}\\rVert_2^2.$$\n\nCompute $L$, its gradient, and one gradient-descent update with learning rate $0.1$.\n",
      "answer": "$L=5$. The gradient is\n\n$$\\nabla_{\\mathbf{w}}L=X^\\top(X\\mathbf{w}-\\mathbf{y})=(-4,-3),$$\n\nso the update is $\\mathbf{w}=(0.4,0.3)$.\n",
      "check": {
        "kind": "numeric",
        "id": "original-ml-regression",
        "values": [
          5,
          -4,
          -3,
          0.4,
          0.3
        ]
      }
    },
    {
      "id": "original-ml-logistic",
      "area": "machine-learning",
      "topic": "classification",
      "origin": "original",
      "title": "Logistic probability and cross-entropy",
      "skills": [
        "logistic-regression",
        "cross-entropy",
        "decision-boundary"
      ],
      "priority": "foundation",
      "difficulty": "easy",
      "estimated_minutes": 6,
      "prerequisites": [
        "logarithms"
      ],
      "prompt": "A binary logistic model produces logit $z=\\ln(3)$ for a positive example $y=1$. Compute $p(y=1\\mid\\mathbf{x})$, the predicted class at threshold $0.5$, and binary cross-entropy loss.\n",
      "answer": "$$\\sigma(\\ln 3)=\\frac{3}{4},$$\n\nso the predicted class is $1$, and the loss is\n\n$$-\\ln\\left(\\frac{3}{4}\\right)=\\ln\\left(\\frac{4}{3}\\right)\\approx 0.28768.$$\n",
      "check": {
        "kind": "numeric",
        "id": "original-ml-logistic",
        "values": [
          0.75,
          1,
          0.2876820724517809
        ]
      }
    },
    {
      "id": "original-ml-metrics",
      "area": "machine-learning",
      "topic": "classification",
      "origin": "original",
      "title": "Classification metrics from counts",
      "skills": [
        "confusion-matrix",
        "precision-recall"
      ],
      "priority": "foundation",
      "difficulty": "easy",
      "estimated_minutes": 6,
      "prerequisites": [
        "fractions"
      ],
      "prompt": "A classifier has $\\mathrm{TP}=30$, $\\mathrm{FP}=10$, $\\mathrm{FN}=20$, and $\\mathrm{TN}=40$. Compute accuracy, precision, recall, and $F_1$.\n",
      "answer": "Accuracy is $0.70$, precision is $0.75$, recall is $0.60$, and\n\n$$F_1=\\frac{2(0.75)(0.60)}{0.75+0.60}=\\frac{2}{3}.$$\n",
      "check": {
        "kind": "numeric",
        "id": "original-ml-metrics",
        "values": [
          0.7,
          0.75,
          0.6,
          0.6666666666666666
        ]
      }
    },
    {
      "id": "original-ml-gd",
      "area": "machine-learning",
      "topic": "gradient-descent",
      "origin": "original",
      "title": "Gradient descent on a quadratic",
      "skills": [
        "gradient-update",
        "learning-rate",
        "convergence"
      ],
      "priority": "core",
      "difficulty": "easy",
      "estimated_minutes": 7,
      "prerequisites": [
        "derivatives"
      ],
      "prompt": "For $f(w)=(w-3)^2$, start at $w_0=0$. Compute $w_1$ for learning rates $0.1$ and $1.1$. Explain which update moves toward the minimizer and why overly large learning rates can diverge.\n",
      "answer": "The gradient at $0$ is $-6$. With $\\eta=0.1$, $w_1=0.6$. With $\\eta=1.1$, $w_1=6.6$, overshooting $3$. For this quadratic, convergence requires $0<\\eta<1$; larger steps amplify error.\n",
      "check": {
        "kind": "numeric",
        "id": "original-ml-gd",
        "values": [
          0.6,
          6.6
        ]
      }
    },
    {
      "id": "original-ml-sgd",
      "area": "machine-learning",
      "topic": "gradient-descent",
      "origin": "original",
      "title": "Full gradient versus stochastic gradient",
      "skills": [
        "gradient-update",
        "sgd",
        "convergence"
      ],
      "priority": "core",
      "difficulty": "easy",
      "estimated_minutes": 7,
      "prerequisites": [
        "expectation"
      ],
      "prompt": "For losses $\\ell_1(w)=(w-1)^2$ and $\\ell_2(w)=(w+1)^2$, compute the full empirical gradient at $w=2$ and each per-example gradient. Explain why an unbiased uniformly sampled stochastic gradient can still have variance.\n",
      "answer": "The per-example gradients are $2$ and $6$. The mean, or full, gradient is $4$. A uniformly sampled per-example gradient has expectation $4$ but takes values $2$ or $6$, so it has nonzero variance.\n",
      "check": {
        "kind": "numeric",
        "id": "original-ml-sgd",
        "values": [
          2,
          6,
          4,
          4
        ]
      }
    },
    {
      "id": "original-ml-pca",
      "area": "machine-learning",
      "topic": "dimensionality-reduction",
      "origin": "original",
      "title": "PCA direction and explained variance",
      "skills": [
        "pca-objective",
        "centering",
        "covariance-eigendecomposition",
        "explained-variance"
      ],
      "priority": "core",
      "difficulty": "easy",
      "estimated_minutes": 7,
      "prerequisites": [
        "eigenvalues"
      ],
      "prompt": "A centered two-dimensional dataset has covariance $\\operatorname{diag}(9,1)$. Give the first principal direction, the fraction of variance it explains, and the reconstruction-error variance after projection to one dimension. Explain why PCA should first center raw observations.\n",
      "answer": "The first direction is $(1,0)$, it explains\n\n$$\\frac{9}{9+1}=0.9$$\n\nof the variance, and the discarded, or reconstruction-error, variance is $1$. Centering removes the mean offset so that the principal directions describe variation around the mean rather than the mean location itself.\n",
      "check": {
        "kind": "numeric",
        "id": "original-ml-pca",
        "values": [
          1,
          0,
          0.9,
          1
        ]
      }
    },
    {
      "id": "original-ml-kmeans",
      "area": "machine-learning",
      "topic": "unsupervised-learning",
      "origin": "original",
      "title": "One k-means assignment and update",
      "skills": [
        "k-means",
        "clustering-objective"
      ],
      "priority": "core",
      "difficulty": "easy",
      "estimated_minutes": 7,
      "prerequisites": [
        "squared-distance"
      ],
      "prompt": "For one-dimensional points $\\{0,2,8,10\\}$ and initial centers $0$ and $10$, perform one assignment and center-update step. Give the new centers and the within-cluster sum of squared distances after the update.\n",
      "answer": "The clusters are $\\{0,2\\}$ and $\\{8,10\\}$; the new centers are $1$ and $9$. The objective is\n\n$$1+1+1+1=4.$$\n",
      "check": {
        "kind": "numeric",
        "id": "original-ml-kmeans",
        "values": [
          1,
          9,
          4
        ]
      }
    },
    {
      "id": "original-ml-gmm",
      "area": "machine-learning",
      "topic": "unsupervised-learning",
      "origin": "original",
      "title": "Mixture responsibilities and EM",
      "skills": [
        "gaussian-mixtures",
        "expectation-maximization",
        "clustering-objective"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 7,
      "prerequisites": [
        "bayes-rule"
      ],
      "prompt": "At a data point $x$, two Gaussian-mixture components have prior weights $0.4$ and $0.6$ and component densities $p(x\\mid z=1)=0.3$ and $p(x\\mid z=2)=0.1$. Compute posterior responsibilities and state the E- and M-step roles.\n",
      "answer": "The unnormalized weights are $0.12$ and $0.06$, so the responsibilities are $\\frac{2}{3}$ and $\\frac{1}{3}$. The E-step computes responsibilities; the M-step updates parameters using those expected assignments.\n",
      "check": {
        "kind": "numeric",
        "id": "original-ml-gmm",
        "values": [
          0.6666666666666666,
          0.3333333333333333
        ]
      }
    },
    {
      "id": "original-ml-forward-backprop",
      "area": "machine-learning",
      "topic": "neural-networks",
      "origin": "original",
      "title": "Forward pass and backpropagation",
      "skills": [
        "forward-pass",
        "activations",
        "chain-rule",
        "backpropagation"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 8,
      "prerequisites": [
        "chain-rule"
      ],
      "prompt": "A scalar network has $h=\\operatorname{ReLU}(wx)$, $\\hat{y}=vh$, and loss\n\n$$L=\\frac{1}{2}(\\hat{y}-y)^2.$$\n\nAt $x=2$, $w=1$, $v=3$, and $y=4$, compute $h$, $\\hat{y}$, $L$, $\\frac{\\partial L}{\\partial v}$, and $\\frac{\\partial L}{\\partial w}$.\n",
      "answer": "$h=2$, $\\hat{y}=6$, and $L=2$. The derivatives are\n\n$$\\frac{\\partial L}{\\partial v}=(6-4)h=4$$\n\nand\n\n$$\\frac{\\partial L}{\\partial w}=(6-4)vx=12,$$\n\nbecause the ReLU input is positive.\n",
      "check": {
        "kind": "numeric",
        "id": "original-ml-forward-backprop",
        "values": [
          2,
          6,
          2,
          4,
          12
        ]
      }
    },
    {
      "id": "original-ml-network-params",
      "area": "machine-learning",
      "topic": "neural-networks",
      "origin": "original",
      "title": "Dense-network parameter count",
      "skills": [
        "parameter-count"
      ],
      "priority": "foundation",
      "difficulty": "easy",
      "estimated_minutes": 4,
      "prerequisites": [
        "matrix-shapes"
      ],
      "prompt": "Count trainable scalar parameters in a fully connected network with $10$ inputs, one hidden layer of $5$ units with biases, and an output layer of $3$ units with biases.\n",
      "answer": "Input-to-hidden has $10\\times5+5=55$ parameters. Hidden-to-output has $5\\times3+3=18$. The total is $73$.\n",
      "check": {
        "kind": "numeric",
        "id": "original-ml-network-params",
        "values": [
          55,
          18,
          73
        ]
      }
    },
    {
      "id": "original-ml-convolution",
      "area": "machine-learning",
      "topic": "convolution",
      "origin": "original",
      "title": "Convolution output shape and parameters",
      "skills": [
        "output-shape",
        "padding-stride",
        "parameter-count"
      ],
      "priority": "core",
      "difficulty": "easy",
      "estimated_minutes": 6,
      "prerequisites": [
        "integer-arithmetic"
      ],
      "prompt": "An input has shape $32\\times32\\times3$. A convolution uses $16$ filters of size $5\\times5$, stride $2$, padding $2$, and one bias per filter. Compute the output shape and trainable parameter count.\n",
      "answer": "Each spatial dimension is\n\n$$\\left\\lfloor\\frac{32+2(2)-5}{2}\\right\\rfloor+1=16,$$\n\nso the output is $16\\times16\\times16$. The parameter count is\n\n$$5\\times5\\times3\\times16+16=1216.$$\n",
      "check": {
        "kind": "numeric",
        "id": "original-ml-convolution",
        "values": [
          16,
          16,
          16,
          1216
        ]
      }
    },
    {
      "id": "original-ml-regularization",
      "area": "machine-learning",
      "topic": "optimization",
      "origin": "original",
      "title": "L1 versus L2 regularization",
      "skills": [
        "regularization",
        "objective-functions",
        "model-complexity",
        "generalization"
      ],
      "priority": "core",
      "difficulty": "easy",
      "estimated_minutes": 6,
      "prerequisites": [
        "norms"
      ],
      "prompt": "Compare $L_1$ and $L_2$ regularization in geometry, differentiability at zero, and typical coefficient behavior. State one reason regularization can improve validation performance while worsening training loss.\n",
      "answer": "$L_1$ uses $\\lVert\\mathbf{w}\\rVert_1$; its constraint region is diamond-shaped (a cross-polytope) with axis-aligned corners. It is nondifferentiable when a coefficient is zero and often yields exact sparsity. $L_2$ uses $\\lVert\\mathbf{w}\\rVert_2^2$; its constraint region is round, it is differentiable everywhere, and it smoothly shrinks coefficients without usually making them exactly zero. Either penalty can increase unregularized training loss while reducing effective complexity, variance, and overfitting, thereby improving validation performance.\n",
      "check": {
        "kind": "symbolic",
        "id": "original-ml-regularization",
        "values": [
          1
        ]
      }
    },
    {
      "id": "original-ml-finite-class-bound",
      "area": "machine-learning",
      "topic": "theory",
      "origin": "original",
      "title": "Read a finite-class generalization bound",
      "skills": [
        "generalization",
        "model-complexity"
      ],
      "priority": "stretch",
      "difficulty": "medium",
      "estimated_minutes": 7,
      "prerequisites": [
        "logarithms",
        "probability"
      ],
      "prompt": "A finite hypothesis class has $\\lvert\\mathcal{H}\\rvert=100$ and $n=1000$ independent examples. Using\n\n$$\\varepsilon=\\sqrt{\\frac{\\log\\left(2\\lvert\\mathcal{H}\\rvert/\\delta\\right)}{2n}}$$\n\nwith $\\delta=0.05$, compute $\\varepsilon$ and explain what the simultaneous bound says.\n",
      "answer": "$$\\varepsilon=\\sqrt{\\frac{\\log(4000)}{2000}}\\approx 0.0644.$$\n\nWith probability at least $0.95$, every hypothesis in $\\mathcal{H}$ has empirical and population error differing by at most this amount under the bound's assumptions.\n",
      "check": {
        "kind": "numeric",
        "id": "original-ml-finite-class-bound",
        "values": [
          0.06439739761862287
        ]
      }
    },
    {
      "id": "original-py-alias-copy",
      "area": "programming",
      "topic": "python",
      "origin": "original",
      "title": "Aliasing and shallow copy",
      "skills": [
        "lists-tuples",
        "mutability",
        "aliasing",
        "shallow-copy"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 7,
      "prerequisites": [
        "lists"
      ],
      "prompt": "Implement `alias_copy_state()`. Construct `a = [[1], [2]]`, let `b = a`, and let `c = a.copy()`. Append `3` to `a[0]`, then append `[4]` to `a`. Return `(a, b, c)`. Predict the result before running it.\n",
      "starter_code": "def alias_copy_state():\n    pass\n",
      "reference_solution": "def alias_copy_state():\n    a = [[1], [2]]\n    b = a\n    c = a.copy()\n    a[0].append(3)\n    a.append([4])\n    return a, b, c\n",
      "tests": [
        {
          "call": "alias_copy_state()",
          "expected": "([[1, 3], [2], [4]], [[1, 3], [2], [4]], [[1, 3], [2]])"
        }
      ]
    },
    {
      "id": "pml-book1-ex5.1",
      "area": "machine-learning",
      "topic": "classification",
      "origin": "external",
      "title": "Reject option in classifiers",
      "skills": [
        "decision-boundary"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 12,
      "prerequisites": [
        "conditional-probability",
        "expected-loss"
      ],
      "source_id": "pml-book1-2022",
      "locator": {
        "document": "PML Book 1 online draft (2025-04-18), Chapter 5 exercises",
        "label": "Exercise 5.1",
        "page_label": "book p. 204 (PDF p. 234)",
        "solution_pages": "15"
      },
      "links": {
        "problem": "https://github.com/probml/pml-book/releases/download/2025-04-18/book1.pdf#page=234",
        "solution": "https://probml.github.io/pml-book/solns-public.pdf#page=15"
      },
      "selection_note": "Derives a confidence-dependent classification and rejection rule from explicit costs and posterior class probabilities.",
      "source_caveat": "The public solution manual predates the dated book draft; the exercise title and task align, but notation may differ.",
      "answer_status": "official-solution"
    },
    {
      "id": "pml-book1-ex11.2",
      "area": "machine-learning",
      "topic": "regression",
      "origin": "external",
      "title": "Centering and ridge regression",
      "skills": [
        "linear-regression",
        "normal-equations",
        "regularization"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 15,
      "prerequisites": [
        "matrix-multiplication",
        "centering"
      ],
      "source_id": "pml-book1-2022",
      "locator": {
        "document": "PML Book 1 online draft (2025-04-18), Chapter 11 exercises",
        "label": "Exercise 11.2",
        "page_label": "book pp. 411–412 (PDF pp. 441–442)",
        "solution_pages": "26"
      },
      "links": {
        "problem": "https://github.com/probml/pml-book/releases/download/2025-04-18/book1.pdf#page=441",
        "solution": "https://probml.github.io/pml-book/solns-public.pdf#page=26"
      },
      "selection_note": "Connects centering, the ridge objective, the intercept, and normal equations in one derivation.",
      "source_caveat": "The public solution manual predates the dated book draft; the exercise title and task align, but notation may differ.",
      "answer_status": "official-solution"
    },
    {
      "id": "pml-book1-ex4.5",
      "area": "machine-learning",
      "topic": "theory",
      "origin": "external",
      "title": "BIC for a two-dimensional discrete distribution",
      "skills": [
        "generalization",
        "overfitting",
        "model-complexity"
      ],
      "priority": "core",
      "difficulty": "medium",
      "estimated_minutes": 20,
      "prerequisites": [
        "maximum-likelihood",
        "logarithms",
        "cross-validation"
      ],
      "source_id": "pml-book1-2022",
      "locator": {
        "document": "PML Book 1 online draft (2025-04-18), Chapter 4 exercises",
        "label": "Exercise 4.5",
        "page_label": "book p. 165 (PDF p. 195)",
        "solution_pages": "11–12"
      },
      "links": {
        "problem": "https://github.com/probml/pml-book/releases/download/2025-04-18/book1.pdf#page=195",
        "solution": "https://probml.github.io/pml-book/solns-public.pdf#page=11"
      },
      "selection_note": "Compares nested models using fit, leave-one-out behavior, parameter count, and a complexity penalty.",
      "source_caveat": "The public solution manual predates the dated book draft; the exercise title and task align, but notation may differ.",
      "answer_status": "official-solution"
    },
    {
      "id": "pml-book1-ex20.3",
      "area": "machine-learning",
      "topic": "dimensionality-reduction",
      "origin": "external",
      "title": "Deriving the second principal component",
      "skills": [
        "pca-objective",
        "covariance-eigendecomposition"
      ],
      "priority": "core",
      "difficulty": "hard",
      "estimated_minutes": 18,
      "prerequisites": [
        "eigenvectors",
        "lagrange-multipliers",
        "matrix-calculus"
      ],
      "source_id": "pml-book1-2022",
      "locator": {
        "document": "PML Book 1 online draft (2025-04-18), Chapter 20 exercises",
        "label": "Exercise 20.3",
        "page_label": "book p. 712 (PDF p. 742)",
        "solution_pages": "40–41"
      },
      "links": {
        "problem": "https://github.com/probml/pml-book/releases/download/2025-04-18/book1.pdf#page=742",
        "solution": "https://probml.github.io/pml-book/solns-public.pdf#page=40"
      },
      "selection_note": "Connects the constrained PCA reconstruction objective to the covariance eigenvector with the second-largest eigenvalue.",
      "source_caveat": "The public solution manual predates the dated book draft; the exercise title and task align, but notation may differ.",
      "answer_status": "official-solution"
    },
    {
      "id": "pml-book1-ex10.1",
      "area": "machine-learning",
      "topic": "classification",
      "origin": "external",
      "title": "Gradient and Hessian of multinomial logistic regression",
      "skills": [
        "logistic-regression",
        "cross-entropy"
      ],
      "priority": "supplementary",
      "difficulty": "hard",
      "estimated_minutes": 20,
      "prerequisites": [
        "softmax",
        "chain-rule",
        "matrix-calculus"
      ],
      "source_id": "pml-book1-2022",
      "locator": {
        "document": "PML Book 1 online draft (2025-04-18), Chapter 10 exercises",
        "label": "Exercise 10.1",
        "page_label": "book pp. 367–368 (PDF pp. 397–398)",
        "solution_pages": "25"
      },
      "links": {
        "problem": "https://github.com/probml/pml-book/releases/download/2025-04-18/book1.pdf#page=397",
        "solution": "https://probml.github.io/pml-book/solns-public.pdf#page=25"
      },
      "selection_note": "Derives the first- and second-order structure of multiclass logistic loss.",
      "source_caveat": "The public solution manual predates the dated book draft; the exercise title and task align, but notation may differ.",
      "answer_status": "official-solution"
    },
    {
      "id": "pml-book1-ex13.1",
      "area": "machine-learning",
      "topic": "neural-networks",
      "origin": "external",
      "title": "Backpropagation for a multilayer perceptron",
      "skills": [
        "forward-pass",
        "activations",
        "chain-rule",
        "backpropagation"
      ],
      "priority": "core",
      "difficulty": "hard",
      "estimated_minutes": 20,
      "prerequisites": [
        "softmax",
        "cross-entropy",
        "matrix-calculus",
        "relu"
      ],
      "source_id": "pml-book1-2022",
      "locator": {
        "document": "PML Book 1 online draft (2025-04-18), Chapter 13 exercises",
        "label": "Exercise 13.1",
        "page_label": "title on book p. 463 (PDF p. 493); task continues on book p. 465 (PDF p. 495)",
        "solution_pages": "30"
      },
      "links": {
        "problem": "https://github.com/probml/pml-book/releases/download/2025-04-18/book1.pdf#page=493",
        "solution": "https://probml.github.io/pml-book/solns-public.pdf#page=30"
      },
      "selection_note": "Derives layer errors, parameter gradients, and the input gradient for a one-hidden-layer classifier.",
      "source_caveat": "A full-page figure separates the title from the task; the public solution manual predates the dated book draft.",
      "answer_status": "official-solution"
    },
    {
      "id": "pml-book1-ex11.4",
      "area": "machine-learning",
      "topic": "optimization",
      "origin": "external",
      "title": "Reducing elastic net to lasso",
      "skills": [
        "objective-functions",
        "regularization"
      ],
      "priority": "supplementary",
      "difficulty": "hard",
      "estimated_minutes": 15,
      "prerequisites": [
        "l1-norm",
        "l2-norm",
        "linear-regression"
      ],
      "source_id": "pml-book1-2022",
      "locator": {
        "document": "PML Book 1 online draft (2025-04-18), Chapter 11 exercises",
        "label": "Exercise 11.4",
        "page_label": "book p. 412 (PDF p. 442)",
        "solution_pages": "26"
      },
      "links": {
        "problem": "https://github.com/probml/pml-book/releases/download/2025-04-18/book1.pdf#page=442",
        "solution": "https://probml.github.io/pml-book/solns-public.pdf#page=26"
      },
      "selection_note": "Transforms a mixed regularization objective into a standard lasso problem on augmented data.",
      "source_caveat": "The public solution manual predates the dated book draft; the exercise title and task align, but notation may differ.",
      "answer_status": "official-solution"
    },
    {
      "id": "pml-book1-ex20.1",
      "area": "machine-learning",
      "topic": "unsupervised-learning",
      "origin": "external",
      "title": "Expectation-maximization for factor analysis",
      "skills": [
        "expectation-maximization"
      ],
      "priority": "supplementary",
      "difficulty": "hard",
      "estimated_minutes": 30,
      "prerequisites": [
        "multivariate-gaussian",
        "matrix-calculus",
        "latent-variables"
      ],
      "source_id": "pml-book1-2022",
      "locator": {
        "document": "PML Book 1 online draft (2025-04-18), Chapter 20 exercises",
        "label": "Exercise 20.1",
        "page_label": "book p. 712 (PDF p. 742)",
        "solution_pages": "39–40"
      },
      "links": {
        "problem": "https://github.com/probml/pml-book/releases/download/2025-04-18/book1.pdf#page=742",
        "solution": "https://probml.github.io/pml-book/solns-public.pdf#page=39"
      },
      "selection_note": "Derives E- and M-step updates for a latent Gaussian factor model.",
      "source_caveat": "This is advanced latent-variable practice rather than clustering; the public solution manual predates the dated book draft.",
      "answer_status": "official-solution"
    },
    {
      "id": "harvard-stat110-f2011-sp5-continuous-q1",
      "area": "mathematics",
      "topic": "probability",
      "origin": "external",
      "title": "Lognormal transformation by the CDF method",
      "skills": [
        "continuous-random-variables",
        "transformations"
      ],
      "priority": "supplementary",
      "difficulty": "medium",
      "estimated_minutes": 12,
      "prerequisites": [
        "normal-distribution",
        "chain-rule"
      ],
      "source_id": "harvard-stat110-f2011",
      "locator": {
        "document": "Strategic Practice and Homework 5",
        "label": "Section 3: Continuous Distributions, Problem 1",
        "page": 2
      },
      "links": {
        "problem": "https://stat110.hsites.harvard.edu/resource/strategic-practice-and-homework-5",
        "solution": "https://stat110.hsites.harvard.edu/resource/strategic-practice-and-homework-5"
      },
      "selection_note": "A compact test of transforming a continuous random variable using a CDF before differentiating for the density.",
      "answer_status": "official-solution"
    },
    {
      "id": "pml-book1-ex2.9",
      "area": "mathematics",
      "topic": "probability",
      "origin": "external",
      "title": "Bayes rule and diagnostic evidence",
      "skills": [
        "total-probability",
        "bayes-rule",
        "conditional-probability"
      ],
      "priority": "supplementary",
      "difficulty": "medium",
      "estimated_minutes": 12,
      "prerequisites": [
        "conditional-probability"
      ],
      "source_id": "pml-book1-2022",
      "locator": {
        "document": "PML Book 1 online draft (2025-04-18), Chapter 2 exercises",
        "label": "Exercise 2.9",
        "page_label": "book p. 75 (PDF p. 105)",
        "solution_pages": "6"
      },
      "links": {
        "problem": "https://github.com/probml/pml-book/releases/download/2025-04-18/book1.pdf#page=105",
        "solution": "https://probml.github.io/pml-book/solns-public.pdf#page=6"
      },
      "selection_note": "Connects Bayes rule to evidence interpretation and exposes the common confusion between a likelihood and a posterior.",
      "answer_status": "official-solution"
    },
    {
      "id": "pml-book1-ex3.4",
      "area": "mathematics",
      "topic": "statistics",
      "origin": "external",
      "title": "Linear transformations and quadratic expectations",
      "skills": [
        "covariance-correlation"
      ],
      "priority": "supplementary",
      "difficulty": "medium",
      "estimated_minutes": 15,
      "prerequisites": [
        "expectation",
        "covariance",
        "matrix-multiplication"
      ],
      "source_id": "pml-book1-2022",
      "locator": {
        "document": "PML Book 1 online draft (2025-04-18), Chapter 3 exercises",
        "label": "Exercise 3.4",
        "page_label": "book p. 104 (PDF p. 134)",
        "solution_pages": "8"
      },
      "links": {
        "problem": "https://github.com/probml/pml-book/releases/download/2025-04-18/book1.pdf#page=134",
        "solution": "https://probml.github.io/pml-book/solns-public.pdf#page=8"
      },
      "selection_note": "Exercises the matrix identities behind transformed covariance and expected quadratic forms used throughout machine learning.",
      "answer_status": "official-solution"
    }
  ],
  "sets": [
    {
      "id": "mathematics-diagnostic",
      "title": "Mathematics Diagnostic",
      "area": "mathematics",
      "kind": "diagnostic",
      "purpose": "Sample the four mathematics topics before choosing focused practice.",
      "timebox_minutes": 45,
      "items": [
        "mit-18-06-s2010-exam1-q2",
        "original-calc-jacobian",
        "mit-18-05-s2022-exam1-q1b",
        "mit-18-05-s2022-exam2-ii1"
      ],
      "instructions": [
        "Work without notes or symbolic software.",
        "Record a first attempt before opening any answer or official solution."
      ],
      "completion": "Use missed skills to choose the corresponding topic practice set.",
      "next_sets": [
        "linear-algebra-practice",
        "calculus-practice",
        "probability-practice",
        "statistics-practice"
      ]
    },
    {
      "id": "linear-algebra-practice",
      "title": "Linear Algebra Practice",
      "area": "mathematics",
      "topic": "linear-algebra",
      "kind": "practice",
      "purpose": "Cover matrix fundamentals, subspaces, projections, spectral structure, and decomposition.",
      "timebox_minutes": 150,
      "items": [
        "original-la-foundations",
        "original-la-basis-change",
        "mit-18-06-s2010-exam1-q2",
        "mit-18-06-s2010-exam2-q1",
        "mit-18-06-s2010-exam2-q2",
        "mit-18-06-s2010-exam3-q1",
        "mit-18-06-s2010-exam3-q2",
        "mit-18-06-s2010-exam3-q3c",
        "original-la-low-rank"
      ],
      "instructions": [
        "Split the set across sessions.",
        "Retry every hinted item independently."
      ],
      "completion": "Explain the algebraic and geometric meaning of rank, projection, eigenstructure, and SVD.",
      "next_sets": []
    },
    {
      "id": "calculus-practice",
      "title": "Calculus Practice",
      "area": "mathematics",
      "topic": "calculus",
      "kind": "practice",
      "purpose": "Cover single-variable foundations, multivariable differentiation, approximation, and optimization.",
      "timebox_minutes": 120,
      "items": [
        "mit-18-01sc-f2010-final-foundations",
        "mit-18-02sc-f2010-exam2-q1",
        "original-calc-jacobian",
        "mit-18-02sc-f2010-exam2-q3",
        "mit-18-02sc-f2010-exam2-q4",
        "mit-18-02sc-f2010-exam2-q5",
        "mit-18-02sc-f2010-exam2-q6",
        "original-calc-matrix"
      ],
      "instructions": [
        "State dimensions for vector and matrix derivatives.",
        "Separate method-selection errors from algebra errors."
      ],
      "completion": "Derive gradients, Jacobians, Hessians, and constrained first-order conditions without relying on source notation.",
      "next_sets": []
    },
    {
      "id": "probability-practice",
      "title": "Probability Practice",
      "area": "mathematics",
      "topic": "probability",
      "kind": "practice",
      "purpose": "Move from events and conditioning through moments, distributions, and asymptotic results.",
      "timebox_minutes": 130,
      "items": [
        "original-prob-foundations",
        "pml-book1-ex2.9",
        "mit-18-05-s2022-exam1-q1b",
        "mit-18-05-s2022-exam1-q3",
        "original-prob-distributions",
        "harvard-stat110-f2011-sp5-continuous-q1",
        "mit-18-05-s2022-exam1-q4",
        "original-prob-total-variance",
        "original-prob-gaussian",
        "mit-18-05-s2022-exam1-q5",
        "mit-18-05-s2022-exam1-q6",
        "original-prob-lln"
      ],
      "instructions": [
        "Name conditioning events and random variables explicitly.",
        "Check independence before factorizing."
      ],
      "completion": "Move fluently among event, distribution, expectation, and covariance representations.",
      "next_sets": []
    },
    {
      "id": "statistics-practice",
      "title": "Statistics Practice",
      "area": "mathematics",
      "topic": "statistics",
      "kind": "practice",
      "purpose": "Cover estimators, likelihood, Bayesian updating, intervals, tests, and simple regression.",
      "timebox_minutes": 130,
      "items": [
        "original-stats-estimator",
        "mit-18-05-s2022-exam2-ii1",
        "mit-18-05-s2022-exam2-ii2",
        "original-stats-mom-map",
        "mit-18-05-s2022-exam2-ii4",
        "mit-18-05-s2022-pset11-q1",
        "mit-18-05-s2022-exam2-ii5",
        "mit-18-05-s2022-pset6-q2",
        "pml-book1-ex3.4",
        "mit-18-05-s2022-exam2-i2"
      ],
      "instructions": [
        "Write the model before deriving an estimator or test.",
        "Keep p-values and posterior probabilities distinct."
      ],
      "completion": "Derive and interpret one estimator, interval, hypothesis test, and posterior update from first principles.",
      "next_sets": []
    },
    {
      "id": "programming-diagnostic",
      "title": "Programming Diagnostic",
      "area": "programming",
      "kind": "diagnostic",
      "purpose": "Check Python semantics, data-structure selection, algorithmic control flow, and recursion.",
      "timebox_minutes": 55,
      "items": [
        "mit-6-100l-finger-05",
        "original-py-alias-copy",
        "leetcode-704-binary-search",
        "leetcode-752-open-the-lock",
        "mit-6-100l-finger-15"
      ],
      "instructions": [
        "Predict behavior before executing code.",
        "State expected time complexity for implemented algorithms."
      ],
      "completion": "Use failed tests or incorrect predictions to choose the corresponding topic practice set.",
      "next_sets": [
        "control-flow-practice",
        "data-structures-practice",
        "python-practice",
        "recursion-practice"
      ]
    },
    {
      "id": "control-flow-practice",
      "title": "Control Flow Practice",
      "area": "programming",
      "topic": "control-flow",
      "kind": "practice",
      "purpose": "Build reliable string traversal, branching, and iteration fluency.",
      "timebox_minutes": 25,
      "items": [
        "mit-6-100l-finger-05",
        "mit-6-100l-finger-08",
        "mit-6-100l-finger-06"
      ],
      "instructions": [
        "Trace edge cases before running tests."
      ],
      "completion": "Implement and explain each control path without debugger assistance.",
      "next_sets": []
    },
    {
      "id": "data-structures-practice",
      "title": "Data Structures Practice",
      "area": "programming",
      "topic": "data-structures",
      "kind": "practice",
      "purpose": "Select and use lists, mappings, sets, stacks, queues, heaps, and graph traversals.",
      "timebox_minutes": 130,
      "items": [
        "leetcode-20-valid-parentheses",
        "leetcode-215-kth-largest",
        "leetcode-704-binary-search",
        "leetcode-752-open-the-lock",
        "leetcode-200-number-of-islands",
        "mit-6-100l-finger-19",
        "mit-6-100l-finger-14"
      ],
      "instructions": [
        "State why the chosen container supports the required operation efficiently."
      ],
      "completion": "Implement each structure-driven pattern from a blank function signature.",
      "next_sets": []
    },
    {
      "id": "python-practice",
      "title": "Python Practice",
      "area": "programming",
      "topic": "python",
      "kind": "practice",
      "purpose": "Eliminate mistakes in strings, mutation, aliasing, object state, and complexity.",
      "timebox_minutes": 55,
      "items": [
        "original-py-alias-copy",
        "mit-6-100l-finger-05",
        "mit-6-100l-finger-08",
        "mit-6-100l-finger-11",
        "mit-6-100l-finger-17",
        "mit-6-100l-finger-23"
      ],
      "instructions": [
        "Predict exact repr output before execution."
      ],
      "completion": "Explain every mutation and asymptotic cost in the selected code.",
      "next_sets": []
    },
    {
      "id": "recursion-practice",
      "title": "Recursion Practice",
      "area": "programming",
      "topic": "recursion",
      "kind": "practice",
      "purpose": "Practice base cases, call traces, and recursive decomposition.",
      "timebox_minutes": 45,
      "items": [
        "mit-6-100l-finger-15",
        "mit-6-100l-finger-16",
        "leetcode-200-number-of-islands"
      ],
      "instructions": [
        "Write the base case before the recursive step.",
        "Trace one nontrivial input by hand."
      ],
      "completion": "Implement each recursive function without slicing or hidden global state.",
      "next_sets": []
    },
    {
      "id": "machine-learning-diagnostic",
      "title": "Machine Learning Diagnostic",
      "area": "machine-learning",
      "kind": "diagnostic",
      "purpose": "Sample objectives, updates, model evaluation, representation, networks, and clustering.",
      "timebox_minutes": 90,
      "items": [
        "original-ml-regression",
        "original-ml-logistic",
        "original-ml-gd",
        "original-ml-pca",
        "original-ml-forward-backprop",
        "original-ml-convolution",
        "mit-6-036-s2019-midterm-q5",
        "mit-6-036-s2019-midterm-q4",
        "original-ml-kmeans"
      ],
      "instructions": [
        "Show the objective or computational graph before calculating.",
        "Separate formula recall from interpretation."
      ],
      "completion": "Use missed skills to choose the corresponding topic practice set.",
      "next_sets": [
        "regression-practice",
        "classification-practice",
        "gradient-descent-practice",
        "dimensionality-reduction-practice",
        "neural-networks-practice",
        "convolution-practice",
        "optimization-practice",
        "theory-practice",
        "unsupervised-learning-practice"
      ]
    },
    {
      "id": "regression-practice",
      "title": "Regression Practice",
      "area": "machine-learning",
      "topic": "regression",
      "kind": "practice",
      "purpose": "Connect squared loss, gradients, normal equations, and ridge regularization.",
      "timebox_minutes": 45,
      "items": [
        "google-mlcc-linear-regression-quiz",
        "original-ml-regression",
        "pml-book1-ex11.2"
      ],
      "instructions": [
        "Track matrix dimensions through every expression."
      ],
      "completion": "Derive the unregularized and ridge objectives and updates.",
      "next_sets": []
    },
    {
      "id": "classification-practice",
      "title": "Classification Practice",
      "area": "machine-learning",
      "topic": "classification",
      "kind": "practice",
      "purpose": "Connect logistic probabilities and losses to threshold-dependent evaluation.",
      "timebox_minutes": 70,
      "items": [
        "original-ml-logistic",
        "original-ml-metrics",
        "google-mlcc-logistic-quiz",
        "google-mlcc-classification-quiz",
        "pml-book1-ex5.1",
        "pml-book1-ex10.1"
      ],
      "instructions": [
        "Distinguish probability estimation from the classification decision rule."
      ],
      "completion": "Compute a loss and evaluation metrics and explain threshold trade-offs.",
      "next_sets": []
    },
    {
      "id": "convolution-practice",
      "title": "Convolution Practice",
      "area": "machine-learning",
      "topic": "convolution",
      "kind": "practice",
      "purpose": "Compute convolution geometry and parameter counts accurately.",
      "timebox_minutes": 55,
      "items": [
        "original-ml-convolution",
        "mit-6-036-s2018-final-q9",
        "mit-6-036-s2019-final-q4"
      ],
      "instructions": [
        "Write the output-size formula before substituting values."
      ],
      "completion": "Compute shapes and parameter counts without framework assistance.",
      "next_sets": []
    },
    {
      "id": "dimensionality-reduction-practice",
      "title": "Dimensionality Reduction Practice",
      "area": "machine-learning",
      "topic": "dimensionality-reduction",
      "kind": "practice",
      "purpose": "Relate PCA variance objectives to covariance eigenvectors and SVD.",
      "timebox_minutes": 45,
      "items": [
        "original-ml-pca",
        "original-la-low-rank",
        "pml-book1-ex20.3"
      ],
      "instructions": [
        "Center the data conceptually before applying PCA."
      ],
      "completion": "Explain both reconstruction-error and retained-variance views of PCA.",
      "next_sets": []
    },
    {
      "id": "gradient-descent-practice",
      "title": "Gradient Descent Practice",
      "area": "machine-learning",
      "topic": "gradient-descent",
      "kind": "practice",
      "purpose": "Compute deterministic and stochastic updates and diagnose step-size behavior.",
      "timebox_minutes": 25,
      "items": [
        "original-ml-gd",
        "original-ml-sgd",
        "original-ml-regression"
      ],
      "instructions": [
        "Write the gradient at the current iterate before updating."
      ],
      "completion": "Explain learning-rate and gradient-variance effects.",
      "next_sets": []
    },
    {
      "id": "neural-networks-practice",
      "title": "Neural Networks Practice",
      "area": "machine-learning",
      "topic": "neural-networks",
      "kind": "practice",
      "purpose": "Practice forward computation, backpropagation, activation behavior, and parameter counting.",
      "timebox_minutes": 55,
      "items": [
        "original-ml-forward-backprop",
        "original-ml-network-params",
        "google-mlcc-neural-network-quiz",
        "pml-book1-ex13.1"
      ],
      "instructions": [
        "Draw the scalar computational graph for backpropagation."
      ],
      "completion": "Compute one forward and backward pass and count parameters by layer.",
      "next_sets": []
    },
    {
      "id": "optimization-practice",
      "title": "Optimization Practice",
      "area": "machine-learning",
      "topic": "optimization",
      "kind": "practice",
      "purpose": "Relate stationary points, convexity, objectives, regularization, and training diagnostics.",
      "timebox_minutes": 60,
      "items": [
        "mit-6-036-s2019-midterm-q5",
        "original-ml-regularization",
        "original-ml-gd",
        "pml-book1-ex11.4"
      ],
      "instructions": [
        "Separate objective geometry from optimizer behavior."
      ],
      "completion": "Diagnose whether a problem comes from the objective, step size, or model complexity.",
      "next_sets": []
    },
    {
      "id": "theory-practice",
      "title": "Theory Practice",
      "area": "machine-learning",
      "topic": "theory",
      "kind": "practice",
      "purpose": "Reason about bias, variance, overfitting, generalization, and evaluation splits.",
      "timebox_minutes": 60,
      "items": [
        "mit-6-036-s2019-midterm-q4",
        "original-ml-regularization",
        "original-ml-finite-class-bound",
        "google-mlcc-overfitting-quiz",
        "pml-book1-ex4.5"
      ],
      "instructions": [
        "Use observed train-validation patterns rather than vague model-size rules."
      ],
      "completion": "Recommend a defensible response to one bias and one variance failure mode.",
      "next_sets": []
    },
    {
      "id": "unsupervised-learning-practice",
      "title": "Unsupervised Learning Practice",
      "area": "machine-learning",
      "topic": "unsupervised-learning",
      "kind": "practice",
      "purpose": "Optimize and interpret hard clustering and mixture-model assignments.",
      "timebox_minutes": 60,
      "items": [
        "original-ml-kmeans",
        "original-ml-gmm",
        "pml-book1-ex20.1"
      ],
      "instructions": [
        "Write the objective or posterior normalization before updating assignments."
      ],
      "completion": "Perform one k-means update and one mixture responsibility calculation.",
      "next_sets": []
    }
  ],
  "scope": {
    "release": {
      "version": "1.0.0"
    },
    "areas": [
      {
        "id": "mathematics",
        "title": "Mathematics",
        "summary": "Build fast, reliable command of the undergraduate mathematics used throughout machine learning.",
        "topics": [
          "calculus",
          "linear-algebra",
          "probability",
          "statistics"
        ]
      },
      {
        "id": "programming",
        "title": "Programming",
        "summary": "Practice Python semantics, core data structures, control flow, and recursion rather than competitive-programming tricks.",
        "topics": [
          "control-flow",
          "data-structures",
          "python",
          "recursion"
        ]
      },
      {
        "id": "machine-learning",
        "title": "Machine Learning",
        "summary": "Connect the standard models and algorithms to their objectives, computations, and failure modes.",
        "topics": [
          "classification",
          "convolution",
          "dimensionality-reduction",
          "gradient-descent",
          "neural-networks",
          "optimization",
          "regression",
          "theory",
          "unsupervised-learning"
        ]
      }
    ],
    "topics": [
      {
        "id": "calculus",
        "area": "mathematics",
        "title": "Calculus",
        "summary": "Differentiate, approximate, and optimize scalar and vector-valued functions.",
        "recommended_sources": [
          "mit-18-02sc-f2010"
        ],
        "skills": [
          "limits-continuity",
          "single-variable-calculus",
          "partial-derivatives",
          "gradient",
          "directional-derivative",
          "jacobian",
          "chain-rule",
          "taylor-approximation",
          "hessian",
          "critical-points",
          "convexity",
          "constrained-optimization",
          "implicit-differentiation",
          "matrix-calculus"
        ]
      },
      {
        "id": "linear-algebra",
        "area": "mathematics",
        "title": "Linear Algebra",
        "summary": "Move between algebraic, geometric, and spectral views of matrices.",
        "recommended_sources": [
          "mit-18-06-s2010"
        ],
        "skills": [
          "matrix-operations",
          "linear-systems",
          "row-reduction",
          "rank",
          "subspaces",
          "rank-nullity",
          "independence",
          "basis-dimension",
          "inverse",
          "determinant-trace",
          "change-of-basis",
          "orthogonality",
          "projection",
          "least-squares",
          "qr",
          "eigenvalues",
          "diagonalization",
          "symmetric-matrices",
          "quadratic-forms",
          "positive-definiteness",
          "svd",
          "low-rank-approximation",
          "pca-connection",
          "matrix-norms"
        ]
      },
      {
        "id": "probability",
        "area": "mathematics",
        "title": "Probability",
        "summary": "Reason from events and conditioning through multivariate random variables and limit theorems.",
        "recommended_sources": [
          "mit-18-05-s2022",
          "harvard-stat110-f2011"
        ],
        "skills": [
          "counting",
          "event-algebra",
          "inclusion-exclusion",
          "conditional-probability",
          "total-probability",
          "bayes-rule",
          "independence",
          "discrete-random-variables",
          "continuous-random-variables",
          "named-distributions",
          "transformations",
          "joint-marginal-conditional",
          "expectation",
          "variance",
          "covariance-correlation",
          "conditional-expectation",
          "total-expectation-variance",
          "sums-of-random-variables",
          "law-of-large-numbers",
          "central-limit-theorem",
          "multivariate-gaussian"
        ]
      },
      {
        "id": "statistics",
        "area": "mathematics",
        "title": "Statistics",
        "summary": "Derive estimators and interpret uncertainty, tests, and simple models.",
        "recommended_sources": [
          "mit-18-05-s2022",
          "pml-book1-2022"
        ],
        "skills": [
          "samples-statistics",
          "sampling-distributions",
          "estimator-bias-variance-mse",
          "consistency",
          "standard-error",
          "likelihood",
          "maximum-likelihood",
          "map",
          "method-of-moments",
          "bayesian-updating",
          "confidence-intervals",
          "null-alternative",
          "type-errors-power",
          "p-values-critical-regions",
          "goodness-of-fit",
          "chi-square",
          "simple-linear-regression"
        ]
      },
      {
        "id": "control-flow",
        "area": "programming",
        "title": "Control Flow",
        "summary": "Trace and write string traversal, branching, and loops accurately.",
        "recommended_sources": [
          "mit-6-100l-f2022"
        ],
        "skills": [
          "conditionals",
          "loops",
          "strings"
        ]
      },
      {
        "id": "data-structures",
        "area": "programming",
        "title": "Data Structures",
        "summary": "Choose and operate Python's built-ins and basic algorithmic containers.",
        "recommended_sources": [
          "mit-6-100l-f2022",
          "leetcode"
        ],
        "skills": [
          "lists-tuples",
          "dictionaries-sets",
          "stack",
          "queue",
          "heap",
          "hash-map",
          "binary-search",
          "dfs",
          "bfs"
        ]
      },
      {
        "id": "python",
        "area": "programming",
        "title": "Python",
        "summary": "Understand Python-specific semantics that produce common screening mistakes.",
        "recommended_sources": [
          "mit-6-100l-f2022"
        ],
        "skills": [
          "functions",
          "lists-tuples",
          "mutability",
          "aliasing",
          "shallow-copy",
          "complexity",
          "classes",
          "value-equality"
        ]
      },
      {
        "id": "recursion",
        "area": "programming",
        "title": "Recursion",
        "summary": "Identify base cases, trace calls, and implement recursive decompositions.",
        "recommended_sources": [
          "mit-6-100l-f2022",
          "leetcode"
        ],
        "skills": [
          "base-case",
          "recursive-trace",
          "recursive-implementation"
        ]
      },
      {
        "id": "classification",
        "area": "machine-learning",
        "title": "Classification",
        "summary": "Work with logistic models, losses, decision rules, and metrics.",
        "recommended_sources": [
          "google-mlcc",
          "pml-book1-2022"
        ],
        "skills": [
          "logistic-regression",
          "cross-entropy",
          "decision-boundary",
          "confusion-matrix",
          "precision-recall"
        ]
      },
      {
        "id": "convolution",
        "area": "machine-learning",
        "title": "Convolution",
        "summary": "Compute convolution outputs, receptive geometry, and parameter counts.",
        "recommended_sources": [
          "mit-6-036-exams"
        ],
        "skills": [
          "convolution-operation",
          "output-shape",
          "padding-stride",
          "parameter-count",
          "pooling",
          "receptive-field"
        ]
      },
      {
        "id": "dimensionality-reduction",
        "area": "machine-learning",
        "title": "Dimensionality Reduction",
        "summary": "Connect PCA objectives to covariance eigendecomposition and SVD.",
        "recommended_sources": [
          "pml-book1-2022"
        ],
        "skills": [
          "pca-objective",
          "centering",
          "covariance-eigendecomposition",
          "svd-pca",
          "explained-variance"
        ]
      },
      {
        "id": "gradient-descent",
        "area": "machine-learning",
        "title": "Gradient Descent",
        "summary": "Compute updates and reason about scale, learning rate, and convergence.",
        "recommended_sources": [
          "google-mlcc",
          "mit-6-036-exams"
        ],
        "skills": [
          "gradient-update",
          "learning-rate",
          "convergence",
          "sgd"
        ]
      },
      {
        "id": "neural-networks",
        "area": "machine-learning",
        "title": "Neural Networks",
        "summary": "Perform forward passes and backpropagate through small networks.",
        "recommended_sources": [
          "google-mlcc",
          "pml-book1-2022",
          "mit-6-036-exams"
        ],
        "skills": [
          "forward-pass",
          "activations",
          "chain-rule",
          "backpropagation",
          "parameter-count"
        ]
      },
      {
        "id": "optimization",
        "area": "machine-learning",
        "title": "Optimization",
        "summary": "Relate objectives, stationary points, convexity, and regularization.",
        "recommended_sources": [
          "mit-6-036-exams",
          "pml-book1-2022"
        ],
        "skills": [
          "objective-functions",
          "stationary-points",
          "convexity",
          "regularization",
          "optimization-diagnostics"
        ]
      },
      {
        "id": "regression",
        "area": "machine-learning",
        "title": "Regression",
        "summary": "Derive and interpret linear regression objectives and estimators.",
        "recommended_sources": [
          "google-mlcc",
          "pml-book1-2022"
        ],
        "skills": [
          "linear-regression",
          "squared-loss",
          "normal-equations",
          "regression-gradient",
          "regularization"
        ]
      },
      {
        "id": "theory",
        "area": "machine-learning",
        "title": "Theory",
        "summary": "Reason about generalization, model complexity, evaluation, and bias–variance.",
        "recommended_sources": [
          "google-mlcc",
          "mit-6-036-exams",
          "pml-book1-2022"
        ],
        "skills": [
          "bias-variance",
          "generalization",
          "overfitting",
          "train-validation-test",
          "model-complexity"
        ]
      },
      {
        "id": "unsupervised-learning",
        "area": "machine-learning",
        "title": "Unsupervised Learning",
        "summary": "Optimize and interpret clustering and latent-variable objectives.",
        "recommended_sources": [
          "pml-book1-2022"
        ],
        "skills": [
          "k-means",
          "clustering-objective",
          "gaussian-mixtures",
          "expectation-maximization"
        ]
      }
    ]
  }
}