Course description

Machine Learning encompasses the study of algorithms that learn from data. It has been a key component in a number of problem domains including computer vision, natural language processing, computational biology and robotics. This class will introduce the fundamental concepts and algorithms in machine learning (supervised as well as unsupervised learning) as well as best practices in applying machine learning to practical problems. The class consists of lectures, problem sets that contain mathematical and programming exercises and two in-class exams.


Undergraduate level training or coursework in algorithms, linear algebra, calculus and multivariate calculus, basic probability and statistics; an undergraduate level course in Artificial Intelligence may be helpful but is not required. A background in programming will also be necessary for the problem sets; specifically students are expected to be familiar with python and scikit-learn (a machine learning package for python) or learn it during the course.

Contact Info

Instructor: Sriram Sankararaman
Office Hours: Engineering VI 296B, Tuesday 4:00-5:00pm
Email: sriram at cs dot ucla dot edu

Teaching assistants


While there is not one textbook that covers all the material from this course, readings will come from the following texts: For a more advanced treatment, the following are useful: Machine Learning requires a strong mathematical foundation. You may find the following resources useful to brush up your math background.

Course format


We will extensively be using Python 2.7.x to implement ML algorithms and run experiments. You will require and need to familiarize yourself with the following packages:



We will use Piazza for class discussions. Please go to this Piazza website to join the course forum (note: you must use a email account to join the forum). We strongly encourage students to post on this forum rather than emailing the course staff directly (this will be more efficient for both students and staff). Students should use Piazza to:

The course Academic Integrity Policy must be followed on the message boards at all times. Do not post or request solutions to problem sets! Also, please be polite.


We will use gradescope to manage and grade problem sets and exams.


Academic Integrity Policy

Group studying and collaborating on problem sets are encouraged, as working together is a great way to understand new material. Students are free to discuss the homework problems with anyone under the following conditions: Students are encouraged to read the Dean of Students' guide to Academic Integrity.

Attendance and class participation

Although not a formal component of the course grade, attendance is essential for success in this course. If you are absent without a documented excuse, the instructor and TAs will not be able to go over missed lecture material with you. We emphatically welcome questions and your active participation in this course will enhance your learning experience and that of the other students.

Regrade requests

Regrade requests for homework and exams must be made through gradescope within one week after the graded homeworks have been released, regardless of your attendance on that day and regardless of any intervening holidays such as Memorial Day. We reserve the right to regrade all problems for a given regrade request.


The course website is based on material developed by Ameet Talwalkar and Fei Sha. Some of the administrative content on the course website is adapted from material from Jenn Wortman Vaughan, Rich Korf, and Alexander Sherstov.

Tentative Schedule (subject to change)

Date Topics Readings Problem Sets
1/06 Introduction Problem Set 0