Machine learning (ML) is a set of techniques that allow computers to learn from data and experience rather than requiring humans to specify the desired behavior by hand. ML has become increasingly central both in AI as an academic field and industry. This course provides a broad introduction to some of the most commonly used ML algorithms. It also introduces vital algorithmic principles that will serve as a foundation for more advanced courses, such as CSC412/2506 (Probabilistic Learning and Reasoning) and CSC413/2516 (Neural Networks and Deep Learning).
We start with nearest neighbors, the canonical non-parametric model. We then turn to parametric models: linear regression, logistic regression, soft-max regression, and neural networks. We then move on to unsupervised learning, focusing in particular on probabilistic models, but also principal components analysis and K-means. Finally, we cover the basics of reinforcement learning.
This course will delve deep into the mathematical foundations of machine learning and will focus on implementing, understanding and debugging software programs for building machine learning models from data. This class will make heavy use of the mathematical and statistical pre-requisites for this class. Students are expected to be comfortable with technical material from multivariate probability theory, multi-variable calculus and linear algebra enough to manipulate them towards the description, design and implementation of learning algorithms for machine learning models.
There is only section of this course being offered this term. As of May 2026, we plan to have in-person lectures, tutorials, office hours, midterm and final exam.
Auditing is not allowed this term without express written permission by the instructor.
| Section | Instructor | Lecture | Tutorial |
|---|---|---|---|
| 5101 | Amanjit Singh Kainth | Thursday 18:00 - 20:00, BA1170 | Thursday 20:00 - 21:00, BA1170 |
There are several generative AI tools such as ChatGPT, GPT4, Bard, Claude available for public use as general purpose chatbots. These machine learning models are incredibly powerful and are capable of providing responses to arbitrarily complex text (and sometimes image) queries. You may use generative artificial intelligence (AI) tools, including ChatGPT and GitHub Copilot, as learning aids.
Generative AI is not required to complete any aspect of this course, and we caution you to not rely entirely on these tools to complete your coursework. Instead, we recommend treating generative AI as a supplementary tool only for exploration or drafting content. Ultimately, you (and not any AI tool) are responsible for your own learning in this course, and for all the work you submit for credit. It is your responsibility to critically evaluate the content generated, and to regularly assess your own learning independent of generative AI tools. Over reliance on generative AI may give you a false sense of how much you’ve actually learned, which will lead to poor performance on the midterm test and final exam, in later courses, or in future work or studies after graduation. You will not be permitted to use generative AI on the midterm test or final exam. Remember that you (and not any AI tool) are responsible for your own learning in this course, and for the final work you submit for this assignment. These assignments and homework are designed to be doable without the use of generative AI, using only concepts and skills we have covered in lecture and in the course readings.
While some generative AI tools are currently available for free in Canada, please be warned that these tools have not been vetted by the University of Toronto and might not meet University guidelines or requirements for privacy, intellectual property, security, accessibility, and records retention. Generative AI may produce content which is incorrect or misleading, or inconsistent with the expectations of this course. They may even provide citations to sources that don’t exist—and submitting work with false citations is an academic offence. These tools may be subject to service interruptions, software modifications, and pricing changes during the semester.
The final work you submit for assignments in this course must be your own, and may not include any verbatim content from generative artificial intelligence (AI) tools. You may, however, use generative AI to support your work on this assignment in the following ways:
If you choose to use any generative AI tools while working on this assignment, you must acknowledge which generative AI tools you used and how you used them. It is an academic offence to not credit sources—including generative AI—in work that you submit. This acknowledgement should take the form of:
Any uses of generative AI beyond the ones listed above are not allowed, and will be considered use of an unauthorized aid, which is a form of cheating. In summary:
This course has the following pre-requisites:
Programming Basics: CSC207/ APS105/ APS106/ ESC180/ CSC180
Multi-Variable Calculus: MAT235/ MAT237/ MAT257 / (77%+ in MAT135, MAT136)/ (77%+ in MAT137)/ (67%+ in MAT157)/ MAT291/ MAT294 / (77%+ in MAT186, MAT187)/ (73%+ in MAT194, MAT195) / (73%+ in ESC194, ESC195)
Programming Basics: CSC207/ APS105/ APS106/ ESC180/ CSC180
Linear Algebra: MAT221/ MAT223/ MAT240/ MAT185/ MAT188
Probability: STA237/ STA247/ STA255/ STA257/ STA286/ CHE223/ CME263/ MIE231/ MIE236/ MSE238/ ECE286
Note that these are the minimum pre-requisites; in practice you are expected to have an operational knowledge of the topics in the pre-requisites. CSC311 is a fast paced course. The preliminary quiz will help you self assess the degree to which your knowledge of the pre-requisites will be tested during the course of the semester. If you find yourself falling behind on the mathematical concepts, we strongly recommend investing time into self-study using the Mathematics for Machine Learning textbook.
We will use the following grading scheme for the course.
| Evaluation | Weight |
|---|---|
| Math Diagnostic Quiz | 0% |
| Assignments (3) | 30% |
| Project | 10% |
| Midterm Exam | 20% |
| Ethics Module | 5% |
| Final Exam | 35% |
Note that you must obtain a grade of at least 40% on the final exam to pass the course. f your final exam grade is less than 40%, the maximum final grade you can obtain for the course will be 47%. For the Ethics Module, the 5% weight will be split into mini-assignments, as follows:
| Mini-Evaluation | Weight | Marking |
|---|---|---|
| Pre-Module Survey: (due date: August 1 at 5pm) | 1% | Completion |
| Class Participation | 0.5% | Automatically Given |
|
Reflection on Class Activity: (due date: August 2 at 11pm) (To be submitted on MarkUs) |
2% | Good-Faith Effort |
| Post-Module Survey (on Quercus): (due date: August 3 at 11pm) | 1.5% | Completion |
In short, we expect almost all students to get the full 5%.
There are many ways to get in touch with us.
Please follow these rules when you contact us:
TAs will hold office hours to help with assignments and project, as well as preparing for the midterm and the final exam. TA office hours will be posted in the respective sections.
There will be 3 assignments in this course, posted below. Assignments will be due at 6pm on Mondays or Fridays and submitted through MarkUs. We also be using MarkUs to post any starter code (if any) that can be found under the "Starter Files" section on the Assignment submission page.
All in-person TA Office Hours are going to be held at the CS Help Center in BA2270. TA OHs indicated below are to be held in-person, except where indicated as such (online).
The zoom details for online OHs are:
| # | Handout | Due |
TA Office Hours |
| Math Diagnostic |
May 15 | N/A | |
| Assignment 1 | May 29 |
Scheduled: |
|
| Assignment 2 | June 19 (before 11 pm) |
Scheduled: |
|
| Assignment 3 | July 17 |
Scheduled: |
|
| Ethics Module |
August 3 (before 11pm): Complete post-module survey on Quercus and submit reflection on Markus |
N/A |
|
| Final Project |
Project Proposal (Option 2): July 20 Final Report and Code: August 7 |
Scheduled: |
Math diagnostic. The Math for ML textbook is probably helpful to skim.
Computational Resources: We will use Python 3 (>= 3.10), and libraries such as NumPy, SciPy, and scikit-learn. You have two options:
The easiest option is probably to install everything yourself on your own machine.
If you don't already have Python 3, install it.
We recommend some version of Anaconda (Miniconda, a nice lightweight conda, is probably your best bet). You can also install Python directly if you know how.
Optionally, create a virtual environment for this class and step into it. If you have a conda distribution run the following commands:
conda create --name csc311
source activate csc311
Use pip to install the required packages
pip install scipy numpy autograd matplotlib jupyter scikit-learn
All the required packages are already installed on the Teaching Labs machines.
Late Submission Policy: Everyone will receive 3 grace days, which can be used at any point during the semester on the three assignments. No credit will be given for assignments submitted after 3 days. We will have a separate policy on the final project.
Collaboration Policy: Collaboration on assignments is not allowed. Each student is responsible for his/her own work. Discussion of assignments should be limited to clarification of the handout itself, and should not involve any sharing of pseudo-code or code or simulation results. Violation of this policy is grounds for a semester grade of F, in accordance with university regulations.
Remark Policy: If you discover a marking error on an assignment, you can submit a remark request. We will consider remark requests up to two weeks after we release the marks for an assignment or the midterm. Please submit your remark request via MarkUs (for assignments) or Crowdmark (for the Midterm).
About half-way through the term, we will have a midterm examination. You will be allowed to bring one aid-sheet (two-sided 8.5" by 11", handwritten or printed).
The Midterm Test will be held on <DATE> from <TIME>! NOTE: Please see <LINK> to double-check and confirm the location/date/time for your test!
The duration of the test will be <TBD> minutes. Be sure to reach the building at least 10 minutes before the start time indicated above.
The test will cover content from Weeks 1-6 (inclusive).
To get a sense of the types of questions you might expect, you may attempt the two practice midterms below (I will be posting solutions for these later):
Here is the first page of our midterm test:
To be added
At the end of the term, we will have a FAS proctored final examination. You will be allowed to bring an aid-sheet (double-sided 8.5" by 11").
The duration is 3 hours. Be sure to check the A&S calendar (or ACORN) for any potential changes/updates to the exam date/time/location.
Important: For in-person exams, you are required to bring a valid photo ID to be able to write the exam. Visit the Academic Calendar to learn about the types of valid photo ID, including your TCard.
You won't be able to write the final exam if you don't have a valid photo ID (even if I can vouch for you - this is administered by the Faculty), and you will be asked to contact your registrar.
The final exam schedule will be released at the A&S Final Exam Schedule page, see there for more information on our exam (make careful note of the location and time).
Here is a sample <EXAM> and its <SOLUTIONS> (Attempt the exam first to get a sense of timing and content coverage, before looking at the solutions).
I will also be posting the cover page for our final exam sometime in the last week of lectures.
For your final project, one option is to solve a matrix completion problem. The goal is to predict, in the context of a personalized education platform, whether a student will correctly answer a diagnostic question. In groups of 2-3, you will implement and evaluate several algorithms from the course, and then propose and evaluate an extension to one of these algorithms. The other option is open-ended and both are described in the handout. For the open-ended option, we have also uploaded a sample rubric for the proposal and the final report to give you more ideas on writing an effective proposal and report. Note that these are mere sample rubrics (adapted from last semester's iteration of CSC413), and you don't need to follow it strictly (or even fully) to receive a good grade. Think of these rubrics as guiding principles that you may incorporate (when applicable) to write a good report.
Office hours: See Table above!
You can find all of the relevant lecture/tutorial materials below. The suggested readings are optional. We have provided them in case you need alternate resources to understand the material. All of the textbooks listed below are freely available online.
Lecture recordings are available on Piazza.
| Week/Date | Topics Covered | Mathematics Prepare Videos | Materials | Suggested Readings |
|---|---|---|---|---|
|
01 May 7 Math Diagnostic out: May 7 |
Lecture: Introduction / Nearest Neighbours Tutorial: Probability Review |
Lecture: lec01.pdf Tutorial: tut01.pdf Colab: Probability |
Math for ML (skim) ESL: 1, 2.1-2.3, 2.5 |
|
|
02 May 14 A1 out: May 14 Math Diagnostic due: May 15 |
Lecture: Decision Trees, Bias-Variance Decomposition Tutorial: Linear Algebra Review |
Lecture: lec02.pdf Tutorial: tut02.pdf Colab: Decision Trees |
Bishop: 1.5.5, 3.2 ESL: 2.9, 9.2 More on Entropy: Bishop 1.6 |
|
|
03 May 21 |
Lecture: Linear Models 1 (Linear Regression) Tutorial: Bias-Variance Decomposition |
Set Convexity |
Lecture: lec03.pdf Tutorial: tut03.pdf |
Bishop: 3.1 ESL: 3.1 - 3.2 Math for ML Chapter 7 External: Matrix Cookbook Course notes: Generalization and Bias-Variance decomposition, Linear Regression |
|
04 May 28 A1 due: May 29 |
Lecture: Linear Models 2 (Logistic Regression) Tutorial: Optimization |
Vector Valued Functions |
Lecture: lec04.pdf Tutorial: tut04.pdf Colab: Optimization |
Bishop: 4.1, 4.3 ESL: 4.1-4.2, 4.4, 11 External: Why momentum really works Course notes: Linear Classifiers, Training a Classifier |
|
05 June 4 A2 out: June 1-4 |
Lecture: Linear Models 3 / Neural Networks 1 Tutorial: Pytorch |
Representing Categorical Inputs |
Lecture: lec05.pdf Tutorial: tut05.pdf |
Bishop: 5.1-5.3 Course notes: Multilayer Perceptrons |
|
06 June 11 |
Lecture: Neural Networks 2 Tutorial: Midterm Review |
Lecture: lec06.pdf Tutorial: tut06.pdf |
External: Neural Net Playground, Convolution arithmetic (good animations on the convolution operation, more details on arithmetic details around padding, stride etc.) Course notes: Backpropagation |
|
|
Exam Period: June 18-24 Midterm Test: <TBA> A2 due: June 19 |
Midterm: TBD |
|||
|
Mid-semester break! (June 20 - July 1) Project rubric out: June 26 |
||||
|
07 July 2 A3 out: July 2 |
Lecture: Probabilistic Models Tutorial: Midterm |
Lecture: lec07.pdf |
ESL: 2.6.3, 6.6.3, 4.3.0 MacKay: 21, 23, 24 |
|
|
08 July 9 |
Lecture: Multivariate Gaussians, GDA Tutorial: Linear Algebra Review II: Eigenvalues, SVD |
Lecture: lec08.pdf Tutorial: tut08.pdf |
Math for ML Bishop: 4.2 |
|
|
09 July 16 A3 due: July 17 |
Lecture: Principal Component Analysis, Matrix Completion Tutorial: Final Project Overview |
Lecture: lec09.pdf Tutorial: tut09.pdf |
ESL: 14.5.1 Bishop: 12.1 PCA example computation |
|
|
10 July 23 Project Proposal (Option 2 only) due: July 20 |
Lecture: k-Means, EM Algorithm Tutorial: EM Algorithm |
|
Lecture: lec10.pdf Tutorial: tut10.pdf |
MacKay: 20 Bishop: 9 Barber: 20.1-20.3 External: SLIC Superpixels (based on K-means in 5d space) |
| 11 July 30 |
Lecture: Embedded Ethics Unit Tutorial: EM Algorithm |
|
Lecture: lec11.pdf (CS), Ethics Tutorial: See Week 10 tutorial. |
External: Beyond engagement; Understanding Recommendation Algorithms |
|
12 August 6 Project due: August 7 |
Lecture: Reinforcement learning Tutorial: Final review and midterm recap |
|
Sutton and Barto: 3, 4.1, 4.4, 6.1-6.5 See slides for RL recs. |
Academic integrity is essential to the pursuit of learning and scholarship in a university, and to ensuring that a degree from the University of Toronto is a strong signal of each student’s individual academic achievement. As a result, the University treats cases of cheating and plagiarism very seriously. The University of Toronto’s Code of Behavior on Academic Matters outlines the behaviors that constitute academic dishonesty and the processes for addressing academic offenses.
All suspected cases of academic dishonesty will be investigated following procedures outlined in the Code of Behavior on Academic Matters. If students have questions or concerns about what constitutes appropriate academic behavior or appropriate research and citation methods, they are expected to seek out additional information on academic integrity from their instructors or from other institutional resources.
If you are unable to complete a course requirement due to extraordinary circumstances beyond your control, please apply for a Special Consideration by filling out this special considerations form with your supporting documentation. A special consideration request, particularly if it is not your first request in the course, would not be granted automatically.
Legitimate reasons to apply for a special consideration request:
A heavy course load, multiple assignments/tests scheduling during the same period, and time management issues are not appropriate reasons to grant special considerations. Such accommodations are meant for exceptional circumstances only and not as a means to catch up on term work. If you are having difficulty with stress and time management, please contact your college registrars, who can in turn suggest wellness counseling, academic advising, and/or learning strategists services.
Our special considerations policies are as follows.