ECE 364: Programming Methods for Machine Learning (Fall 2025)

 

Teaching Staff

Prof. Corey Snyder

Instructor
Email: cesnyde2[at]illinois.edu
 

Kamila Abdiyeva

Graduate Teaching Assistant
Email: kamilaa2[at]illinois.edu

Ayush Barik

Undergraduate Course Assistant
Email: barik2[at]illinois.edu

 


Class Time & Location

Class Time: Tuesday, Thursday 9:30AM-10:50AM
Location: ECEB 3081 (Electrical and Computer Engineering Building)

Work Submission Logistics

Gradescope for assignments (self-enrollment code ): [link]

Class Campuswire

Join the class campuswire with code 2568: [link]

 


 

Course Information

In this course, you will learn how to use auto-differentiation tools like PyTorch, how to leverage them for basic machine learning algorithms (linear regression, logistic regression, deep nets, k-means clustering), and how to extend them with custom methods to fit your needs. Auto-differentiation is one of the most important tools for data analysis and a solid understanding is increasingly important in many disciplines. In contrast to existing courses that focus on algorithmic and theoretical aspects, here we focus on studying material that permits deploying auto-diff tools to your area of interest.

Pre-requisites: Math 257 (Linear Algebra with Computational Applications) or equivalent, basic probability, and proficiency in Python.

Recommended Reference Texts: (1) Pattern Recognition and Machine Learning by Christopher Bishop
(2) Machine Learning: A Probabilistic Perspective by Kevin Murphy
(3) Deep Learning by Ian Goodfellow and Yoshua Bengio and Aaron Courville

Please note that these books are more comprehensive than the material covered in this class.

Course Deliverables:
(1) Homeworks (submission on Gradescope).
(2) Midterm Exams: There will be two midterm exams.
(3) Final Project

Final Project:

More details to come.

Homework and Late Policy:

We will drop the lowest homework grade (1 assignment) for each student. Late submissions will be deducted 20% per day that the assignment is submitted late.


Grading:

25% Homeworks; 25% each Midterm; 25% Final Project

Lectures

Lecture recordings may be found here.

The syllabus is subject to minor changes.

Event Date Description Materials Assignments
Lecture 1     08/26/2024 Course introduction Lec1-Notebook, Lec1-Complete Notebook Setting up Python environment  
Lecture 2 08/28/2024 PyTorch basics Lec2-Notebook, Lec2-Complete Notebook  
Lecture 3 09/02/2024 Linear algebra and calculus review Lec3-Notebook, Lec3-Complete Notebook  
Lecture 4 09/04/2024 Matrix calculus and primal optimizations Lec4-Notebook HW1 Latex Files, HW1 PDF
Lecture 5 09/09/2024 Automatic differentiation 1 (gradient descent)    
Lecture 6 09/11/2024 Automatic differentation 2 (computational graphs and backpropagation)   HW2
Lecture 7 09/16/2024 Automatic differentiation 3 (backpropagation and PyTorch)    
Lecture 8 09/18/2024 Linear regression 1   HW3
Lecture 9 09/23/2024 Linear regression 2    
Lecture 10  09/25/2024 Logistic regression 1   HW4
Lecture 11 09/30/2024 Logistic regression 2    
Lecture 12 10/02/2024 Midterm 1 review    
Lecture 13 10/07/2024 Midterm 1 (in class)    
Lecture 14 10/09/2024 PyTorch optimizers, datasets, dataloaders 1    
Lecture 15 10/14/2024 PyTorch optimizers, datasets, dataloaders 2    
Lecture 16 10/16/2024 Deep nets 1 (MLPs)   HW5
Lecture 17 10/21/2024 Deep nets 2 (CNNs)    
Lecture 18    10/23/2024 Deep nets 3 (CNNs)    
Lecture 19 10/28/2024 Deep nets 4 (RNNs)   HW6
Lecture 20 10/30/2024 Unsupervised learning 1    
Lecture 21 11/04/2024 Unsupervised learning 2   HW7
Lecture 22 11/06/2024 Transformers 1    
Lecture 23 11/11/2024 Transformers 2     
Lecture 24 11/13/2024 Transformers 3   HW8
Lecture 25 11/18/2024 Object detection and segmentation    
Lecture 26 11/20/2024 Midterm 2 review    
Break 11/25/2024 Thanksgiving    
Break 11/27/2024 Thanksgiving    
Lecture 27 12/02/2024 Midterm 2 (in class)    
Lecture 28 12/04/2024 Diffusion models    
Lecture 29 12/09/2024 Alternate supervision