Quiz: Learning Graph Quality and Validation
Test your understanding of DAG validation, quality metrics, circular dependency detection, and taxonomy distribution analysis with these questions.
1. What is the time complexity of the DFS-based cycle detection algorithm used to validate learning graphs?
??? question "Show Answer" The correct answer is B. The depth-first search (DFS) algorithm with cycle detection runs in O(V + E) time complexity, where it must visit each vertex once and traverse each edge once. This linear-time algorithm is efficient for validating learning graphs. Option A ignores edge traversal, option C suggests an unnecessarily expensive approach, and option D describes a sorting algorithm complexity.
**Concept Tested:** DAG Validation
**See:** [DAG Validation](../../glossary.md#dag-validation)
2. During DFS-based cycle detection, what does encountering a gray node indicate?
??? question "Show Answer" The correct answer is C. In the three-color DFS algorithm, gray nodes are currently being explored (on the recursion stack). Encountering a gray node during traversal means you've found a back edge pointing to an ancestor, which indicates a cycle. White nodes (option A) are unvisited, black nodes (option B) are completed, and option D describes a tree edge, not a back edge.
**Concept Tested:** Circular Dependency Detection
**See:** [Circular Dependency Detection](../../glossary.md#circular-dependency-detection)
3. What does an orphaned node in a learning graph represent?
??? question "Show Answer" The correct answer is B. An orphaned node has an outdegree of zero, meaning no other concepts depend on it. These are terminal or culminating concepts. Option A describes foundational concepts (indegree = 0, not orphaned), option C describes disconnected components (a different issue), and option D is arbitrary and doesn't define orphaned status.
**Concept Tested:** Orphaned Nodes
**See:** [Orphaned Nodes](../../glossary.md#orphaned-nodes)
4. In a healthy learning graph, what percentage of concepts should typically be orphaned nodes?
??? question "Show Answer" The correct answer is B. A well-designed learning graph typically has 5-10% orphaned nodes representing culminating concepts and specialized topics. Too few orphaned nodes (option A) suggests incomplete terminal concepts, while too many (options C and D) indicates concepts that may be improperly isolated, missing dependent concepts, or too specialized for the course scope.
**Concept Tested:** Quality Metrics for Graphs
**See:** [Orphaned Nodes](../../glossary.md#orphaned-nodes)
5. You run analyze-graph.py and discover your learning graph contains a cycle: A → B → C → D → A. What is the recommended approach to resolve this?
??? question "Show Answer" The correct answer is C. To break a cycle, examine the concepts involved to determine which dependency is weakest or least pedagogically justified, then remove that edge. This preserves the important prerequisite relationships while eliminating the cycle. Option A discards valuable concepts unnecessarily, option B would worsen the problem, and option D would create more cycles, violating the DAG requirement.
**Concept Tested:** Circular Dependency Detection
**See:** [Circular Dependency Detection](../../glossary.md#circular-dependency-detection)
6. What is the optimal range for average dependencies per concept in a learning graph?
??? question "Show Answer" The correct answer is B. The optimal average dependencies per concept is 2.0-4.5, balancing prerequisite completeness with learner accessibility. Below 2.0 (option A) suggests overly linear graphs, while above 5.0 (options C and D) may indicate over-specification of prerequisites or unrealistic prerequisite burdens on learners.
**Concept Tested:** Average Dependencies Per Concept
**See:** [Average Dependencies Per Concept](../../glossary.md#average-dependencies-per-concept)
7. A learning graph has 200 concepts and 620 total dependency edges. What is the average dependencies per concept, and how should this be interpreted?
??? question "Show Answer" The correct answer is A. Average dependencies = Total Edges / Total Nodes = 620 / 200 = 3.1 dependencies per concept. This falls within the ideal 2.0-4.5 range for intermediate courses with moderate integration. Option B incorrectly inverts the calculation, option C misplaces the decimal, and option D confuses the total edges with average.
**Concept Tested:** Average Dependencies Per Concept
**See:** [Average Dependencies Per Concept](../../glossary.md#average-dependencies-per-concept)
8. Your learning graph quality report shows a score of 68. What action should you take?
??? question "Show Answer" The correct answer is B. A quality score of 68 falls in the "Acceptable" range (60-74), which means there are several issues to address before content generation but the graph doesn't require complete restructuring. The score indicates specific problems that can be identified and corrected. Option A ignores quality concerns, option C is unnecessarily drastic, and option D dismisses a valuable quality metric.
**Concept Tested:** Learning Graph Quality Score
**See:** [Learning Graph Quality Score](../../glossary.md#learning-graph-quality-score)
9. In taxonomy distribution analysis, what threshold indicates over-representation of a single category?
??? question "Show Answer" The correct answer is C. Over-representation occurs when a single taxonomy category exceeds 30% of total concepts, indicating imbalanced coverage that may result from scope creep, expert bias, or incomplete mapping in other categories. Options A and B set the threshold too low for natural emphasis areas, while option D sets it too high, allowing excessive concentration.
**Concept Tested:** Avoiding Over-Representation
**See:** [Avoiding Over-Representation](../../glossary.md#avoiding-over-representation)
10. Which Python script converts learning graph CSV format to vis-network JSON format for visualization?
??? question "Show Answer" The correct answer is B. The csv-to-json.py script performs the conversion from CSV (ConceptID, ConceptLabel, Dependencies, TaxonomyID) to vis-network JSON format with nodes, edges, groups, and metadata sections. The analyze-graph.py script (option A) performs quality validation, taxonomy-distribution.py (option C) analyzes category balance, and option D is not a real script in the toolkit.
**Concept Tested:** csv-to-json.py Script
**See:** [csv-to-json.py Script](../../glossary.md#csv-to-jsonpy-script)
Quiz Statistics
- Total Questions: 10
- Bloom's Taxonomy Distribution:
- Remember: 2 questions (20%)
- Understand: 3 questions (30%)
- Apply: 4 questions (40%)
- Analyze: 1 question (10%)
- Concepts Covered: 10 of 16 chapter concepts (63%)