Learning Graph Quality Metrics Report
Overview
- Total Concepts: 485
- Foundational Concepts (no prerequisites, other concepts depend on them): 14
- Terminal Nodes (nothing depends on them, but have prerequisites): 208
- Orphaned Nodes (completely disconnected, no edges): 0
- Concepts with Dependencies: 471
- Average Dependencies per Concept: 1.81
Graph Structure Validation
- Valid DAG Structure: ✅ Yes
- Self-Dependencies: None detected ✅
- Cycles Detected: 0
Foundational Concepts
These concepts have no prerequisites:
- 1: Python Programming Language
- 57: Raspberry Pi Pico
- 101: NeoPixel LED
- 141: RGB Color Model
- 246: Voltage
- 247: Electrical Current
- 248: Resistance
- 256: Breadboard
- 316: Decomposition
- 317: Pattern Recognition
- 318: Abstraction
- 319: Algorithm Design
- 390: Git Version Control
- 411: Project Ideation
Dependency Chain Analysis
- Maximum Dependency Chain Length: 18
Longest Learning Path:
- Python Programming Language (ID: 1)
- Variable (ID: 2)
- Variable Assignment (ID: 3)
- Integer Data Type (ID: 4)
- List Data Type (ID: 8)
- Tuple Data Type (ID: 9)
- RGB Tuple Format (ID: 120)
- Color Value Range (ID: 121)
- Normalization (0.0 to 1.0) (ID: 452)
- Normalized Color Values (ID: 173)
- Brightness Scaling Factor (ID: 207)
- Fade In and Out (ID: 182)
- Pattern Composition (ID: 220)
- Multi-Pattern Program (ID: 221)
- Pattern Switching Logic (ID: 222)
- Mode-Based Animation (ID: 240)
- Interactive Mode Controller (ID: 374)
- Input Abstraction Layer (ID: 380)
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: 208 (42.9% of all concepts)
- Healthy Range: 5-40% of total concepts
Concepts at the end of learning paths:
- 10: None Value
- 19: Nested Conditionals
- 23: break Statement
- 24: continue Statement
- 25: Loop Counter Variable
- 27: len() Function
- 28: int() Function
- 29: float() Function
- 33: Function Return Value
- 36: Local Variable
- 37: Global Variable
- 42: String Concatenation
- 44: List Iteration
- 45: Tuple Immutability
- 47: Integer Division
- 48: SyntaxError
- 49: NameError
- 50: IndentationError
- 51: TypeError
- 52: IndexError
...and 188 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 | 4 | Integer Data Type | 25 |
| 2 | 141 | RGB Color Model | 19 |
| 3 | 127 | Setting Individual Pixels | 18 |
| 4 | 246 | Voltage | 15 |
| 5 | 20 | for Loop | 14 |
| 6 | 31 | Function Definition | 14 |
| 7 | 56 | MicroPython | 13 |
| 8 | 101 | NeoPixel LED | 13 |
| 9 | 1 | Python Programming Language | 12 |
| 10 | 3 | Variable Assignment | 11 |
Outdegree Distribution
| Dependencies | Number of Concepts |
|---|---|
| 0 | 14 |
| 1 | 143 |
| 2 | 278 |
| 3 | 48 |
| 4 | 2 |
Recommendations
- ℹ️ High terminal node percentage (42.9%): Consider if some terminal concepts should be prerequisites for advanced concepts
- ✅ DAG structure verified: Graph supports valid learning progressions
- ℹ️ Long dependency chains (18): Ensure students can follow extended learning paths
Report generated by learning-graph-reports/analyze_graph.py