Dr. Durant: CSC4601/5601 Theory of Machine Learning


Welcome to Theory of Machine Learning! This course provides a broad introduction to machine learning. Theory of machine learning explores the study and construction of algorithms that can learn from and make predictions on data. Such algorithms operate by building a model from example inputs in order to make data-driven predictions or decisions, rather than following strictly static program instructions. Topic categories include decision boundaries, optimization, and both supervised and unsupervised methods. Students will apply the theory to implementation and evaluation of machine learning algorithms with hands-on, tutorial-oriented laboratory exercises.

CSC4601 (Undergraduate) Details

CSC5601 (Graduate) Details

Graduate students enrolled in the course will complete all the undergraduate assignments plus some additional assignments. The graduate section meets simultaneously with the undergraduate section per the published schedule.

Course in Canvas

General Course Policies

Problem Sets


Term Project


For the first few weeks, I recommend that you work locally on your laptop. The faculty are working on a Singularity image for Rosie that includes all the needed packages; until then, you may encounter additional challenges trying to complete some parts of the assignment on Rosie.

Tentative Class Schedule

You should expect 1-2 lectures on new material per week. Lecture time will also be used to work on problems that direct relate to the lecture topics. These in-class problems may take the form of a code demonstration or individual time to work on some of the problems. Lab time will typically be used for larger projects (labs) that will be due within a week of assignment. Occasionally, a lab may be replaced by a larger problem set. This class will have two exams (Midterm and Final) as well as a term project that will be assigned half-way through the course.


There are no required textbooks for this course. There will be notes released for major topics and it is expected that you read them. They may have additional references at the end.

Lecture Notes

You will be required to take notes for our lectures. Scan your notes with an app like Microsoft Lens and submit a PDF through Canvas. Notes will be treated as a participation grade and will be graded pass / fail. You are free to use any note-taking style or approach that works best for you.

Problem Sets

Problem sets will be used in conjunction with lectures and labs. The goals of the problem sets are to (1) practice concepts from the lectures, especially conceptual or mathematical concepts that do not fit naturally into a lab, (2) help you assess your own understanding of the lectures, and (3) give practice with concepts that didn’t fit into the labs. Problem sets will be graded by randomly selecting 1-2 problems per set and grading for correctness and completeness. In class problem sets will be worth fewer points than problem sets that are given for a lab. Time permitting, we will review solutions together in class, and I’ll answer any questions that might come up. Solutions will not be posted, and the associated lecture will not be recorded; you will need to attend class to see the solutions.


Item Percentage
Lecture Notes 5%
Problem Sets 10%
Labs 30%
Final Project 15%
Midterm Exam 20%
Final Exam 20%

Grading Scale

The standard undergraduate grading scale will be used for all students, with the exception that graduate students earning below 77% will not pass the class.

Letter Grade Minimum Percentage
A 93%
AB 89%
B 85%
BC 81%
C 77%
CD 74%
D 70%
F 0%