Skip to content

Learning Graph Generator Session Log

Skill Version: 0.05 Date: 2026-06-02 Course: Semiconductor Physics: Fundamentals to Advanced Applications

Session Summary

Generated a 600-concept learning graph for the semiconductor physics course. The course description had a quality score of 95/100, so the course description assessment step was skipped to save tokens.

Steps Completed

Step 0: Setup

  • Verified project structure: docs/ directory and mkdocs.yml present
  • Created docs/learning-graph/ directory (already existed)
  • Copied Python scripts from skill package

Step 1: Course Description Quality Assessment

  • Skipped — quality score of 95/100 found in course description YAML front matter (above 85 threshold)

Step 2: Concept Labels

  • Generated 600 concepts covering all major topic areas in semiconductor physics
  • Saved to concept-list.md
  • Categories covered: foundations, crystal structure, quantum mechanics, band theory, carrier statistics, transport, generation-recombination, p-n junctions, MOS structures, BJTs, FETs, optoelectronics, advanced materials, power/microwave devices, fabrication, and characterization/modeling

Step 3: Dependency Graph

  • Generated learning-graph.csv with 600 concepts and pipe-delimited dependency columns
  • Fixed 3 initial cycle errors detected by analysis:
  • Saturation Region MOSFET ↔ Pinch-Off Point (mutual dependency)
  • Impact Ionization ↔ Avalanche Breakdown (mutual dependency)
  • Photodiode Responsivity ↔ Quantum Efficiency Photodiode (mutual dependency)
  • Fixed 3 connectivity issues (Metallic Bonding, Maxwell-Boltzmann, Bose-Einstein isolated)

Step 4: Graph Quality Validation

  • Tool: analyze-graph.py (skill package)
  • Result: Valid DAG ✅
  • Total concepts: 600
  • Foundational concepts: 12
  • Terminal nodes: 215 (35.8%)
  • Orphaned nodes: 0
  • Connected components: 1
  • Max dependency chain: 32 hops
  • Longest path: Wave-Particle Duality → Tandem Solar Cell

Step 5: Concept Taxonomy

  • Created 16 taxonomy categories
  • Saved to concept-taxonomy.md

Step 5b: Taxonomy Names JSON

  • Created taxonomy-names.json with human-readable names for all 16 categories

Step 6: Taxonomy Added to CSV

  • TaxonomyID column added directly during CSV generation

Step 7: Metadata JSON

  • Created metadata.json with Dublin Core fields
  • Title, description, creator (Dan Mccreary), date (2026-06-02), version 1.0

Step 8: Color Config

  • Created color-config.json with 16 named CSS colors
  • Each category assigned a distinct color from the recommended palette

Step 9: Learning Graph JSON

  • Tool: csv-to-json.py v0.04
  • Command: python csv-to-json.py learning-graph.csv learning-graph.json color-config.json metadata.json taxonomy-names.json
  • Result: learning-graph.json generated with 600 nodes, 1075 edges, 16 groups

Step 10: Taxonomy Distribution Report

  • Tool: taxonomy-distribution.py (skill package)
  • Result: taxonomy-distribution.md
  • All 16 categories under 30% threshold
  • Largest: FET (9.5%), Smallest: FOUND (1.8%)
  • Balance spread: 7.7% — Excellent ✅

Step 11: Index Page

  • Created index.md from template, customized for semiconductor physics course

Step 12: Navigation Update

  • Added Learning Graph section to mkdocs.yml nav

Files Created

File Description
concept-list.md 600 numbered concept labels
learning-graph.csv Full dependency graph with taxonomy (600 rows)
taxonomy-names.json Taxonomy ID → human-readable name mapping
metadata.json Dublin Core metadata for the learning graph
color-config.json Taxonomy ID → CSS color mapping
learning-graph.json Complete vis-network JSON (600 nodes, 1075 edges)
concept-taxonomy.md 16 taxonomy category definitions
quality-metrics.md DAG quality validation report
taxonomy-distribution.md Category distribution analysis
index.md Learning graph section introduction page

Graph Statistics

Metric Value
Total Concepts 600
Total Dependency Edges 1,075
Taxonomy Categories 16
Foundational Concepts 12
Terminal Nodes 215
Max Chain Length 32
Connected Components 1
Valid DAG ✅ Yes
Cycles 0
Orphaned Nodes 0

Python Tools Used

Tool Version
csv-to-json.py v0.04
analyze-graph.py (skill package)
taxonomy-distribution.py (skill package)