CS 480/680 - Introduction to Machine Learning - Fall 2023


Weekly Schedule

There will be two lectures each week, on Tuesday and Thursday.
There will be four assignments. They will be posted (roughly) every 2-3 weeks.
There will be a midterm (on October 30) and a final exam (date TBD).
There will be a final project (for CS 680 only) at the end of the course.
All deliverables are due at 11:59 PM Waterloo time on the stated date.


All future lecture are tentative. ISL is the most recommended reading when available.
Lecture Number Date Topic Slides Readings
1 9/7/2023 Logistics and Intro, Perceptron PDF, PDF Lecture 1 of Yaoliang's notes
UML Section 9.1
ESL Section 4.5
2 9/12/2023 Finish Perceptron PDF Same as last lecture
3 9/14/2023 Start Linear Regression PDF UML Section 9.2, 11.2
ESL Section 3.2, 3.4, 7.10
ISL Section 3.1-3.2, 5.1, 6.2
Calculus derivation
4 9/19/2023 Finish Linear Regression, k-Nearest Neighbour Classification PDF, PDF UML Section 19
ESL Section 2.3.2, 13.3
ISL Section 2.2
5 9/21/2023 Logistic Regression PDF UML Section 9.3
ESL Section 4.4
ISL Section 4.3
6 9/26/2023 Hard-Margin Support Vector Machines PDF UML Section 15
ESL Section 12.1-12.3
ISL Section 9.1-9.2
7 9/28/2023 Soft-Margin Support Vector Machines, start Kernels PDF Last lecture's SVM content

UML Section 16
ESL Section 12.3
ISL Section 9.3
8 10/03/2023 Finish Kernels, start Decision trees PDF Last lecture's Kernels content

UML Section 18
ESL Section 9.2
ISL Section 8.1
9 10/05/2023 Finish Decision trees, Bagging PDF Last lecture's Decision Tree content

UML Section 10
ESL Section 8.2, 8.7, 10
ISL Section 8.2
10 10/17/2023 Boosting PDF Last lecture's Boosting content
11 10/19/2023 Multilayer Perceptrons PDF DL Section 6
D2L Section 4
UML Section 20
ISL Section 10.1, 10.2, 10.7
3Blue1Brown videos on backprop: 1, 2
12 10/24/2023 Deep Networks PDF DL Section 7, 8
D2L Section 5, 11
An overview of gradient descent optimization algorithms, by Sebastian Ruder
13 10/26/2023 Optimization, Convolutional Neural Networks PDF DL Section 9
D2L Section 6, 7
ISL Section 10.3
14 10/31/2023 Finish Convolutional Neural Networks PDF DL Section 9
D2L Section 6, 7
ISL Section 10.3
15 11/02/2023 Recurrent Neural Networks PDF DL Section 10
D2L Section 8, 9
ISL Section 10.5
16 11/07/2023 k-Means and Gaussian Mixture Models PDF UML Section 22.2, 24.4
ESL Section 6.8, 8.5, 14.3
ISL Section 10.3
17 11/09/2023 Finish GMMs, Autoencoders PDF DL Section 14, 20
Building Autoencoders in Keras, by Francois Chollet
An Introduction to Variational Autoencoders, by Diederik Kingma and Max Welling
18 11/14/2023 Variational Autoencoders PDF Same as last time
19 11/16/2023 Generative Adversarial Networks Yaoliang used his slides, mine are PDF DL Section 20
D2L Section 17
20 11/21/2023 Robustness Yaoliang used his slides, mine are PDF Adversarial Robustness - Theory and Practice by Zico Kolter and Aleksander Madry
21 11/23/2023 Flows PDF Video
22 11/28/2023 Privacy PDF Notes
23 11/30/2023 Attention PDF The Annotated Transformer, by Sasha Rush
D2L Section 10
Attention Is All You Need
Improving Language Understanding with Unsupervised Learning
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
Better Language Models and Their Implications
Language Models are Few-Shot Learners
24 12/05/2023 Ethics PDF Private traits and attributes are predictable from digital records of human behavior
Sharing learnings about our image cropping algorithm
Gender Shades
Machine Bias: There’s software used across the country to predict future criminals. And it’s biased against blacks.


There will be four assignments, roughly every 2-3 weeks. All future dates are tentative, and may be shifted by a few days.

Late Policy

Two 48 hour extensions per student are provided. They may be each be used on one of the four homework assignments (at most one may be used per homework assignment). Email the instructor and the TA for the assignment at least 24 hours before the deadline to let us know that you're using it, and why. There will be no explicit email confirmation of an extension being granted, but at least 12 hours before the deadline, your deadline on LEARN will be adjusted appropriately. If your deadline has not been adjusted on LEARN 12 hours before the deadline despite asking 24 hours before the deadline, then (and only then) further contact the course staff to fix things. Any deviation from this protocol (including extra emails or Piazza posts inquiring whether the extension has been granted) may result in your request being (silently) ignored. There are no extensions for the final project or any other deadline. Beyond this, we do not accept any late homework submissions, unless you have a legitimate reason with formal proof (e.g. hospitalization, family urgency, etc.). Traveling, busy with other stuff, or simply forgetting to submit, are not considered legitimate.

Project (CS 680 only)

You need to conduct a research project, which could be an attempt to beat the state-of-the-art performance on an interesting dataset, or an unexpected application of machine learning algorithms to a different field, or designing a novel algorithm to address a need in machine learning, or theoretically analyzing the performance of a machine learning algorithm (new or old). A literature survey on a new hot topic in ML is also possible. You may work in pairs for this project. All parts of the project are submitted by email to the instructor.

You project should The project proposal will be due on October 3, 2023, and worth 5% of the final grade. Please concisely describe what your project is about, some related works (no need to be thorough yet), what is your execution plan, what do you expect to learn/contribute, and how are you going to evaluate your results. We expect the proposal to be 2 to 4 pages (excluding references).

An (ungraded) update is due on November 7, 2023. This should describe what you've done so far, and what is left to be done. You are expected to have measurable "work done" by this point.

The project report will be due on December 5, 2023 (the final day of classes), and worth 20% of the final grade. Please summarize all your findings (empirical, algorithmic, theoretical) in a scientific report. We expect there is an introduction section, a background section, a main result section, and a conclusion section. Depending on your project, you may include an experimental section and/or discussion section. Please always give proper citations to prior work or results. Be precise and concise. We expect the report to be at most 8 pages (excluding references).

Your project report will be evaluated on its clarity, significance, rigor, presentation, and completeness.

Books and References

Readings for each lecture will be linked. Additionally, the following are excellent resources. If NumPy is new to you, you might consult these resources.


Grades for this course will be determined with the following breakdown.
CS 480: CS 680: There are four total assignments, uniformly weighted.


Here are some top conferences and journals in machine learning. They may be good places to look for project ideas. I believe all of them should be open access. More generally, you should never have to pay to access an academic article, especially when you are affiliated with a university. Contact me if you run into any issues accessing any academic article and I'll write up some directions.


Academic Integrity: In order to maintain a culture of academic integrity, members of the University of Waterloo community are expected to promote honesty, trust, fairness, respect and responsibility. Check the university website for more information.

Grievance: A student who believes that a decision affecting some aspect of his/her university life has been unfair or unreasonable may have grounds for initiating a grievance. Read Policy 70, Student Petitions and Grievances, Section 4. When in doubt please be certain to contact the department's administrative assistant who will provide further assistance.

Discipline: A student is expected to know what constitutes academic integrity to avoid committing an academic offence, and to take responsibility for his/her actions. A student who is unsure whether an action constitutes an offence, or who needs help in learning how to avoid offences (e.g., plagiarism, cheating) or about "rules" for group work/collaboration should seek guidance from the course instructor, academic advisor, or the undergraduate Associate Dean. For information on categories of offences and types of penalties, students should refer to Policy 71, Student Discipline. For typical penalties check Guidelines for the Assessment of Penalties.

Appeals: A decision made or penalty imposed under Policy 70 (Student Petitions and Grievances) (other than a petition) or Policy 71 (Student Discipline) may be appealed if there is a ground. A student who believes he/she has a ground for an appeal should refer to Policy 72 (Student Appeals).

Note for Students with Disabilities: The Office for Persons with Disabilities (OPD), located in Needles Hall, Room 1132, collaborates with all academic departments to arrange appropriate accommodations for students with disabilities without compromising the academic integrity of the curriculum. If you require academic accommodations to lessen the impact of your disability, please register with the OPD at the beginning of each academic term.

Mental Health: If you or anyone you know experiences any academic stress, difficult life events, or feelings like anxiety or depression, we strongly encourage you to seek support.

On-campus Resources: Off-campus Resources: Diversity: It is our intent that students from all diverse backgrounds and perspectives be well served by this course, and that students' learning needs be addressed both in and out of class. We recognize the immense value of the diversity in identities, perspectives, and contributions that students bring, and the benefit it has on our educational environment. Your suggestions are encouraged and appreciated. Please let us know ways to improve the effectiveness of the course for you personally or for other students or student groups. In particular: