You're not currently signed in. Sign in »

Machine Learning (CS 446) Fall 2019

What Where
Time/place MW 12:30pm-1:45pm 1404 Siebel / Catalog
Class URL
Recorded Lecture
Web forum Piazza » (sign up!)
Calendar View »
Schedule View »

Course Staff


Sanmi Koyejo

Office: 3314 SC

Office hours: Monday 2pm-3pm; or by appointment.

E-mail: sanmi

Teaching Assistants (alphabetical order):

name contact ( office hours where
Patrick Cole pacole2 12:00pm-2:00pm Thursdays Lounge between 3301 SC and the staircase
Linling Miao lmiao4 11:30am-1:30pm Tuesdays Lounge between 3232 SC and 3304 SC
Sriram Sundararaman srirams4 3:30-5:30pm Wednesdays Lounge between 3232 SC and 3304 SC
Duke Vijitbenjaronk wdv2 1:30-3:30pm Fridays Lounge in front of 3102 SC

Course Assistants (alphabetical order):

name contact (
Michael Colomb colomb2
Vishnu Jaganathan vj2
Han Heul Jo hjo8
Yuxin Xiao yuxinx2

Course Description

The goal of Machine Learning is to build computer systems that can adapt and learn from their experience. This course will study the theory and application of learning methods that have proved valuable and successful in practical applications. We review the theory of machine learning in order to get a good understanding of the basic issues in this area, and present the main paradigms and techniques needed to obtain successful performance in application areas such as natural language and text understanding, speech recognition, computer vision, data mining, adaptive computer systems and others. The main body of the course will review several supervised and (semi/un)supervised learning approaches. These include methods for learning linear representations, Bayesian / Probabilistic methods, decision-tree methods, kernel based methods and neural networks, as well as clustering and dimensionality reduction techniques. We will also discuss how to model machine learning problems and discuss some open problems.

Topics to be covered include:


Students are expected to have taken a class in linear algebra, probability and statistics and a basic class in theory of computation and algorithms. Students are expected to be familiar with the python programming language.

Course Materials

Required Text


Optional books with relevant material:

Lecture notes, course handouts, pointers to relevant papers, and other materials will be available as HTML and PDF documents on Relate and Piazza


Exam will be in class exam with 75 minutes. Please find information on our upcoming exams in the corresponding section of the class calendar.


We do not accept late homework. The lowest homework grade will be dropped.

There will be five homework assignments. The homeworks will consist of a combination of machine problems and written exercises to be submitted on the course relate website. All homeworks are due at Midnight CT on the specified day. Submitted solutions to the machine problems must be written in Python 3, using only standard libraries (numpy / scipy). We will sometimes block libraries as required. Solutions to the written problems must be submitted as typeset PDF’s (we suggest LaTeX, but anything typeset is fine). Each question must begin on a new page.


All students will participate in a predictive modelling competition. Details will be provided in subsequent weeks. You are free to use any methods you like, however, you will be required to submit your source code for the final submission. The course project will be introduced in class, including further details on the use of computing resources.

The Project Grade will be based on predictive performance as compared to four baselines (i.e. 25%, 50%, 75%, 100% of the grade). Beyond this, additional performance gives you bragging rights! Your grade will be based on the final submission due Dec 12, Midnight

Computing: Microsoft Azure has provided cloud computing resources for the project. Details will be provided in class.

Additional Participation Credit (up to 5%)

This may be earned by participating in lecture & online discussions, scribing lectures and by reporting mistakes in the lecture notes. Note that it is possible to earn 105% grade.

Scribing Lecture: All students are encouraged (not required!) to scribe at most one lecture for participation credit. You will be awarded the credit only if your notes are of a reasonable standard (as determined by course staff). Otherwise, you will be given an opportunity to improve and correct your notes. Note that this credit is a subset of the extra credit, which can be earned in other ways.

We require one set of notes from the scribe team. The scribe team should take detailed notes during the lecture, then convert their notes into LaTeX format of 5-8 pages long. Scribe notes must be submitted within two weeks after the lecture (one week is ideal to get some feedback). Please submit your scribe notes on Relate Please sign up here (Google Sheets). Do not ask for permission. Login to Google Docs with your Illinois Credentials.

Scribe submissions

Grading Policies

View policies »

Online Discussion Platform

We will use Piazza for our online discussion platform. You are encouraged to use Piazza to ask the course staff and your classmates and course-related questions (we will refer all email queries to piazza). Please self-register at

Academic integrity

Feel free to discuss the assignment with each other in general terms, and to search the Web for general guidance (not for complete solutions). All solutions should be written up individually. If you make substantial use of some information from outside sources, make sure you acknowledge the sources in your solution. In particular, make sure you acknowledge all other students you worked with on the homework/projects. Failure to do this will result in a zero grade. We will follow the departmental honor code policy here:

What to do in an emergency

See this handout

Python Help

Numpy Help

Linear Algebra