This is the course homepage for CPSC 330: Applied Machine Learning at the University of British Columbia. You are looking at the current version (Sep-Dec 2025).
The syllabus is available here. Please read it carefully to understand all rules and expectations of this course. The content of the syllabus is tested in a quiz, to be completed by Sep 19, 11:59 pm.
| Section | Instructor | Contact | When | Where |
|---|---|---|---|---|
| 101 | Giulia Toti | [email protected] | Tue & Thu, 15:30–16:50 | DMP 310 |
| 102 | Varada Kolhatkar | [email protected] | Tue & Thu, 11:00–12:20 | DMP 310 |
| 103 | Giulia Toti | [email protected] | Tue & Thu, 17:00–18:20 | DMP 310 |
- Anca Barbu ([email protected]), please reach out to the course co-ordinator for: admin questions, extensions, academic concessions etc. Include a descriptive subject, your name and student number, this will help us keep track of emails.
- Ayanfe Adekanye
- Gaurav Bhatt - OH Fridays, 15:00-16:00 DEMCO table 6
- Jun He Cui - OH Thursdays, 16:00-17:00 in ICCS X153
- Felix Fu - OH Tuesdays, 14:00-15:00 in ICCS X150 table 1
- Neo Ghassemi - OH Wednesdays, 14:00-15:00 in ICCS X337
- Zoe Harris
- Zheng He - OH Mondays, 16:00-17:00 DEMCO table 6
- Mishaal Kazmi
- Kanwal Mehreen
- Himanshu Mishra
- Rubia Reis Guerra
- Kimia Rostin
- Sohbat Sandhu
- Mir Rayat Imtiaz
- Joseph Soo
- Allya Wellyanto
© 2025 Varada Kolhatkar, Mike Gelbart, Giulia Toti
Software licensed under the MIT License, non-software content licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) License. See the license file for more information.
- Calendar
- Course GitHub page
- Course Jupyter book
- Canvas
- Piazza
- iClicker Cloud Section 101 and 103 (through Canvas), iClicker Cloud Section 102
- Gradescope
- Course videos YouTube channel
- Syllabus / administrative info
- Other course documents
Usually the homework assignments will be due on Mondays (except next week) and will be released on Tuesdays. We'll also add the due dates in the Calendar. If you find inconsistencies in due dates, follow the due date in the Calendar. For this course, we'll assume that the Calendar is always right!
| Assessment | Due date | Where to find? | Where to submit? |
|---|---|---|---|
| hw1 | Sept 09, 11:59 pm | GitHub repo | Gradescope |
| hw2 | Sept 16, 11:59 pm | GitHub repo | Gradescope |
| Syllabus quiz | Sept 19, 11:59 pm | PrairieLearn (access through Canvas tab) | (access through Canvas tab) |
| hw3 | Sept 29, 11:59 pm | GitHub repo | Gradescope |
| hw4 | Oct 06, 11:59 pm | GitHub repo | Gradescope |
| Midterm 1 | Oct 15 and Oct 16 | PrairieLearn (CBTF, in person) | PrairieLearn (CBTF, in person) |
| hw5 | Oct 27, 11:59 pm | GitHub repo](https://github.com/new?template_name=hw5&template_owner=ubc-cpsc330) | Gradescope |
| hw6 | Nov 03, 11:59 pm | GitHub repo | Gradescope |
| Midterm 2 | Nov 13 and Nov 14 | PrairieLearn (CBTF, in person) | PrairieLearn (CBTF, in person) |
| hw7 | November 17, 11:59 pm | GitHub repo | Gradescope |
| hw8 | November 24, 11:59 pm | GitHub repo | Gradescope |
| hw9 | December 05, 11:59 pm | GitHub repo | Gradescope |
| Final exam | TBA | PrairieLearn (CBTF, in person) | PrairieLearn (CBTF, in person) |
Live lectures: The lectures will be in-person. The location can be found in the Calendar.
This course will be run in a semi flipped classroom format. There will be pre-watch videos for many lectures, at least in the first half of the course. All the videos are available on YouTube and are posted in the schedule below. Try to watch the assigned videos before the corresponding lecture. During the lecture, we'll summarize the important points from the videos and focus on demos, iClickers, and Q&A.
We'll be developing lecture notes directly in this repository. So if you check them before the lecture, they might be in a draft form. Once they are finalized, they will be posted in the Course Jupyter book.
| Date | Topic | Assigned videos | vs. CPSC 340 |
|---|---|---|---|
| Sep 2 | UBC Imagine Day - no class | ||
| Sep 4 | Course intro | 📹 Pre-watch: 1.0 | n/a |
| Sep 9 | Decision trees | 📹 Pre-watch: 2.1, 2.2, 2.3, 2.4 | less depth |
| Sep 11 | ML fundamentals | 📹 Pre-watch: 3.1, 3.2, 3.3, 3.4 | similar |
| Sep 16 |
|
📹 Pre-watch: 4.1, 4.2, 4.3, 4.4 | less depth |
| Sep 18 | Preprocessing, sklearn pipelines |
📹 Pre-watch: 5.1, 5.2, 5.3, 5.4 | more depth |
| Sep 23 | More preprocessing, sklearn ColumnTransformer, text features |
📹 Pre-watch: 6.1, 6.2 | more depth |
| Sep 25 | Linear models | 📹 Pre-watch: 7.1, 7.2, 7.3 | less depth |
| Sep 30 | National Day for Truth and Reconciliation - no class | ||
| Oct 02 | Hyperparameter optimization, overfitting the validation set | 📹 Pre-watch: 8.1, 8.2 | different |
| Oct 07 | Evaluation metrics for classification | 📹 Reference: 9.2, 9.3,9.4 | more depth |
| Oct 09 | Regression metrics | 📹 Pre-watch: 10.1 | more depth on metrics less depth on regression |
| Oct 14 | Ensembles | 📹 Pre-watch: 11.1, 11.2 | similar |
| Oct 15-16 | Midterm 1 - no class | ||
| Oct 21 | Feature importances, model interpretation | 📹 Pre-watch: 12.1,12.2 | feature importances is new, feature engineering is new |
| Oct 23 | Feature engineering and feature selection | None | less depth |
| Oct 28 | Clustering | 📹 Pre-watch: 14.1, 14.2, 14.3 | less depth |
| Oct 30 | More clustering | 📹 Pre-watch: 15.1, 15.2, 15.3 | less depth |
| Nov 04 | Simple recommender systems | less depth | |
| Nov 06 | Text data, embeddings, topic modeling | 📹 Pre-watch: 16.1, 16.2 | new |
| Nov 11 | UBC Midterm break - no class | ||
| Nov 13-14 | Midterm 2 - no_class | ||
| Nov 18 | Neural networks and computer vision | less depth | |
| Nov 20 | Time series data | (Optional) Humour: The Problem with Time & Timezones | new |
| Nov 25 | Survival analysis | 📹 (Optional but highly recommended)Calling Bullshit 4.1: Right Censoring | new |
| Nov 27 | Communication | 📹 (Optional but highly recommended) |
new |
| Dec 02 | Ethics | 📹 (Optional but highly recommended) |
new |
| Dec 04 | Model deployment and conclusion | new |
Click to expand!
- A Course in Machine Learning (CIML) by Hal Daumé III
- Introduction to Machine Learning with Python: A Guide for Data Scientists by Andreas C. Mueller and Sarah Guido.
- An Introduction to Statistical Learning
- The Elements of Statistical Learning (ESL)
- Data Mining: Practical Machine Learning Tools and Techniques (PMLTT)
- Artificial intelligence: A Modern Approach by Russell, Stuart and Peter Norvig.
- Artificial Intelligence 2E: Foundations of Computational Agents (2023) by David Poole and Alan Mackworth (of UBC!).
- Machine Learning Crash Course
- Machine Learning (Andrew Ng's famous Coursera course)
- Foundations of Machine Learning online course from Bloomberg.
- Machine Learning Exercises In Python, Part 1 (translation of Andrew Ng's course to Python, also relevant for DSCI 561, 572, 563)
- A Visual Introduction to Machine Learning (Part 1)
- A Few Useful Things to Know About Machine Learning (an article by Pedro Domingos)
- Metacademy (sort of like a concept map for machine learning, with suggested resources)
- Machine Learning 101 (slides by Jason Mayes, engineer at Google)
The syllabus is available here.
Enjoy your learning journey in CPSC 330: Applied Machine Learning!