Commit Graph

1187 Commits

Author SHA1 Message Date
Vijay Janapa Reddi
56d8feb2ba Improve SIGCSE paper with reviewer feedback and clean up repository
Paper improvements:
- Add differentiated time estimates (60-80h experienced, 100-120h typical, 140-180h struggling)
- Moderate cognitive load claims with hedging language and empirical validation notes
- Add ML Systems Research subsection with citations (Baydin AD survey, Chen gradient checkpointing, TVM, FlashAttention)
- Add comprehensive Threats to Validity section (selection bias, single institution, demand characteristics, no control group, maturation, assessment validity)
- Define jargon (monkey-patching) at first use with clear explanation

Documentation updates:
- Restructure TITO CLI docs into dedicated section (overview, modules, milestones, data, troubleshooting)
- Update student workflow guide and quickstart guide
- Remove deprecated files (testing-framework.md, tito-essentials.md)
- Update module template and testing architecture docs

Repository cleanup:
- Remove temporary review files (ADDITIONAL_REVIEWS.md, EDTECH_OPENSOURCE_REVIEWS.md, TA_STRUGGLING_STUDENT_REVIEWS.md, etc.)
- Remove temporary development planning docs
- Update demo GIFs and configurations
2025-11-16 23:46:38 -05:00
Vijay Janapa Reddi
8074f89679 Enhance intro page carousel with mobile responsiveness and sidebar textbook link
- Remove carousel text labels, rely on larger terminal frame titles (20px bold)
- Fix navigation arrow positioning: moved to top: 405px with z-index: 100
- Reduce carousel height from 500px to 450px for better spacing
- Add clickable sidebar link to mlsysbook.ai via JavaScript
- Fix quickstart button link to use .html extension
- Add mobile responsive CSS for logo, headings, and carousel
- Update Terminalizer configs with larger frame title font
- Add textbook link with hover effects in intro page
2025-11-16 23:45:39 -05:00
Vijay Janapa Reddi
06406a20c5 Reduce carousel-track height to make navigation arrows visible
Reduced min-height from 500px to 420px so the navigation arrows
appear within viewport instead of being pushed far below the visible area.
2025-11-16 23:13:17 -05:00
Vijay Janapa Reddi
42775016ac Fix carousel arrows overlapping GIF - move outside carousel-track
Changes to HTML:
- Move carousel-nav outside carousel-track container
- Navigation now appears as separate element below the carousel

Changes to CSS:
- Remove absolute positioning (no longer needed)
- Use simple flexbox layout with margin-top: 1rem
- Remove bottom/left/right positioning properties

This fixes the overlap issue where arrows were positioned at the bottom
of the carousel-track, overlapping the GIF content. Arrows now appear
cleanly below the entire carousel as a separate row.
2025-11-16 23:09:03 -05:00
Vijay Janapa Reddi
193025cc37 Move carousel arrows below heading for cleaner layout
Changes to CSS:
- Position carousel-nav at bottom:0 instead of vertical center
- Use centered horizontal layout with 1rem gap
- Reduce arrow size to 32px (smaller, less intrusive)
- Remove semi-transparent background, use solid #e2e8f0
- Simplify shadow to 0 2px 6px

The vertical center placement with arrows overlapping the GIF content
looked messy and busy. This cleaner approach positions compact arrows
centered below the heading ("Clone & Setup" etc.), keeping them visible
but not interfering with the terminal content display.
2025-11-16 23:03:57 -05:00
Vijay Janapa Reddi
528b74e992 Position carousel arrows at vertical center following standard conventions
Changes to CSS:
- Position carousel-nav absolutely at top:50% with translateY(-50%)
- Use space-between to place arrows on left/right edges
- Increase arrow size to 44px for better visibility
- Add semi-transparent background: rgba(226, 232, 240, 0.95)
- Enhance shadow for better visibility over content
- Use pointer-events:none on container, auto on arrows

Changes to HTML:
- Move carousel-nav inside carousel-track for proper positioning
- Remove carousel-indicators div (not using dot indicators)
- Simplify to just prev/next arrow buttons

This follows standard carousel UX conventions where navigation arrows
appear at the vertical center of the content, positioned on the left/right
edges. Arrows are now centered on the heading text ("Clone & Setup" etc.)
rather than below it, making them more visible and easier to use.
2025-11-16 23:02:23 -05:00
Vijay Janapa Reddi
5c31442d33 Remove redundant carousel description text
Removed the <p> description lines from all carousel items:
- "git clone → ./setup → tito system doctor"
- "tito module start 01 → Code → Test inline"
- "tito module complete → Your code becomes tinytorch/"
- "tito milestone run 03 → 1986 MLP uses YOUR code"

Now carousel shows only clean headings (Clone & Setup, Build in Jupyter, etc.)
below each GIF. The workflow details are already visible in the GIF animations,
making the text descriptions redundant.
2025-11-16 23:01:17 -05:00
Vijay Janapa Reddi
f07733f8d9 Move carousel navigation arrows below carousel content
Changes to CSS:
- Remove absolute positioning from .carousel-nav
- Use flexbox centered layout with 2rem gap between arrows
- Reduce arrow size back to 36px (from 40px)
- Add margin-top: 1.5rem for spacing from carousel text

Changes to HTML:
- Move carousel-nav outside carousel-track
- Navigation now appears below carousel text instead of overlaid on GIF

This fixes overlap issues - arrows are now cleanly positioned
below the carousel text labels, not on top of the GIF terminal window.
2025-11-16 22:58:12 -05:00
Vijay Janapa Reddi
9d9f1213af Fix carousel navigation arrow overlap with heading text
Changes to CSS:
- Position carousel-nav absolutely at top:40% of carousel-track
- Move arrows to sides (space-between) instead of center bottom
- Increase arrow size to 40px for better visibility
- Add box-shadow to arrows for depth
- Use pointer-events:none on nav container, auto on arrows

Changes to HTML:
- Move carousel-nav inside carousel-track for proper absolute positioning

This fixes the overlap where left/right navigation arrows were appearing
on top of the carousel heading text ("Build in Jupyter" etc).
Arrows now appear on the left/right sides of the GIF at the vertical center.
2025-11-16 22:53:15 -05:00
Vijay Janapa Reddi
7259d98582 Fix carousel text visibility - ensure labels not cut off
Changes:
- Increase carousel-track min-height from 410px to 500px
- Change overflow from hidden to visible to prevent text cutoff
- Add margin-top and padding to carousel-text for better spacing
- Reduce heading size from 1.75rem to 1.5rem for better fit
- Add monospace font to carousel description text
- Update mobile responsive breakpoint with overflow:visible
- Change fixed height to auto for GIF preview on mobile

This ensures carousel text labels ("Clone & Setup", "Build in Jupyter", etc.)
are fully visible below the GIF demos without being cut off.
2025-11-16 22:48:03 -05:00
Vijay Janapa Reddi
35c752e4b9 Remove test carousel GIF files 2025-11-16 22:18:22 -05:00
Vijay Janapa Reddi
faa073a3fc Update carousel terminal configs: optimized dimensions and styling
Configuration updates:
- Reduced terminal width from 160 to 100 columns for better text density
- Increased font size from 12px to 14px for improved readability
- Added ANSI green color codes to shell prompts
- Updated base-config.yml as single source of truth

Generated new GIFs:
- 01-clone-setup.gif: Regenerated with new 100-column layout
- Other GIFs pending regeneration with ./render-all.sh

Documentation:
- Updated README with current dimensions and font size
- Documented configuration inheritance pattern

These changes optimize the carousel display by reducing wasted whitespace
while maintaining readability with larger fonts. The 100-column width
provides better visual balance in the carousel container.
2025-11-16 22:18:08 -05:00
Vijay Janapa Reddi
c3b2ba0212 Address reviewer feedback: positioning, scope, and adoption clarity
Conducted multi-perspective review (6 reviewers: undergrad student, CS
professor, industry engineer, PhD student, learning scientist, program
chair). Implemented all high-priority improvements:

1. Added 'Is TinyTorch Right for You?' self-assessment (Section 1.1)
   - When to use vs not use TinyTorch
   - Clear positioning (after CS231n, before advanced systems)
   - Time commitment transparency (60-80 hours)
   - Target audience specification

2. Added 3 concrete course integration models (Section 3.5)
   - Model 1: Standalone 4-credit course (14 weeks)
   - Model 2: Half-semester in existing ML course (7 weeks)
   - Model 3: Optional deep-dive track (self-paced)
   - Instructor resource needs explicitly stated

3. Sharpened abstract contribution framing
   - Changed from 'framework' to 'pedagogical patterns'
   - Emphasized design contribution (not empirical study)
   - Clarified enables educators + researchers

4. Added 'What's NOT Covered' prominently (Section 6.1)
   - GPU/CUDA programming explicitly omitted
   - Distributed training not covered
   - Production deployment/serving excluded
   - Advanced systems techniques listed
   - Clear positioning: foundation, not replacement

5. Verified Adam memory technical precision
   - All mentions already specify '3x parameter memory'
   - Distinction from activation memory clear

Key reviewer themes addressed:
- Positioning ambiguity → Clear when/how to use
- GPU omission concerns → Prominently acknowledged upfront
- Adoption barriers → 3 concrete integration models
- Time investment ROI → Self-assessment + positioning

Paper now targets SIGCSE 2026 design track more clearly.
2025-11-16 21:52:04 -05:00
Vijay Janapa Reddi
8ef45c1bd7 Add implementation details from module analysis
Analyzed actual module source code and added key pedagogical features:

Major additions:
- Historical milestone validation system (Section 5.3)
  * 6 milestones recreating 1957-2024 ML breakthroughs
  * Objective correctness validation via historical accuracy
  * Intrinsic motivation through narrative framing
  * Dual purpose: pedagogy + implementation validation

- NBGrader automated assessment infrastructure (Section 5.4)
  * Solution/test cells with grade metadata
  * Point allocation reflects priorities
  * Enables MOOC/large classroom deployment
  * Caveat: unvalidated at scale

- Production package organization (Section 5.5)
  * Modules export to tinytorch.nn.Conv2d API
  * Students build shippable framework, not toy code
  * nbdev integration for professional workflows

- Connection Maps for knowledge integration (Section 5.6)
  * Shows prerequisites, current focus, enabled capabilities
  * Makes expert knowledge structures visible
  * Reduces 'why does this matter' disengagement

Updated abstract to highlight 3 (not 2) novel contributions, adding
historical milestone validation as third major pattern.

Implementation analysis documented in SUGGESTED_ADDITIONS.md for
reference.
2025-11-16 21:33:33 -05:00
Vijay Janapa Reddi
87187112f1 Update carousel with wider terminal GIFs (160x24) and colored prompts
- Increased terminal dimensions from 80x24 to 160x24 for wider, more cinematic format
- Added ANSI green color codes to prompts for better visual appeal
- Updated all 4 Terminalizer YAML configs with consistent styling
- Created base-config.yml as single source of truth for shared settings
- Updated CSS to use dark terminal background instead of gray
- Changed object-fit from contain to cover for better width filling
- Added render-all.sh batch script for regenerating all GIFs
- Updated README with complete documentation and troubleshooting

Generated GIFs:
- 01-clone-setup.gif (7.0M)
- 02-build-jupyter.gif (1.3M)
- 03-export-tito.gif (1.9M)
- 04-validate-history.gif (3.3M)
2025-11-16 21:33:04 -05:00
Vijay Janapa Reddi
33adb79de5 Update all carousel GIFs with wider dimensions (120x30)
All 4 GIFs regenerated with new format:
- 01-clone-setup.gif (2.7M)
- 02-build-jupyter.gif (565K)
- 03-export-tito.gif (890K)
- 04-validate-history.gif (1.5M)

Consistent 120×30 dimensions fill carousel width nicely
2025-11-16 18:49:27 -05:00
Vijay Janapa Reddi
faab91d009 Add research paper: TinyTorch educational framework design
Complete LaTeX source for academic paper on TinyTorch pedagogical approach.

Key contributions:
- Progressive disclosure via monkey-patching
- Systems-first curriculum design
- Historical milestone validation
- Constructionist framework building

Includes 7 sections, 3 tables, 5 code listings, 22 references.
All reviewer feedback incorporated.

Ready for submission to ArXiv, SIGCSE 2026, ICER 2026.
2025-11-16 18:41:23 -05:00
Vijay Janapa Reddi
7941899b70 Update GIFs with wider dimensions (120x30)
Regenerated carousel GIFs with new wider format:
- 120 columns × 30 rows (previously 80×24)
- Better fills carousel width
- More professional appearance
2025-11-16 18:26:55 -05:00
Vijay Janapa Reddi
53f93ba96e Add shared base config for demo styling consistency
- Create base-config.yml as single source of truth for styling
- Document that Terminalizer doesn't support config inheritance
- Individual demo configs are manually kept in sync with base config
- Makes it easier to maintain consistent look across all demos
2025-11-16 18:21:46 -05:00
Vijay Janapa Reddi
bce95c11b9 Add animated carousel demos with Terminalizer
- Add 4 workflow demo GIFs (Clone & Setup, Build in Jupyter, Export with TITO, Validate with History)
- Create Terminalizer YAML configs for reproducible renders (120x30, vibrant color themes)
- Add render-all.sh script for batch GIF generation
- Update carousel CSS for proper GIF display with emoji fallbacks
- Update intro.md carousel to reference GIFs
- Add comprehensive README with setup instructions

All configs use consistent styling:
- Dimensions: 120 columns × 30 rows (wider format)
- Theme: Vibrant colors with good contrast
- Font: Monaco 12px monospace
- Quality: 100% for crisp output
2025-11-16 18:20:12 -05:00
Vijay Janapa Reddi
f0c39b5c04 Merge main into dev: sync static assets deployment fixes 2025-11-15 12:01:19 -05:00
Vijay Janapa Reddi
34542a8140 Fix static assets deployment: add missing JS files to conf.py and ensure .nojekyll is copied to build output 2025-11-15 12:00:59 -05:00
Vijay Janapa Reddi
291f111b50 Merge branch 'main' into dev 2025-11-15 11:59:55 -05:00
Vijay Janapa Reddi
fbd8a95b34 Merge branch 'dev' 2025-11-15 11:56:11 -05:00
Vijay Janapa Reddi
3599623716 Update custom CSS styling for Mermaid diagrams 2025-11-15 11:37:35 -05:00
Vijay Janapa Reddi
3627090ae7 Update custom CSS styling 2025-11-14 18:35:36 -05:00
Vijay Janapa Reddi
5597e600f0 Simplify pip install indicator to inline coming soon text
- Remove separate badge, add inline (coming soon) text
- Cleaner design that works with existing under construction banner
2025-11-14 18:33:47 -05:00
Vijay Janapa Reddi
9632d634f7 Add Work in Progress indicator for pip install
- Add alpha release badge above pip install command on intro page
- Update README status badge to reflect alpha status
- Clarify that package is in active development
2025-11-14 18:31:26 -05:00
Vijay Janapa Reddi
0f561dc506 Remove temporary planning documents and prepare package for pip install
- Remove DECEMBER_2024_RELEASE.md (temporary release checklist)
- Remove module_20_consistency_review.md (internal review document)
- Remove PEDAGOGICAL_IMPROVEMENTS_PLAN.md (planning document)
- Remove benchmark_results/benchmark_report.md (generated report)

- Fix pyproject.toml for proper pip installation:
  - Update version to 0.1.0 to match __init__.py
  - Fix package discovery to use tinytorch instead of tinytorch_placeholder
  - Add proper dependencies (numpy, rich, PyYAML)
  - Add optional dev dependencies
  - Update project URLs and metadata
  - Exclude non-package directories from distribution

- Add MANIFEST.in to ensure LICENSE and README are included in package
2025-11-14 18:28:23 -05:00
Vijay Janapa Reddi
5ff776673b Update site content and documentation
- Refactor resources.md to focus on ML Systems textbook as primary companion
- Remove Academic Foundation section from credits.md (moved to resources)
- Update quickstart guide, FAQ, and student workflow documentation
- Improve classroom use documentation with updated guidance
2025-11-14 18:27:22 -05:00
Vijay Janapa Reddi
03ecc5ccac Update build scripts and site configuration
- Update PDF build scripts for site directory structure
- Update Jupyter Book configuration files
- Update site README with current build instructions
2025-11-14 18:27:20 -05:00
Vijay Janapa Reddi
892e70b46a Update book CLI command to use site directory instead of book
- Rename all references from book/ to site/ directory
- Update error messages and paths throughout the command
- Maintain backward compatibility with existing functionality
2025-11-14 18:27:19 -05:00
Vijay Janapa Reddi
e4bfd0ee84 Enhance intro page with interactive hero carousel and ML timeline
- Add hero carousel component with auto-advance and keyboard navigation
- Add interactive ML history timeline with milestone popups
- Add comprehensive CSS styling for carousel and timeline components
- Update intro page content with tier-based structure and improved messaging
- Add install command display and enhanced visual design
2025-11-14 18:27:17 -05:00
Vijay Janapa Reddi
6e15d91800 Update site navigation to include tier overview pages
- Add tier overview pages to each tier section in navigation
- Reorder resources section to place Learning Resources before Credits
- Improve navigation structure for better tier-based learning flow
2025-11-14 18:27:15 -05:00
Vijay Janapa Reddi
a787bcbba4 Add tier overview pages for Foundation, Architecture, Optimization, and Capstone
- Add foundation.md: Overview of Foundation Tier (modules 01-07)
- Add architecture.md: Overview of Architecture Tier (modules 08-13)
- Add optimization.md: Overview of Optimization Tier (modules 14-19)
- Add olympics.md: Overview of Capstone Competition (module 20)

These pages provide comprehensive tier-level context and learning objectives
2025-11-14 18:27:13 -05:00
Vijay Janapa Reddi
15ab594dc4 Add architecture detection and fixes for Apple Silicon compatibility
- Add architecture detection to rebuild-site.sh to prevent Rosetta mismatches
- Add fix-venv-architecture.sh script to resolve venv architecture issues
- Ensure Python venv matches system architecture before building
2025-11-14 18:27:11 -05:00
Vijay Janapa Reddi
1c5a269f80 Update development documentation and workflow files
- Update GitHub workflow for publishing
- Update December 2024 release notes
- Update module about template and testing documentation
- Update milestone template
2025-11-14 08:28:24 -05:00
Vijay Janapa Reddi
077e1ea1ae Merge branch 'dev' 2025-11-13 17:52:40 -05:00
Vijay Janapa Reddi
4520fb1a9c Improve WIP banner functionality and styling
- Change banner positioning from relative to fixed for better visibility
- Add header spacing to accommodate fixed banner
- Enhance banner injection with dynamic HTML creation
- Add comments explaining banner implementation details
2025-11-13 17:50:53 -05:00
Vijay Janapa Reddi
08143b0f7f Update site branding and add documentation comments
- Update site title to Tiny🔥Torch branding
- Add emojis to tier captions for visual consistency
- Update intro page heading and description
- Add comprehensive comments explaining branding and UI changes
2025-11-13 17:50:52 -05:00
Vijay Janapa Reddi
1f67eb67d9 Merge branch 'dev' into main-merge 2025-11-13 11:47:42 -05:00
Vijay Janapa Reddi
d953790f45 Update site intro: refine title and quickstart link 2025-11-13 11:47:39 -05:00
Vijay Janapa Reddi
08456dbbc9 Update development files: streamline benchmarking and capstone dev modules
- Clean up benchmarking_dev.py implementation
- Refine capstone_dev.py development workflow
2025-11-13 10:46:14 -05:00
Vijay Janapa Reddi
ced971ab43 Add module reset command and consistency review documentation
- Add module_reset.py command for resetting modules with backup functionality
- Add module 20 consistency review document
2025-11-13 10:46:13 -05:00
Vijay Janapa Reddi
0d2560c490 Update site documentation and development guides
- Improve site navigation and content structure
- Update development testing documentation
- Enhance site styling and visual consistency
- Update release notes and milestone templates
- Improve site rebuild script functionality
2025-11-13 10:42:51 -05:00
Vijay Janapa Reddi
f35f30a1f7 Improve module implementations: code quality and functionality updates
- Enhance tensor operations and autograd functionality
- Improve activation functions and layer implementations
- Refine optimizer and training code
- Update spatial operations and transformer components
- Clean up profiling, quantization, and compression modules
- Streamline benchmarking and acceleration code
2025-11-13 10:42:49 -05:00
Vijay Janapa Reddi
0c677dd488 Update module documentation: enhance ABOUT.md files across all modules
- Improve module descriptions and learning objectives
- Standardize documentation format and structure
- Add clearer guidance for students
- Enhance module-specific context and examples
2025-11-13 10:42:47 -05:00
Vijay Janapa Reddi
8c55d8efdf Refactor tito CLI: consolidate module commands and improve structure
- Remove redundant module.py command file
- Consolidate module functionality into module_workflow.py
- Update command registration and help system
- Improve setup command and community integration
2025-11-13 10:42:45 -05:00
Vijay Janapa Reddi
bde9fddc73 Remove Python bytecode cache files from version control 2025-11-13 10:42:42 -05:00
Vijay Janapa Reddi
afd1cd442d Fix failing module tests
- Fix 14_profiling: Replace Tensor with Linear model in test_module, fix profile_forward_pass calls
- Fix 15_quantization: Increase error tolerance for INT8 quantization test, add export marker for QuantizedLinear
- Fix 19_benchmarking: Return Tensor objects from RealisticModel.parameters(), handle memoryview in pred_array.flatten()
- Fix 20_capstone: Make imports optional (MixedPrecisionTrainer, QuantizedLinear, compression functions)
- Fix 20_competition: Create Flatten class since it doesn't exist in spatial module
- Fix 16_compression: Add export markers for magnitude_prune and structured_prune

All modules now pass their inline tests.
2025-11-12 14:19:33 -05:00