Module 00_setup migration: Core functionality complete, NBGrader architecture issue discovered

 COMPLETED:
- Instructor solution executes perfectly
- NBDev export works (fixed import directives)
- Package functionality verified
- Student assignment generation works
- CLI integration complete
- Systematic testing framework established

⚠️ CRITICAL DISCOVERY:
- NBGrader requires cell metadata architecture changes
- Current generator creates content correctly but wrong cell types
- Would require major rework of assignment generation pipeline

📊 STATUS:
- Core TinyTorch functionality:  READY FOR STUDENTS
- NBGrader integration: Requires Phase 2 rework
- Ready to continue systematic testing of modules 01-06

🔧 FIXES APPLIED:
- Added #| export directive to imports in enhanced modules
- Fixed generator logic for student scaffolding
- Updated testing framework and documentation
This commit is contained in:
Vijay Janapa Reddi
2025-07-12 09:08:45 -04:00
parent 77030a0009
commit 77150be3a6
23 changed files with 11671 additions and 258 deletions

View File

@@ -90,12 +90,18 @@ class NotebookGenerator:
in_solution = False
in_hidden_tests = False
placeholder_added = False
for line in source_lines:
if self.markers['nbgrader_solution_begin'] in line:
in_solution = True
placeholder_added = False
if self.use_nbgrader:
new_lines.append(line) # Keep marker for nbgrader
# Add placeholder immediately after BEGIN SOLUTION
new_lines.append(" # YOUR CODE HERE\n")
new_lines.append(" raise NotImplementedError()\n")
placeholder_added = True
continue
elif self.markers['nbgrader_solution_end'] in line:
in_solution = False
@@ -113,13 +119,8 @@ class NotebookGenerator:
new_lines.append(line) # Keep marker for nbgrader
continue
elif in_solution:
# Replace solution with placeholder
if not self.use_nbgrader:
continue # Skip solution lines for regular students
else:
new_lines.append(" # YOUR CODE HERE\n")
new_lines.append(" raise NotImplementedError()\n")
in_solution = False # Only add placeholder once
# Skip solution lines (placeholder already added)
continue
elif in_hidden_tests:
# Keep hidden tests for nbgrader, remove for regular students
if self.use_nbgrader: