Machine Learning (ML) is, with no doubt, one of the most important aspects of artificial intelligence and has enjoyed great success in various domains. In this course, we will cover the theoretical foundations of ML, as well as several representative algorithms.


  • Instructor: Shangtong Zhang
  • Location: Mechanical Engineering Building 341
  • Time: Tuesday & Thursday, 14:00 - 15:15
  • Office Hours:
    • Shangtong: Thursday 13:00 - 14:00 (Rice Hall 422)
    • Ethan Blaser (Head TA): Friday 10:00 - 11:00 (Rice Hall 442)
    • Xu Ouyang (TA): Wednesday 15:00 - 16:00 (Rice Hall 442)
  • UVACanvas: 24S CS6316 Machine Learning
  • Prerequisite:
    • Probability, Linear Algebra, Calculus, Python
  • Undergraduates: I am in general not against undergraduates taking this course. If you are a UVA undergraduate and believe you fulfill all the prerequisites and the textbook seems interesting and readable to you, please move forward directly by submitting the proper forms, assuming I will approve it. But remember that this course is very mathy. All the information I have about this course is available on this website, so please exercise your judgment. Different schools and colleges have different required forms. It is your responsibility to figure out which form to submit and where to submit it - this is another hidden prerequisite for this course.


  • Textbook: We will use Understanding Machine Learning: From Theory to Algorithms (UML) as the textbook. You can download a free version of UML from the previous link.
  • Lectures: All lectures are whiteboards. To encourage attendance, there will be no slides or notes. But I am sure you can find everything in UML. This is because I believe whiteboards are the most effective way for proof-based lectures, based on both my undergraduate study and past teaching experience. As a courtesy, I will try my best to record each lecture (though not guaranteed) and post the recordings in Canvas. That being said, it might be good to factor this whiteboard format into consideration when enrolling in this course.
  • Course Plan: We will follow the recommended course plan “A 14 Week Introduction Course for Graduate Students” outlined in Section 1.5.1 of UML. The only difference is that we will not skip any proof.


  • Homework (72%): There will be 6 homework (12% x 6), which are (possibly variants of) exercises from UML. Here are detailed requirements for the writeup.
  • Final Project: There will be one single course project. You can solo it or team up (up to four team members). Here are detailed requirements for the project. The scores break down into 3 parts
    • Project proposal (10%)
    • Project presentation (8%)
    • Project writeup (10%)


All the written assignments are expected to be PDF files generated by LaTeX. Here are some tips for LaTeX. The final letter grade is based on curved scores.

Date Comments
01/18 First lecture.
01/26 HW1 released.
01/31 Last day to enroll.
02/09 HW2 released.
02/11 HW 1 due. Project proposal due.
02/20 HW 1 debrief + guest lecture on RL.
02/22 HW3 released.
02/25 HW 2 due.
03/05 No lecture. Spring recess.
03/07 No lecture. Spring recess. HW4 released.
03/19 HW 3 due.
03/21 HW5 released.
03/24 HW 4 due.
04/05 Bonus HW released.
04/07 HW 5 due.
04/21 Bonus HW due.
04/30 Last lecture.
05/05 Project presentation and writeup due.


  • Late Policy: Late submission within 8 hours (a grace period) has no penalty. Late submission within 24 hours loses 33% of the scores. Late submission within 48 hours loses 66% of the scores. Late submission after 48 hours loses all scores. No late submission is allowed for the final projection presentation and writeup. No exception will be made unless doctor notes or SDAC notifications are provided.
  • Regrading Policy: For every assignment, one regrading request is allowed. I will regrade the entire assignment and there is no guarantee that the score will not decrease.