2580 Commits

Author SHA1 Message Date
Vijay Janapa Reddi
cdf3240914 📋 Add deployment system implementation issue
Comprehensive issue for implementing TinyTorch educational deployment system:

🎯 Core Features:
- Generate student versions (NotImplementedError stubs)
- Generate solution versions (complete implementations)
- Git-based progressive release system
- Preserve existing NBDev development workflow

🔧 Architecture:
- Additive approach - no breaking changes
- Extend bin/tito.py with deploy/release commands
- Git-based distribution for controlled timing
- Batch operations and multi-module support

📋 Implementation Plan:
- Phase 1: Core generation (student/solution versions)
- Phase 2: Git integration and release management
- Phase 3: Polish, documentation, and testing

🎓 User Workflows:
- Instructor: develop → deploy → release with git tags
- Student: git clone → git pull for updates → work on exercises

Ready for future implementation when bandwidth allows.
2025-07-10 18:13:49 -04:00
Vijay Janapa Reddi
2665a8e27d Setup proper student/instructor versions with NBDev
🎯 Student Version (Visible):
- All functions raise NotImplementedError('Student implementation required')
- Clear TODO instructions with specific guidance
- Test cells handle NotImplementedError gracefully
- Students must implement everything from scratch

🔧 Instructor Version (Hidden with #|hide):
- Complete working implementations
- Same function signatures as student version
- Production-ready code for package export

📚 Added MODULE_GENERATION_GUIDE.md:
- Clear instructions for creating student/instructor modules
- NBDev workflow documentation
- Module structure patterns and templates
- Generation commands and checklist

🔄 Generation Flow:
1. Write .py with student stubs + hidden instructor solutions
2. Convert to notebook: jupytext --to notebook module_dev.py
3. Export package: python bin/tito.py sync --module name
4. Package gets instructor solutions, students see exercises

Perfect foundation for all TinyTorch modules
2025-07-10 17:42:01 -04:00
Vijay Janapa Reddi
7d0fc91942 🧹 Clean up - remove extra NBDev educational files
- Removed modules/setup/setup_nbdev_educational.* files
- Keep only the clean setup_dev.* files
- Setup module now focused and clean
- NBDev features work behind scenes without clutter
2025-07-10 16:31:24 -04:00
Vijay Janapa Reddi
438cd01ccc 🧹 Clean up setup module - NBDev behind the scenes
- Focused on original purpose: just setting up development environment
- Students don't see NBDev educational features explanations
- Simple workflow: hello world, basic class, export, test, progress
- NBDev #|hide directive works behind scenes for instructor solutions
- Clean and simple, just like the original but with hidden solutions

Back to basics: setup is about setup, not teaching NBDev features
2025-07-10 16:30:23 -04:00
Vijay Janapa Reddi
3b67a99030 Enhanced setup module with NBDev educational features
SINGLE SOURCE approach: One notebook serves both instructors and students

🎯 Key Features:
- #|hide directive hides complete solutions from students
- #|code-fold creates collapsible sections for details
- #|export with educational metadata
- Progressive learning: simple → ML-relevant complexity
- Vector operations (add, dot product) as ML foundations
- ML-aware SystemInfo class with library checking
- Comprehensive testing for both student/instructor versions

🔄 Workflow:
- Students see exercises with TODOs and hints
- Instructors see complete solutions (hidden by default)
- Package exports get instructor (complete) implementations
- Single notebook maintains both audiences

This establishes the pattern for all TinyTorch modules
2025-07-10 16:27:23 -04:00
Vijay Janapa Reddi
208663be18 Create NBDev educational setup module - demonstrates progressive learning with #|hide, #|code-fold, ML-relevant hello world 2025-07-10 16:22:37 -04:00
Vijay Janapa Reddi
f73ed7eedd Discover NBDev's built-in educational features
- Create tensor_nbdev_educational.py with NBDev directives
- Demonstrate #|hide, #|code-fold, #|filter_stream features
- Convert using standard Jupytext (# %% markers)
- Add comprehensive guides and comparisons
- Show superior approach vs custom generator

Key insight: NBDev already has mature educational capabilities!
No need to build custom tools when industry standards exist.
2025-07-10 16:11:33 -04:00
Vijay Janapa Reddi
13438173c6 Adds Tensor class with basic operations
Introduces a Tensor class that wraps numpy arrays, enabling
fundamental ML operations like addition, subtraction,
multiplication, and division.

Adds utility methods such as reshape, transpose, sum, mean, max,
min, item, and numpy to the Tensor class.

Updates tests to accommodate both scalar and Tensor results
when checking mean values.
2025-07-10 14:30:41 -04:00
Vijay Janapa Reddi
3acfc7c4af Adds initial project structure and documentation
Introduces a README with project overview, setup instructions,
and course structure.

Adds a VISION document outlining the project's goals, conventions,
and architecture.

Includes updates to the setup module's README to clarify module to
package mapping.
2025-07-10 14:09:04 -04:00
Vijay Janapa Reddi
0a53597e27 feat: Complete Setup module and enhance CLI functionality
 Setup Module Implementation:
- Created comprehensive setup_dev.ipynb with TinyTorch workflow tutorial
- Added hello_tinytorch(), add_numbers(), and SystemInfo class
- Updated README with clear learning objectives and development workflow
- All 11 tests passing for complete workflow validation

🔧 CLI Enhancements:
- Added --module flag to 'tito sync' for module-specific exports
- Implemented 'tito reset' command with --force option
- Smart auto-generated file detection and cleanup
- Interactive confirmation with safety preservations

📚 Documentation Updates:
- Updated all references to use [module]_dev.ipynb naming convention
- Enhanced test coverage for new functionality
- Clear error handling and user guidance

This establishes the foundation workflow that students will use throughout TinyTorch development.
2025-07-10 13:09:10 -04:00
Vijay Janapa Reddi
1ac530d8ff Adds module-specific sync functionality
Extends the sync command to allow users to synchronize
specific modules instead of the entire project. This
improves efficiency by reducing the scope of the nbdev
export process. Adds argument parsing for module selection.
2025-07-10 12:47:17 -04:00
Vijay Janapa Reddi
5e75d042e5 Adds TinyTorch VISION.md
Adds a comprehensive VISION.md document outlining the philosophy, learning approach, module design principles, and target learning outcomes for TinyTorch.

This document serves as a canonical guide for module development, emphasizing a systems-first approach to understanding ML frameworks, and provides a framework for thinking about design trade-offs in accuracy, runtime, and memory footprint.
2025-07-10 12:21:53 -04:00
Vijay Janapa Reddi
6d370a703f Adds vision document for TinyTorch
Introduces the VISION.md document, which outlines the core philosophy, learning approach, module design principles, target learning outcomes, module progression logic, and success metrics for TinyTorch.

This document serves as the "ground truth" for course design decisions, emphasizing a systems-first approach to understanding machine learning frameworks. It details the "Loops to Systems" learning approach, focusing on the systems engineering challenges that arise when implementing ML concepts at scale.
2025-07-10 12:18:54 -04:00
Vijay Janapa Reddi
112c09d9e9 Renames development notebook filenames
Updates references to the development notebook naming convention from `[module].ipynb` to `[module]_dev.ipynb` in documentation. This change ensures consistency across the project and aligns with the intended naming scheme for development notebooks.
2025-07-10 11:35:11 -04:00
Vijay Janapa Reddi
d5505d254d Cleaning up the repo 2025-07-10 11:23:48 -04:00
Vijay Janapa Reddi
5fc55f8cbe Been refactoring the structure, got setup working 2025-07-10 11:13:45 -04:00
Vijay Janapa Reddi
e0e552e146 Updates course navigation to new module location
Updates the "Start Here" link in the course navigation to
reflect the new location of the setup README.md file.
2025-07-09 18:02:37 -04:00
Vijay Janapa Reddi
1d41eacf2e Implements modular course structure
Introduces a standardized module structure with README, notebooks, tutorials, tests, and solutions.

Refactors the project to emphasize a modular learning path, enhancing clarity and consistency across the TinyTorch course.

Changes the virtual environment path to ".venv".
2025-07-09 18:00:14 -04:00
Vijay Janapa Reddi
6ae440399d Refactors to use .venv for virtual environment
Updates the project to use `.venv` as the standard virtual environment directory. This change:

- Updates `.gitignore` to ignore `.venv/`.
- Modifies the activation script to create and activate `.venv`.
- Adjusts the `tito.py` script to check for `.venv`'s existence and activation.
- Updates documentation and setup scripts to reflect the new virtual environment naming convention.

This change streamlines environment management and aligns with common Python practices.
2025-07-09 17:40:08 -04:00
Vijay Janapa Reddi
92f4bb2c45 Adds initial .gitignore file
Adds a comprehensive .gitignore file to exclude common build artifacts, logs, temporary files, and other project-specific files that should not be tracked by Git.

This ensures a cleaner repository and prevents accidental inclusion of sensitive or unnecessary files.
2025-07-09 17:04:22 -04:00
Vijay Janapa Reddi
ef61b60ec3 Merge remote-tracking branch 'origin/main' 2025-07-09 17:03:47 -04:00
Vijay Janapa Reddi
5cf210268e Adds CLI tool for project setup and management
Introduces a command-line interface (CLI) named 'tito'
to streamline project setup, testing, and information retrieval.

Includes a setup script to automate virtual environment
creation and dependency installation.

Improves the user experience by providing clear instructions
and status indicators within the CLI.
2025-07-09 17:03:44 -04:00
Vijay Janapa Reddi
6391854e1a Update README.md 2025-07-09 11:24:18 -04:00
Vijay Janapa Reddi
28ca6e5b39 Update README.md 2025-07-09 11:23:51 -04:00
Vijay Janapa Reddi
764fd72929 Update README.md 2025-07-09 10:50:03 -04:00
Vijay Janapa Reddi
cbeaf866e9 Adds initial project README
Introduces the TinyTorch project, a pedagogical tool for building ML systems from scratch.

Provides an overview of the project's goals, system architecture, curriculum integration, and getting started guide.
2025-07-09 01:18:27 -04:00
Vijay Janapa Reddi
e587ee0b36 Initializes TinyTorch project structure and setup
Sets up the foundational project structure for the TinyTorch ML system, including the CLI entry point, project directories, and setup scripts.

This commit introduces the `tito` CLI for project management, testing, and information display.
It also includes setup scripts to automate environment creation and verification, along with initial documentation.
2025-07-09 00:46:26 -04:00
Vijay Janapa Reddi
c16c81484c Adds initial TinyTorch CLI and core structure
Introduces the foundational CLI structure and core components for the TinyTorch project.

This initial commit establishes the command-line interface (CLI) using `argparse` for training, evaluation, benchmarking, and system information. It also lays out the basic directory structure and essential modules, including tensor operations, autograd, neural network layers, optimizers, data loading, and MLOps components.
2025-07-09 00:23:19 -04:00
Vijay Janapa Reddi
540d46f586 Update README.md 2025-07-08 22:53:35 -04:00
Vijay Janapa Reddi
07b01b10c3 Initial commit 2025-07-08 22:47:00 -04:00