CS 480/680 - Introduction to Machine Learning - Spring 2021


This course has a Piazza (for discussion) and a Microsoft Teams (for office hours). Please contact the instructor if you are not in both of these.

Weekly Schedule

There will be two lectures posted each week, on Tuesday and Thursday.
There will also be one assignment posted (roughly) every other week, for a total of five.
There will be one final project at the end of the course. All deliverables are due at 11:59 PM Waterloo time on the stated date.


Lecture Number Date Topic Slides Readings
0 5/10/2021 Logistics and Intro PDF N/A
1 5/11/2021 Perceptron PDF Lecture 1 of Yaoliang's notes
UML Section 9.1
ESL Section 4.5
2 5/13/2021 Linear Regression PDF Lecture 2 of Yaoliang's notes
UML Section 9.2, 11.2
ESL Section 3.2, 3.4, 7.10
3 5/18/2021 k-Nearest Neighbour Classification PDF Lecture 5 of Yaoliang's notes
UML Section 19
ESL Section 2.3.2, 13.3
ISL Section 2.2
4 5/20/2021 Logistic Regression PDF Lecture 6 of Yaoliang's notes
UML Section 9.3
ESL Section 4.4
ISL Section 4.3
5 5/25/2021 Hard-Margin SVM PDF Lecture 7 of Yaoliang's notes
UML Section 15
ESL Section 12.1-12.3
ISL Section 9.1-9.2
6 5/27/2021 Soft-Margin SVM PDF UML Section 15
ESL Section 12.1-12.3
ISL Section 9.1-9.2
7 6/01/2021 Kernels PDF UML Section 16
ESL Section 12.3
ISL Section 9.3
8 6/03/2021 Decision Trees PDF
UML Section 18
ESL Section 9.2
ISL Section 8.1
9 6/08/2021 Bagging and Boosting PDF Lecture 11 of Yaoliang's notes
UML Section 10
ESL Section 8.2, 8.7, 10
ISL Section 8.2
10 6/10/2021 Multilayer Perceptrons PDF Lecture 12 of Yaoliang's notes
DL Section 6
D2L Section 4
UML Section 20
11 6/15/2021 Deep Networks PDF DL Section 7, 8
D2L Section 5, 11
An overview of gradient descent optimization algorithms, by Sebastian Ruder
12 6/17/2021 Convolutional Neural Networks PDF DL Section 9
D2L Section 6, 7
13 6/22/2021 Recurrent Neural Networks PDF DL Section 10
D2L Section 8, 9
14 6/24/2021 K-Means Clustering and Mixture Models PDF Lecture 16 of Yaoliang's notes
UML Section 22.2, 24.4
ESL Section 6.8, 8.5, 14.3
ISL Section 10.3
15 6/29/2021 Autoencoders and Variational Autoencoders PDF DL Section 14, 20
Building Autoencoders in Keras, by Francois Chollet
An Introduction to Variational Autoencoders, by Diederik Kingma and Max Welling
16 7/8/2021 Generative Adversarial Networks PDF Lecture 19 of Yaoliang's notes
DL Section 20
D2L Section 17
17 7/13/2021 Robustness PDF Adversarial Robustness - Theory and Practice by Zico Kolter and Aleksander Madry
18 7/15/2021 Privacy PDF Notes
19 7/20/2021 Attention PDF Lecture 22 of Yaoliang's notes
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
20 7/22/2021 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 five assignments, roughly every other week. 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 five 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 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.


The project for this course will differ depending on whether you are in CS 480 or 680.

CS 480 students

There is a Kaggle competition, more details forthcoming. The deadline is August 16.

CS 680 students

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.

You project should The project proposal will be due on June 14, 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). We will assign a TA or instructor for your project. You are strongly suggested to remain contact with this TA or instructor throughout the term in order to make sufficient progress.

An (ungraded) update (to instructor and your assigned TA) is due on July 12. 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 August 10, and worth 15% 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:


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:


This course relies instrumentally upon content created by Yaoliang Yu.