{
  "module_name": "02_activations",
  "module_path": "modules/source/02_activations",
  "analysis_date": "2025-07-12T22:48:40.235285",
  "total_lines": 1417,
  "total_cells": 17,
  "avg_cell_length": 65.29411764705883,
  "scaffolding_quality": 3,
  "complexity_distribution": {
    "1": 2,
    "2": 2,
    "3": 10,
    "4": 2,
    "5": 1
  },
  "learning_progression_quality": 4,
  "concepts_covered": [
    "Why Tanh is Useful",
    "Hidden layers",
    "Object Detection",
    "TensorFlow",
    "Connection to Real ML Systems",
    "Probabilities",
    "What is Sigmoid?",
    "Final package structure:",
    "Understand",
    "Numerical Stability",
    "one-way valve",
    "Show visual example",
    "Why Sigmoid is Useful",
    "Natural Language Processing",
    "Saturation",
    "Why Softmax is Essential",
    "Test chaining (composition)",
    "7",
    "EXAMPLE",
    "Tanh (Hyperbolic Tangent)",
    "Test all activations",
    "Test",
    "9",
    "2",
    "Computational Efficiency",
    "5",
    "x",
    "6",
    "functions",
    "Alternative",
    "Why this matters:",
    "Test with matrix (multiple rows)",
    "Learning:",
    "\ud83e\uddea Unit Test: Softmax Activation",
    "Test basic functionality",
    "Create Softmax instance",
    "Numerical stability",
    "Test with matrix",
    "Definition",
    "What You've Accomplished",
    "Move to Module 3",
    "Print final summary",
    "Production:",
    "Connection to Previous Modules",
    "\ud83d\udce6 Where This Code Lives in the Final Package",
    "Progress",
    "\ud83e\uddea Unit Test: Tanh Activation",
    "Learning Goals",
    "Key Concepts You've Learned",
    "Step 1: What is an Activation Function?",
    "Create Sigmoid instance",
    "Tanh",
    "Chain",
    "TinyTorch",
    "Test with mixed positive/negative values",
    "Use",
    "\ud83e\uddea Unit Test: Sigmoid Activation",
    "nput",
    "This is a unit test",
    "activation function"
  ],
  "todo_count": 4,
  "hint_count": 5,
  "test_count": 1,
  "critical_issues": [
    "Module too long (1417 lines) - students will be overwhelmed",
    "8 cells are too long (>50 lines)"
  ],
  "overwhelm_points": [
    "Cell 1: Too many concepts (5)",
    "Cell 2: Very long cell (86 lines)",
    "Cell 2: Multiple functions in one cell (3)",
    "Cell 3: Too many concepts (5)",
    "Cell 4: Too many concepts (5)",
    "Cell 5: Too many concepts (5)",
    "Cell 6: Very long cell (64 lines)",
    "Cell 6: Complex implementation without error handling guidance",
    "Cell 7: Long cell (34 lines)",
    "Cell 7: Too many concepts (5)",
    "Cell 8: Very long cell (69 lines)",
    "Cell 8: Complex implementation without error handling guidance",
    "Cell 9: Long cell (39 lines)",
    "Cell 9: Too many concepts (5)",
    "Cell 10: Very long cell (56 lines)",
    "Cell 10: Complex implementation without error handling guidance",
    "Cell 11: Long cell (39 lines)",
    "Cell 11: Too many concepts (5)",
    "Cell 12: Very long cell (64 lines)",
    "Cell 12: Complex implementation without error handling guidance",
    "Cell 13: Long cell (43 lines)",
    "Cell 13: Too many concepts (5)",
    "Cell 14: Very long cell (126 lines)",
    "Cell 14: Too many concepts (5)",
    "Cell 15: Very long cell (276 lines)",
    "Cell 16: Very long cell (112 lines)",
    "Cell 17: Too many concepts (5)"
  ],
  "recommendations": [
    "Break module into smaller sections or multiple modules",
    "Split 12 long cells into smaller, focused cells",
    "Add immediate feedback tests after implementations"
  ],
  "cell_analyses": [
    {
      "cell_type": "code",
      "line_count": 9,
      "char_count": 180,
      "complexity_score": 1,
      "educational_type": "demonstration",
      "has_todo": false,
      "has_hints": false,
      "concepts_introduced": [],
      "overwhelm_factors": [
        "Too many concepts (5)"
      ]
    },
    {
      "cell_type": "markdown",
      "line_count": 86,
      "char_count": 3823,
      "complexity_score": 3,
      "educational_type": "example_illustration",
      "has_todo": false,
      "has_hints": false,
      "concepts_introduced": [
        "Learning Goals",
        "2",
        "functions",
        "Use",
        "Understand"
      ],
      "overwhelm_factors": [
        "Very long cell (86 lines)",
        "Multiple functions in one cell (3)"
      ]
    },
    {
      "cell_type": "markdown",
      "line_count": 16,
      "char_count": 761,
      "complexity_score": 1,
      "educational_type": "concept_introduction",
      "has_todo": false,
      "has_hints": false,
      "concepts_introduced": [
        "Production:",
        "Final package structure:",
        "Why this matters:",
        "Learning:",
        "\ud83d\udce6 Where This Code Lives in the Final Package"
      ],
      "overwhelm_factors": [
        "Too many concepts (5)"
      ]
    },
    {
      "cell_type": "markdown",
      "line_count": 25,
      "char_count": 1389,
      "complexity_score": 3,
      "educational_type": "explanation",
      "has_todo": false,
      "has_hints": false,
      "concepts_introduced": [
        "Computational Efficiency",
        "TensorFlow",
        "Connection to Real ML Systems",
        "TinyTorch",
        "Numerical Stability"
      ],
      "overwhelm_factors": [
        "Too many concepts (5)"
      ]
    },
    {
      "cell_type": "markdown",
      "line_count": 22,
      "char_count": 1172,
      "complexity_score": 2,
      "educational_type": "concept_introduction",
      "has_todo": false,
      "has_hints": false,
      "concepts_introduced": [
        "Definition",
        "activation function",
        "Step 1: What is an Activation Function?",
        "Tanh",
        "Connection to Previous Modules"
      ],
      "overwhelm_factors": [
        "Too many concepts (5)"
      ]
    },
    {
      "cell_type": "markdown",
      "line_count": 64,
      "char_count": 2743,
      "complexity_score": 4,
      "educational_type": "concept_introduction",
      "has_todo": true,
      "has_hints": true,
      "concepts_introduced": [
        "Hidden layers",
        "Object Detection",
        "one-way valve",
        "Natural Language Processing",
        "EXAMPLE"
      ],
      "overwhelm_factors": [
        "Very long cell (64 lines)",
        "Complex implementation without error handling guidance"
      ]
    },
    {
      "cell_type": "markdown",
      "line_count": 34,
      "char_count": 1653,
      "complexity_score": 3,
      "educational_type": "example_illustration",
      "has_todo": false,
      "has_hints": false,
      "concepts_introduced": [
        "Test with mixed positive/negative values",
        "Show visual example",
        "Progress",
        "Test",
        "This is a unit test"
      ],
      "overwhelm_factors": [
        "Long cell (34 lines)",
        "Too many concepts (5)"
      ]
    },
    {
      "cell_type": "markdown",
      "line_count": 69,
      "char_count": 3009,
      "complexity_score": 4,
      "educational_type": "concept_introduction",
      "has_todo": true,
      "has_hints": true,
      "concepts_introduced": [
        "What is Sigmoid?",
        "nput",
        "Why Sigmoid is Useful",
        "Saturation",
        "EXAMPLE"
      ],
      "overwhelm_factors": [
        "Very long cell (69 lines)",
        "Complex implementation without error handling guidance"
      ]
    },
    {
      "cell_type": "markdown",
      "line_count": 39,
      "char_count": 1784,
      "complexity_score": 3,
      "educational_type": "example_illustration",
      "has_todo": false,
      "has_hints": false,
      "concepts_introduced": [
        "Create Sigmoid instance",
        "Show visual example",
        "Progress",
        "\ud83e\uddea Unit Test: Sigmoid Activation",
        "Test"
      ],
      "overwhelm_factors": [
        "Long cell (39 lines)",
        "Too many concepts (5)"
      ]
    },
    {
      "cell_type": "markdown",
      "line_count": 56,
      "char_count": 2258,
      "complexity_score": 3,
      "educational_type": "concept_introduction",
      "has_todo": true,
      "has_hints": true,
      "concepts_introduced": [
        "Why Tanh is Useful",
        "Hidden layers",
        "nput",
        "Tanh (Hyperbolic Tangent)",
        "EXAMPLE"
      ],
      "overwhelm_factors": [
        "Very long cell (56 lines)",
        "Complex implementation without error handling guidance"
      ]
    },
    {
      "cell_type": "markdown",
      "line_count": 39,
      "char_count": 1764,
      "complexity_score": 3,
      "educational_type": "example_illustration",
      "has_todo": false,
      "has_hints": false,
      "concepts_introduced": [
        "Show visual example",
        "Progress",
        "Test",
        "This is a unit test",
        "\ud83e\uddea Unit Test: Tanh Activation"
      ],
      "overwhelm_factors": [
        "Long cell (39 lines)",
        "Too many concepts (5)"
      ]
    },
    {
      "cell_type": "markdown",
      "line_count": 64,
      "char_count": 2729,
      "complexity_score": 3,
      "educational_type": "concept_introduction",
      "has_todo": true,
      "has_hints": true,
      "concepts_introduced": [
        "Probabilities",
        "Why Softmax is Essential",
        "EXAMPLE",
        "5",
        "x"
      ],
      "overwhelm_factors": [
        "Very long cell (64 lines)",
        "Complex implementation without error handling guidance"
      ]
    },
    {
      "cell_type": "markdown",
      "line_count": 43,
      "char_count": 2275,
      "complexity_score": 3,
      "educational_type": "example_illustration",
      "has_todo": false,
      "has_hints": false,
      "concepts_introduced": [
        "Show visual example",
        "\ud83e\uddea Unit Test: Softmax Activation",
        "Create Softmax instance",
        "Progress",
        "Test"
      ],
      "overwhelm_factors": [
        "Long cell (43 lines)",
        "Too many concepts (5)"
      ]
    },
    {
      "cell_type": "markdown",
      "line_count": 126,
      "char_count": 6515,
      "complexity_score": 3,
      "educational_type": "explanation",
      "has_todo": false,
      "has_hints": false,
      "concepts_introduced": [
        "Test all activations",
        "Test chaining (composition)",
        "Test with matrix (multiple rows)",
        "Test basic functionality",
        "Test with matrix"
      ],
      "overwhelm_factors": [
        "Very long cell (126 lines)",
        "Too many concepts (5)"
      ]
    },
    {
      "cell_type": "markdown",
      "line_count": 276,
      "char_count": 14438,
      "complexity_score": 3,
      "educational_type": "concept_reinforcement",
      "has_todo": false,
      "has_hints": false,
      "concepts_introduced": [
        "7",
        "9",
        "2",
        "6",
        "5"
      ],
      "overwhelm_factors": [
        "Very long cell (276 lines)"
      ]
    },
    {
      "cell_type": "markdown",
      "line_count": 112,
      "char_count": 6520,
      "complexity_score": 5,
      "educational_type": "concept_reinforcement",
      "has_todo": false,
      "has_hints": true,
      "concepts_introduced": [
        "2",
        "Chain",
        "Print final summary",
        "Alternative",
        "Tanh"
      ],
      "overwhelm_factors": [
        "Very long cell (112 lines)"
      ]
    },
    {
      "cell_type": "markdown",
      "line_count": 30,
      "char_count": 1566,
      "complexity_score": 2,
      "educational_type": "concept_introduction",
      "has_todo": false,
      "has_hints": false,
      "concepts_introduced": [
        "What You've Accomplished",
        "Key Concepts You've Learned",
        "Numerical stability",
        "Tanh",
        "Move to Module 3"
      ],
      "overwhelm_factors": [
        "Too many concepts (5)"
      ]
    }
  ],
  "overall_grade": "C",
  "category_grades": {
    "Scaffolding": "C",
    "Complexity": "B",
    "Cell_Length": "D"
  },
  "vs_targets": {
    "Length": "\u274c Too long (1417 lines, target: 200-400)",
    "Cell_Length": "\u274c Too long (65.3 avg, target: \u226430)",
    "Complexity": "\u2705 Good (17.6% high-complexity)"
  },
  "vs_best_practices": [
    "Cell 2: Too many concepts (5)",
    "Cell 2: Too long (86 lines)",
    "Cell 3: Too many concepts (5)",
    "Cell 4: Too many concepts (5)",
    "Cell 5: Too many concepts (5)",
    "Cell 6: Too many concepts (5)",
    "Cell 6: Too long (64 lines)",
    "Cell 7: Too many concepts (5)",
    "Cell 7: Too long (34 lines)",
    "Cell 8: Too many concepts (5)",
    "Cell 8: Too long (69 lines)",
    "Cell 9: Too many concepts (5)",
    "Cell 9: Too long (39 lines)",
    "Cell 10: Too many concepts (5)",
    "Cell 10: Too long (56 lines)",
    "Cell 11: Too many concepts (5)",
    "Cell 11: Too long (39 lines)",
    "Cell 12: Too many concepts (5)",
    "Cell 12: Too long (64 lines)",
    "Cell 13: Too many concepts (5)",
    "Cell 13: Too long (43 lines)",
    "Cell 14: Too many concepts (5)",
    "Cell 14: Too long (126 lines)",
    "Cell 15: Too many concepts (5)",
    "Cell 15: Too long (276 lines)",
    "Cell 16: Too many concepts (5)",
    "Cell 16: Too long (112 lines)",
    "Cell 17: Too many concepts (5)"
  ]
}