# In-Class Participation Exercises

Active learning activities designed for use during lectures. Each module includes 3 exercises of varying types to promote engagement and deeper understanding.

## Exercise Types

| Type | Description | Duration |
|------|-------------|----------|
| **Reflection** | Personal reflection connecting concepts to experience | 3-5 min |
| **Mini-Exercise** | Hands-on coding or problem solving | 5-10 min |
| **Discussion** | Pair or group discussion with neighbors | 5-7 min |
| **Prediction** | Make predictions before seeing results | 2-3 min |
| **Critique** | Analyze code, results, or identify bugs | 5-7 min |

## Exercises by Module

### Data Foundations

| Module | Exercises | Focus |
|--------|-----------|-------|
| [00: Introduction](participation-00-introduction.ipynb) | 0.1-0.3 | ML applications, prediction, sharing experience |
| [01: NumPy](participation-01-numpy.ipynb) | 1.1-1.3 | Vectorization, broadcasting, when loops are okay |
| [02: Pandas Intro](participation-02-pandas-intro.ipynb) | 2.1-2.3 | Data types, exploration race, missing data strategies |
| [03: Intermediate Pandas](participation-03-intermediate-pandas.ipynb) | 3.1-3.3 | GroupBy, data wrangling frustrations, spot the bug |

### Feature Engineering & Dimensionality

| Module | Exercises | Focus |
|--------|-----------|-------|
| [04: Feature Engineering](participation-04-feature-engineering.ipynb) | 4.1-4.3 | Domain features, scaling, engineering philosophy |
| [05: Dimensionality Reduction](participation-05-dimensionality-reduction.ipynb) | 5.1-5.3 | Variance prediction, PCA loadings, PCA vs t-SNE |

### Supervised Learning

| Module | Exercises | Focus |
|--------|-----------|-------|
| [06: Linear Regression](participation-06-linear-regression.ipynb) | 6.1-6.3 | Coefficient interpretation, residual diagnosis, causation |
| [07: Classification](participation-07-classification.ipynb) | 7.1-7.3 | Metric selection, confusion matrix, ROC curves |
| [08: Regularization](participation-08-regularization.ipynb) | 8.1-8.3 | Bias-variance, Ridge vs Lasso, cross-validation leakage |
| [09: Nonlinear Methods](participation-09-nonlinear-methods.ipynb) | 9.1-9.3 | Method selection, overfitting visualization, interpretability |

### Advanced Topics

| Module | Exercises | Focus |
|--------|-----------|-------|
| [10: Ensemble Methods](participation-10-ensemble-methods.ipynb) | 10.1-10.3 | Wisdom of crowds, feature importance comparison, when to use |
| [11: Clustering](participation-11-clustering.ipynb) | 11.1-11.3 | Cluster prediction, scaling impact, validation without labels |
| [12: Uncertainty Quantification](participation-12-uncertainty-quantification.ipynb) | 12.1-12.3 | Communicating uncertainty, bootstrap, sources of uncertainty |
| [13: Model Interpretability](participation-13-model-interpretability.ipynb) | 13.1-13.3 | Stakeholder explanations, SHAP interpretation, right to explanation |

## How to Use

1. **Before class**: Review the exercises for the day's module
2. **During class**: Pause at designated points for each exercise
3. **After exercises**: Brief whole-class discussion or share-out
4. **Participation credit**: Students complete exercises in their own copy

## Grading Suggestions

- **Completion-based**: Check if students attempted each exercise
- **Effort-based**: Brief instructor review of quality
- **Peer review**: Students review each other's responses
- **Random selection**: Grade a subset of exercises each week

## Files

Individual module notebooks:
- `participation-00-introduction.ipynb` - Introduction exercises
- `participation-01-numpy.ipynb` - NumPy exercises
- `participation-02-pandas-intro.ipynb` - Pandas Introduction exercises
- `participation-03-intermediate-pandas.ipynb` - Intermediate Pandas exercises
- `participation-04-feature-engineering.ipynb` - Feature Engineering exercises
- `participation-05-dimensionality-reduction.ipynb` - Dimensionality Reduction exercises
- `participation-06-linear-regression.ipynb` - Linear Regression exercises
- `participation-07-classification.ipynb` - Classification exercises
- `participation-08-regularization.ipynb` - Regularization & Model Selection exercises
- `participation-09-nonlinear-methods.ipynb` - Nonlinear Methods exercises
- `participation-10-ensemble-methods.ipynb` - Ensemble Methods exercises
- `participation-11-clustering.ipynb` - Clustering exercises
- `participation-12-uncertainty-quantification.ipynb` - Uncertainty Quantification exercises
- `participation-13-model-interpretability.ipynb` - Model Interpretability exercises

Combined notebook (for reference):
- `participation-exercises.ipynb` - All exercises in one notebook
