Skip to content

Learning Graph Quality Metrics Report

Overview

  • Total Concepts: 452
  • Foundational Concepts (no prerequisites, other concepts depend on them): 2
  • Terminal Nodes (nothing depends on them, but have prerequisites): 235
  • Orphaned Nodes (completely disconnected, no edges): 0
  • Concepts with Dependencies: 450
  • Average Dependencies per Concept: 1.87

Graph Structure Validation

  • Valid DAG Structure: ✅ Yes
  • Self-Dependencies: None detected ✅
  • Cycles Detected: 0

Foundational Concepts

These concepts have no prerequisites:

  • 1: Python Interpreter Overview
  • 19: Command Line Basics

Dependency Chain Analysis

  • Maximum Dependency Chain Length: 13

Longest Learning Path:

  1. Python Interpreter Overview (ID: 1)
  2. print() Function (ID: 21)
  3. Indentation as Syntax (ID: 24)
  4. Code Block Structure (ID: 28)
  5. Defining a Function with def (ID: 115)
  6. Objects and Classes Overview (ID: 285)
  7. class Keyword (ID: 288)
  8. init() Constructor (ID: 289)
  9. Creating Class Instances (ID: 291)
  10. Inheritance Basics (ID: 295)
  11. Exception Hierarchy (ID: 282)
  12. Custom Exception Classes (ID: 283)
  13. Exception Chaining (ID: 284)

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: 235 (52.0% of all concepts)
  • Healthy Range: 5-40% of total concepts

Concepts at the end of learning paths:

  • 2: Python 2 vs Python 3
  • 4: Repl.it Online IDE
  • 5: Thonny Beginner IDE
  • 6: Spyder Scientific IDE
  • 7: VS Code Editor
  • 9: JupyterLab Environment
  • 15: Python REPL Shell
  • 16: Raspberry Pi Python Platform
  • 17: Skulpt Browser Python
  • 18: Google Colab Environment
  • 25: Case Sensitivity
  • 27: Blank Lines and Readability
  • 30: Whitespace Rules
  • 36: Augmented Assignment Operators
  • 37: Constants by Convention
  • 39: Swap Two Variables
  • 40: Naming Conflicts to Avoid
  • 43: Division Returns Float
  • 44: Integer Division Operator
  • 45: Modulo Operator

...and 215 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 137 List Type 34
2 58 String Type 33
3 115 Defining a Function with def 29
4 205 import Statement 25
5 31 Variable Definition and Assignment 24
6 41 Integer Type 23
7 1 Python Interpreter Overview 21
8 100 for Loop over Sequence 21
9 285 Objects and Classes Overview 18
10 163 Dictionary Type 16

Outdegree Distribution

Dependencies Number of Concepts
0 2
1 132
2 249
3 64
4 5

Recommendations

  • ℹ️ High terminal node percentage (52.0%): Consider if some terminal concepts should be prerequisites for advanced concepts
  • DAG structure verified: Graph supports valid learning progressions

Report generated by learning-graph-reports/analyze_graph.py