Learning Graph Quality Metrics Report¶
Overview¶
- Total Concepts: 326
- Foundational Concepts (no prerequisites, other concepts depend on them): 3
- Terminal Nodes (nothing depends on them, but have prerequisites): 96
- Orphaned Nodes (completely disconnected, no edges): 0
- Concepts with Dependencies: 323
- Average Dependencies per Concept: 1.64
Graph Structure Validation¶
- Valid DAG Structure: ✅ Yes
- Self-Dependencies: None detected ✅
- Cycles Detected: 0
Foundational Concepts¶
These concepts have no prerequisites:
- 1: Personal Agent
- 23: MicroPython Review
- 107: Sound Wave
Dependency Chain Analysis¶
- Maximum Dependency Chain Length: 21
Longest Learning Path:¶
- Sound Wave (ID: 107)
- Sampling (ID: 110)
- Bit Depth (ID: 112)
- Analog to Digital Conversion (ID: 115)
- I2S Bus (ID: 116)
- machine.I2S Class (ID: 120)
- I2S Receive (ID: 121)
- Audio Buffer (ID: 123)
- Audio Frame (ID: 125)
- RMS Loudness (ID: 156)
- Noise Floor (ID: 183)
- Speech Floor Gate (ID: 186)
- Level Gate (ID: 187)
- Utterance Boundaries (ID: 193)
- Voice Activity Detection (ID: 194)
- Wake Word (ID: 197)
- Template Matching (ID: 201)
- Template Correlation (ID: 202)
- Detection Threshold (ID: 209)
- False Accept (ID: 210)
- Threshold Trade-Off (ID: 212)
Terminal Nodes Analysis¶
Terminal nodes are concepts that nothing else depends on but have prerequisites. They represent natural endpoints of learning paths — culminating or specialized concepts.
- Total Terminal Nodes: 96 (29.4% of all concepts)
- Healthy Range: 5-40% of total concepts
Concepts at the end of learning paths:
- 2: Chatbot Versus Agent
- 12: Agent Progression Levels
- 19: Agent Data Flow
- 21: Agent Memory
- 24: Thonny IDE
- 36: Heap Fragmentation
- 42: Boot and Main Scripts
- 47: SRAM
- 58: Dupont Wires
- 62: Kit Bill of Materials
- 64: Power Supply Noise
- 77: Text Rendering
- 81: Hand Drawing
- 83: Sprite
- 87: Round Display Mask
- 89: Backlight Control
- 90: Display Refresh Rate
- 96: Long Press
- 102: Button Interrupt
- 105: Settings Screen
...and 76 more
Orphaned Nodes Analysis¶
Orphaned nodes are completely disconnected concepts with no inbound AND no outbound edges. These indicate a quality problem — every concept should connect to the graph.
- Total Orphaned Nodes: 0
✅ No orphaned nodes detected. All concepts are connected to the graph.
Connected Components¶
- Number of Connected Components: 1
✅ All concepts are connected in a single graph.
Indegree Analysis¶
Top 10 concepts that are prerequisites for the most other concepts:
| Rank | Concept ID | Concept Label | Indegree |
|---|---|---|---|
| 1 | 23 | MicroPython Review | 11 |
| 2 | 141 | FFT | 9 |
| 3 | 1 | Personal Agent | 8 |
| 4 | 9 | Buddy Server | 8 |
| 5 | 33 | Timer | 8 |
| 6 | 30 | GPIO Pin | 7 |
| 7 | 43 | Raspberry Pi Pico 2 W | 7 |
| 8 | 56 | Push Button | 7 |
| 9 | 73 | Direct Region Write | 7 |
| 10 | 224 | HTTP Protocol | 7 |
Outdegree Distribution¶
| Dependencies | Number of Concepts |
|---|---|
| 0 | 3 |
| 1 | 145 |
| 2 | 157 |
| 3 | 15 |
| 4 | 3 |
| 5 | 3 |
Recommendations¶
- ✅ Terminal node percentage (29.4%): Within healthy range (5-40%)
- ✅ DAG structure verified: Graph supports valid learning progressions
- ℹ️ Long dependency chains (21): Ensure students can follow extended learning paths
Report generated by learning-graph-reports/analyze_graph.py