Instructor office hours
Ali Ghodsi
Wednesdays, 1–2 p.m.
M3 4009
Come to the instructor for: questions about course content or the final project.
Fall 2026
An in-depth graduate course on the statistical foundations, computational methods, and modern advances underlying classification and pattern recognition.
Course at a glance
This page is the public home for the course topics, slide releases, and assignments. Enrollment-specific information, submissions, deadlines, and grades are maintained in Waterloo Learn.
Course support
Instructor office hours
Wednesdays, 1–2 p.m.
M3 4009
Come to the instructor for: questions about course content or the final project.
Teaching assistant office hours
Go to the TAs for: questions about assignments or coding.
From the course outline
Textbooks and references
There is no mandatory textbook. The following references cover substantial portions of the course:
| Component | Description | Weight |
|---|---|---|
| Assignments | Four individual assignments at 12.5% each | 50% |
| Paper presentation | Small-group presentation of a selected research paper | 10% |
| Group final project | Research or applied classification project | 40% |
| Total | — | 100% |
| Assessment | Release | Due |
|---|---|---|
| Assignment 1 | Monday, September 28 | Monday, October 19, 11:59 p.m. |
| Assignment 2 | Monday, October 19 | Monday, November 9, 11:59 p.m. |
| Assignment 3 | Monday, November 9 | Monday, November 23, 11:59 p.m. |
| Assignment 4 | Monday, November 23 | Monday, December 7, 11:59 p.m. |
| Paper presentation | Paper-selection process to be announced | Scheduled presentation date |
| Group final project | To be announced | Monday, December 21, 11:59 p.m. |
All dates are tentative and may change. Changes will be announced.
Latest updates
Course site
This page will be updated throughout the term. Slides and assignments will be posted below as they are released.
Communication
Questions about lectures and course content should be posted on Piazza so that answers are available to the class.
Course schedule
Lecture topics and ordering are tentative and may be adjusted during the term.
| Lecture | Coverage | Materials |
|---|---|---|
| Lecture 1 | Course introduction; classification problems; hypothesis class, loss, and search; Bayes classifier and Bayes error | Lecture 1 slides |
| Lecture 2 | Gaussian classifiers; LDA and QDA; covariance assumptions and decision boundaries | Lecture 2 slides |
| Lecture 3 | Principal component analysis (PCA); variance-maximizing projections; Lagrange multipliers; covariance eigendecomposition and SVD; encoding and reconstruction | Lecture 3 slides |
| Lecture 4 | PCA versus supervised class separation; Fisher's linear discriminant analysis for two and multiple classes; within- and between-class scatter; generalized eigenvalue formulation | Lecture 4 slides |
| Lecture 5 | Logistic regression; binomial class probabilities; maximum likelihood; score and Hessian; Newton-Raphson and iteratively reweighted least squares (IRLS) | Lecture 5 slides |
| Lecture 6 | Neural-network history; perceptron model and learning; linear separability and convergence; feedforward and deep networks; backpropagation via the chain rule; gradient-descent weight updates and epochs | Lecture 6 slides |
| Lecture 7 | Model selection and complexity control; validation, cross-validation, regularization, and early stopping | Coming soon |
| Lecture 8 | Radial basis function networks; localized features, training, and least-squares estimation | Coming soon |
| Lecture 9 | Complexity control for RBF networks; regularization and selection of centres and bandwidths | Coming soon |
| Lecture 10 | Spectral clustering and nonlinear dimensionality reduction; Laplacian eigenmaps and maximum variance unfolding | Coming soon |
| Lecture 11 | Support vector machines; margins, hard-margin classification, and constrained optimization | Coming soon |
| Lecture 12 | Soft-margin SVMs; slack variables, kernels, and nonlinear decision boundaries | Coming soon |
| Lecture 13 | Metric learning; learned distances, embeddings, and supervised PCA | Coming soon |
| Lecture 14 | Naive Bayes and k-nearest neighbours; conditional independence and local classification | Coming soon |
| Lecture 15 | Convolutional neural networks; convolution, parameter sharing, equivariance, and pooling | Coming soon |
| Lecture 16 | Training deep convolutional networks; regularization, random features, residual networks, and modern architectures | Coming soon |
| Lecture 17 | Decision trees; recursive partitioning, splitting criteria, overfitting, and pruning | Coming soon |
| Lecture 18 | Boosting; weak learners, adaptive reweighting, and stage-wise additive models | Coming soon |
| Lecture 19 | Bagging, random forests, variance reduction, and ensemble comparison | Coming soon |
| Lecture 20 | Semi-supervised learning, selected emerging methods, and integration of the course's main ideas | Coming soon |
Class examples
Datasets, code, and notebooks used for demonstrations and examples are collected here independently of the lecture schedule.
Classification · Handwritten digits
A 64 × 400 MATLAB matrix named X containing 400 vectorized 8 × 8 handwritten-digit images. Each column is one image: columns 1–200 are examples of the digit 2, and columns 201–400 are examples of the digit 3.
Plots images at specified 2-D coordinates. For example, after PCA or FDA, the handwritten digits can be superimposed on their projected points to reveal patterns in the two-dimensional space.
MATLAB plotting function (.m)LDA and QDA · PCA and FDA · Logistic regression
An interactive MATLAB demo reviewing LDA, QDA, PCA, FDA, and logistic regression using three synthetic classification datasets. It steps through feature extraction, decision boundaries, and model evaluation.
Coursework
Individual assignment · 100 marks
Download the assignment PDF and the data ZIP linked above. Extract the data ZIP before starting Question 6 and keep the four CSV filenames unchanged. Read the assignment instructions carefully; the Deliverables box at the end of each question specifies exactly what to submit.
WatIAM_A1.zip to the Assignment 1 Dropbox in Learn, replacing WatIAM with your Waterloo username. Include Q3.py, Q5.py, and Q6.py (or the corresponding .R or .m files), any required helper files, Q6_cv_results.csv, Q6_predictions.csv, and a short README giving run commands, software/dependencies, and random seeds.Use Python, R, or MATLAB and follow the programming requirements in the assignment PDF.
Generative AI use is permitted. After completing the assignment, open Learn and select Submit → Surveys → Assignment 1: Generative AI Use Survey. Everyone must complete the survey, including students who used no generative AI; in that case, answer No to all five questions. The survey is not anonymous so completion can be checked. Your survey responses do not affect your assignment grade. Open Learn.
You may be asked to complete a brief individual quiz or participate in an oral discussion about your assignment. This may include explaining your reasoning and solutions, answering related questions, or explaining and making small modifications to your submitted code. You must demonstrate your own understanding of all submitted work, including work developed with permitted generative AI assistance. These checks must be completed without generative AI or assistance from others. If you cannot demonstrate adequate understanding of your submitted work, your overall assignment mark may be reduced.
Submissions received up to 24 hours after the deadline receive a 10% penalty. Submissions more than 24 hours late receive a grade of zero.
Course tools
Use Piazza for announcements, lecture questions, clarifications, and class discussion.
Go to PiazzaUse Learn for graded work, submissions, private course documents, deadlines, and grades.
Open Waterloo LearnSign-in may be required. Students should use the course-specific links available in their enrolled Piazza and Learn accounts.
How the course runs
Public slides are posted with the tentative topics. Additional or restricted materials are shared through Learn.
Public assignment instructions are posted on this page. Submission links, feedback, and official grades are provided through Learn.
For assignment and coding questions, attend TA office hours. For course-content or final-project questions, attend instructor office hours. Use a private Learn message or email for personal matters.
Consult Learn and Piazza for authoritative dates, room information, schedule changes, and deadlines.