Learning Graph Quality Metrics Report¶
Overview¶
- Total Concepts: 537
- Foundational Concepts (no prerequisites, other concepts depend on them): 6
- Terminal Nodes (nothing depends on them, but have prerequisites): 159
- Orphaned Nodes (completely disconnected, no edges): 0
- Concepts with Dependencies: 531
- Average Dependencies per Concept: 1.71
Graph Structure Validation¶
- Valid DAG Structure: ✅ Yes
- Self-Dependencies: None detected ✅
- Cycles Detected: 0
Foundational Concepts¶
These concepts have no prerequisites:
- 1: Learning Python Prerequisites
- 26: Robot Arm
- 120: Voltage
- 194: 3D Printing
- 364: Camera
- 396: Large Language Model
Dependency Chain Analysis¶
- Maximum Dependency Chain Length: 22
Longest Learning Path:¶
- Voltage (ID: 120)
- Serial Communication (ID: 87)
- UART (ID: 88)
- USB Serial Adapter (ID: 91)
- Serial Port (ID: 92)
- Pyserial Library (ID: 93)
- Reading a Register (ID: 114)
- Reading Joint Positions (ID: 280)
- Raw Servo Units (ID: 282)
- Unit Conversion (ID: 284)
- Joint-Space Motion (ID: 285)
- Single-Joint Move (ID: 286)
- Multi-Joint Move (ID: 287)
- Waypoint List (ID: 289)
- Pick and Place (ID: 306)
- Task Planning (ID: 436)
- Agent Planner (ID: 421)
- Learned Policy Executor (ID: 422)
- Planner-Executor Split (ID: 423)
- Desk Assistant Project (ID: 462)
- Capstone Project (ID: 466)
- Project Documentation (ID: 467)
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: 159 (29.6% of all concepts)
- Healthy Range: 5-40% of total concepts
Concepts at the end of learning paths:
- 3: REPL
- 8: Requirements File
- 15: Naming Conventions
- 19: Code Editor
- 21: Configuration File
- 23: Argparse Module
- 30: Prismatic Joint
- 40: Accuracy
- 43: Shoulder
- 59: Hobby Servo
- 74: Magnetic Encoder
- 76: Velocity Feedback
- 82: Overload Protection
- 84: Servo Compliance
- 85: Quasi-Direct Drive
- 86: Motor Controller
- 101: Daisy Chain Wiring
- 104: CAN Frame
- 109: Vendor SDK
- 110: Struct Module
...and 139 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 | 142 | Robot Safety | 16 |
| 2 | 4 | Python Script | 15 |
| 3 | 26 | Robot Arm | 14 |
| 4 | 1 | Learning Python Prerequisites | 13 |
| 5 | 57 | Actuator | 12 |
| 6 | 120 | Voltage | 11 |
| 7 | 398 | Agent Tool | 11 |
| 8 | 7 | Pip | 10 |
| 9 | 28 | Joint | 10 |
| 10 | 162 | Bill of Materials | 9 |
Outdegree Distribution¶
| Dependencies | Number of Concepts |
|---|---|
| 0 | 6 |
| 1 | 207 |
| 2 | 272 |
| 3 | 51 |
| 4 | 1 |
Recommendations¶
- ✅ Terminal node percentage (29.6%): Within healthy range (5-40%)
- ✅ DAG structure verified: Graph supports valid learning progressions
- ℹ️ Long dependency chains (22): Ensure students can follow extended learning paths
Report generated by learning-graph-reports/analyze_graph.py