This repository contains all hands-on materials for the Introduction to Deep Learning course: demos, exercises, solutions, and a final project. Learn to build, train, and evaluate neural networks using PyTorch.
The course is organized into a progressive learning path designed to take you from neural network fundamentals to building complete deep learning systems. The course progresses through 10 skill pairs, each with:
- Demo notebooks: Instructor-led walkthroughs
- Exercise notebooks: Student practice with guided TODOs
- Solution notebooks: Reference implementations (prefixed with
_SOLUTION-)
Tip: Exercise TODOs include hints that guide without revealing answers.
For each skill pair:
- Watch demo → 2. Complete exercise → 3. Check solution
Once you've completed the course: → 4. Build project
| # | Topic | Key Focus |
|---|---|---|
| 1 | Perceptron | Single-layer networks, linear boundaries |
| 2 | Activation Functions | Non-linearity, sigmoid/tanh/ReLU comparison |
| 3 | Multi-Layer Perceptron | Stacking layers, solving XOR |
| 4 | Forward Pass & Tensors | Data flow, shape transformations |
| 5 | Loss Functions | MSE, cross-entropy, task-appropriate losses |
| 6 | Training Loop | Gradient descent, backpropagation, SGD vs Adam |
| 7 | Data Preprocessing | Train/val/test splits, normalization, DataLoaders |
| 8 | Overfitting vs Underfitting | Bias-variance tradeoff, loss curve diagnosis |
| 9 | Evaluation Metrics | Accuracy, precision, recall, F1, regression metrics |
| 10 | Model Improvement | Hyperparameter tuning, dropout, regularization |
Each skill pair builds on the previous one, ensuring you develop a solid foundation before moving to more advanced concepts.
The course culminates in a hands-on project that brings together everything you've learned.
Build a complete diabetes prediction classifier:
- Load and preprocess medical data
- Design MLP architecture
- Train with proper validation
- Evaluate with multiple metrics
See project/README.md for instructions.
The repository is organized by skill pair (+ final project), with each folder containing everything you need for that topic.
cd1818-intro-to-deep-learning/
├── 1-perceptron/ # Demos, exercises, solutions for Skill Pair 1
├── 2-activations/ # Skill Pair 2 materials
├── 3-mlp/ # Skill Pair 3 materials
├── 4-feedforward/ # Skill Pair 4 materials
├── 5-loss/ # Skill Pair 5 materials
├── 6-training/ # Skill Pair 6 materials
├── 7-preprocessing/ # Skill Pair 7 materials
├── 8-overfitting-underfitting/ # Skill Pair 8 materials
├── 9-evaluation/ # Skill Pair 9 materials
├── 10-improvements/ # Skill Pair 10 materials
├── project/ # Final course project
│ ├── starter-kit/ # Student starting point
│ ├── solution/ # Reference implementation
│ └── README.md
└── README.md
Each skill pair folder contains demo, exercise, and _SOLUTION-exercise notebooks, plus an assets/ folder for generated visualizations.
Follow these steps to set up your environment and begin working through the course materials:
# Clone repository
git clone <repository-url>
cd cd1818-intro-to-deep-learning
# Install dependencies
pip install torch torchvision numpy matplotlib pandas scikit-learn datasets jupyter
# Launch Jupyter
jupyter notebookWith your environment ready, you can now start with Skill Pair 1 and work your way through the course sequentially.
By the end of this course, you'll have mastered the core skills needed to build and train neural networks.
By completing this course, you'll be able to:
- Build neural networks from scratch in PyTorch
- Implement complete training loops with gradient descent
- Select appropriate loss functions and optimizers
- Preprocess data and create efficient DataLoaders
- Diagnose overfitting/underfitting from loss curves
- Evaluate models with task-appropriate metrics
- Tune hyperparameters and apply regularization
These skills form the foundation for working with any deep learning architecture or framework.
See LICENSE.md for details.
Happy Learning! 🚀