COMPSCI 389: Introduction to Machine Learning
Spring 2026, University of Massachusetts
Lecture: Tuesdays and Thursdays, 1-2:15 in the Computer Science Building, Room 142
Archived course page. Dates, office hours, and course logistics are retained for historical reference.
Course Information
Download syllabus (.pdf)
Description
The course provides an introduction to machine learning algorithms and applications. Machine learning algorithms answer the question: "How can a computer improve its performance based on data and from its own experience?" The course is roughly divided into thirds: supervised learning (learning from labeled data), reinforcement learning (learning via trial and error), and real-world considerations like ethics, safety, and fairness. Specific topics include linear and non-linear regression, (stochastic) gradient descent, neural networks, backpropagation, classification, Markov decision processes, state-value and action-value functions, temporal difference learning, actor-critic algorithms, the reward prediction error hypothesis for dopamine, connectionism for philosophy of mind, and ethics, safety, and fairness considerations when applying machine learning to real-world problems.
Office Hours
See the syllabus for complete information, including TA contact information. Below is a summary of office hour times and locations for quick reference.
- Mondays, 3-4, CSL E213, TA Norman. (Note: Zoom-only until spring break.)
- Tuesdays, 10-11, LGRT T220, UCA Olive.
- Wednesdays, 2-3, LGRT T220, UCA Rohit.
- Thursdays, 3-4, CSL E213, TA Norman. (Note: Zoom-only until spring break.)
Instructions and Guides
Note: To download an .ipynb file, right-click its link and select "Save Link As" (Firefox), or a similar option in your browser. Then open the downloaded file using VS Code.
| Title | Date | Description | Document Link |
|---|---|---|---|
| Jupyter Notebook Installation | N/A | Instructions describing how to install Python, VS Code, and set them up to work with .ipynb (Jupyter Notebook) files on macOS and Windows. | instructions (.pdf), instructions (.md) |
| Jupyter Notebook Introduction | N/A | An example Jupyter Notebook explaining how notebooks work and providing a very basic introduction to Python. | notebook (.ipynb) |
Homework Assignments
Note: Homework assignments should be submitted in Gradescope.
| Assignment Number | Date Assigned | Date/Time Due | Document Link |
|---|---|---|---|
| 0 | January 29, 2026 | February 5, 2026 at 1:00pm Eastern | notebook (.ipynb) |
| 1 | February 17, 2026 | February 24, 2026 at 1:00pm Eastern | notebook (.ipynb) |
| 2 | March 5, 2026 | March 12, 2026 at 1:00pm Eastern | notebook (.ipynb) |
| 3 | March 31, 2026 | April 9, 2026 at 1:00pm Eastern | notebook (.ipynb) |
| 4 | April 14, 2026 | April 21, 2026 at 1:00pm Eastern | notebook (.ipynb) |
| 5 | April 30, 2026 | May 7, 2026 at 1:00pm Eastern | notebook (.ipynb) |
Lecture Slides and Code Notebooks
| Lecture | Lecture Date | Topic | Document Link |
|---|---|---|---|
| Lecture #1, Part 1 | January 29, 2026 | Course Introduction | slides (.pdf) |
| Lecture #1, Part 2 | January 29, 2026 | Introduction to ML | slides (.pdf) |
| Lecture #2 | February 3, 2026 | Class Canceled | |
| Lecture #3, Part 1 | February 5, 2026 | Introduction to Supervised Learning | slides (.pdf) |
| Lecture #3, Part 2 | February 5, 2026 | Data Analysis (up to Slide 21) | slides (.pdf), notebook (.ipynb) |
| Lecture #4, Part 1 | February 10, 2026 | Data Analysis | slides (.pdf), notebook (.ipynb) |
| Lecture #4, Part 2 | February 10, 2026 | Models, Algorithm Template, Nearest Neighbors (up to Slide 19) | slides (.pdf), notebook (.ipynb) |
| Lecture #5, Part 1 | February 12, 2026 | Models, Algorithm Template, Nearest Neighbors | slides (.pdf), notebook (.ipynb) |
| Lecture #5, Part 2 | February 12, 2026 | Model Evaluation (Evaluation metrics and train/test splits) | slides (.pdf), notebook (.ipynb) |
| Lecture #6, Part 1 | February 17, 2026 | Nearest Neighbor Variants | slides (.pdf), notebook (.ipynb) |
| Lecture #6, Part 2 | February 17, 2026 | Evaluation Part 2 (The need for better evaluations) | notebook (.ipynb) |
| Lecture #6, Part 3 | February 17, 2026 | Probability, Statistics, Quantifying Uncertainty (Up to slide 9) | slides (.pdf) |
| Lecture #7 | February 24, 2026 | Evaluation Part 3 (Quantifying Uncertainty) | slides (.pdf), notebook (.ipynb) |
| Lecture #8, Part 1 | February 26, 2026 | Evaluation Part 4 (Cross-Validation) | slides (.pdf), notebook (.ipynb) |
| Lecture #8, Part 2 | February 26, 2026 | Review and Validation Sets | slides (.pdf) |
| Lecture #8, Part 3 | February 26, 2026 | Linear Regression and the Optimization Perspective (Up to Slide 15) | slides (.pdf) |
| Lecture #9 | March 3, 2026 | Linear Regression and the Optimization Perspective (finished) | slides (.pdf) |
| Lecture #10 | March 5, 2026 | Gradient Descent | slides (.pdf) |
| Lecture #11 | March 10, 2026 | Data Cleaning | first notebook (.ipynb), slides (.pdf), second notebook (.ipynb) |
| Lecture #12 | March 12, 2026 | Neural Networks (up to slide 41) | slides (.pdf) |
| Lecture #13, Part 1 | March 24, 2026 | Neural Networks | slides (.pdf) |
| Lecture #13, Part 2 | March 24, 2026 | Automatic Differentiation (Up to slide 30) | slides (.pdf), notebook (.ipynb) |
| Lecture #14, Part 1 | March 26, 2026 | Automatic Differentiation (finished) | slides (.pdf), notebook (.ipynb) |
| Lecture #14, Part 2 | March 26, 2026 | Automatic Differentiation for ML | slides (.pdf), notebook (.ipynb) |
| Lecture #15 | March 31, 2026 | PyTorch and Overfitting | slides (.pdf), notebook (.ipynb) |
| Lecture #16 | April 2, 2026 | Canceled | |
| Lecture #17, Part 1 | April 7, 2026 | Classification | slides (.pdf), notebook (.ipynb) |
| Lecture #17, Part 2 | April 7, 2026 | Classification Example | slides (.pdf), notebook (.ipynb) |
| Lecture #18 | April 9, 2026 | Generative AI (start) | slides (.pdf), notebook (.ipynb) |
| Lecture #19 | April 14, 2026 | Generative AI (finish) | slides (.pdf), notebook (.ipynb) |
| Lecture #20 | April 16, 2026 | Supervised Learning Review (began) | slides (.pdf) |
| Lecture #21 | April 21, 2026 | Reinforcement Learning Introduction | slides (.pdf) |
| Lecture #22 | April 23, 2026 | Test | |
| Lecture #23 | April 23, 2026 | Reinforcement Learning Basics and Reward Design | slides (.pdf) |
| Lecture #24 | April 28, 2026 | From MENACE to REINFORCE (up to slide 23) | slides (.pdf) |
| Lecture #25, Part 1 | April 30, 2026 | From MENACE to REINFORCE (finished) | slides (.pdf) |
| Lecture #25, Part 2 | April 30, 2026 | Value Functions, TD Error, and Actor-Critics | slides (.pdf) |
| Lecture #26 | May 5, 2026 | Machine Learning and other Disciplines | slides (.pdf) |
| Lecture #27 | May 7, 2026 | Fairness | slides (.pdf) |