Files
TinyTorch/nbgrader_config.py
Vijay Janapa Reddi 11c56ba2dd Integrate NBGrader with TinyTorch and enhance status checking
- Fix NBGrader configuration to use proper assignments/ directory structure
- Update NBGrader commands to work with TinyTorch modules in modules/source/
- Initialize complete NBGrader workflow: generate -> release -> collect -> autograde
- Add virtual environment setup with all required dependencies (numpy, matplotlib, pytest, nbgrader, rich, networkx)
- Integrate comprehensive status checking into tito CLI hierarchy (tito/core/status_analyzer.py)
- Remove standalone status scripts - everything now unified under tito commands
- Provide end-to-end tested workflow for educational assignment management

Tested functionality:
- tito module status --comprehensive (full system health dashboard)
- tito nbgrader init/generate/release/status (complete assignment workflow)
- Virtual environment with proper dependency management
- Professional CLI architecture with no standalone scripts
2025-09-16 02:30:49 -04:00

57 lines
1.9 KiB
Python

# NBGrader Configuration for TinyTorch ML Systems Course
c = get_config()
# Course Information
c.CourseDirectory.course_id = "tinytorch-ml-systems"
# Directory Structure
c.CourseDirectory.source_directory = "assignments/source"
c.CourseDirectory.release_directory = "assignments/release"
c.CourseDirectory.submitted_directory = "assignments/submitted"
c.CourseDirectory.autograded_directory = "assignments/autograded"
c.CourseDirectory.feedback_directory = "assignments/feedback"
# Solution Removal Configuration
c.ClearSolutions.code_stub = {
"python": "# YOUR CODE HERE\nraise NotImplementedError()"
}
# Text Stub for written responses
c.ClearSolutions.text_stub = "YOUR ANSWER HERE"
c.ClearSolutions.begin_solution_delimeter = "### BEGIN SOLUTION"
c.ClearSolutions.end_solution_delimeter = "### END SOLUTION"
c.ClearSolutions.begin_text_delimeter = "### BEGIN TEXT SOLUTION"
c.ClearSolutions.end_text_delimeter = "### END TEXT SOLUTION"
# Enforce Metadata (require proper cell metadata for grading)
c.ClearSolutions.enforce_metadata = True
# Validation Configuration
c.Validate.ignore_checksums = False
# Logging Configuration
c.NbGrader.log_level = "INFO"
# Assignment and Student Configuration
c.AssignApp.generate_unique_ids = True # Ensure uniqueness of cell IDs
c.AssignApp.create_assignment = True
# Autograder Configuration
c.AutogradeApp.update = True # Update existing autograded notebooks
c.AutogradeApp.create = True # Create new entries if they don't exist
# Feedback Configuration
c.FeedbackApp.generate_feedback = True
c.FeedbackApp.output_dir = "modules/feedback"
# Student IDs (optional: helps when testing locally or in custom workflows)
c.Gradebook.db_url = "sqlite:///gradebook.db"
# Hide hidden test cells in release notebooks
c.ClearSolutions.remove_hidden_tests = True
# Set default language for code cells (if mixed notebooks used)
c.ClearSolutions.language = "python"