Machine Learning (EECS 349)

Spring 2017
Electrical Engineering and Computer Science Department
Northwestern University

Class Meets: 1:00-1:50PM MWF, Tech LR2

Instructor: Doug Downey
Office Hours: 4:00-5:00PM Monday, Ford 3-345
Email: ddowney <at> eecs <dot> northwestern <dot> edu

Teaching Assistants:
 Dave Demeter
 Chen Liang
 Zheng Yuan
Peer Mentors:
Christopher Hartman
Yingda Hu
Vickie Li
Avi Vaid
Ruohong Zhang
Group Office Hours: Wednesday 4-5PM, Thursday 3-4PM, Tech L324

Contacting the TAs: Please use the following e-mail address to reach all TAs at once: eecs349northwestern <at> gmail <dot> com


Four homework assignments make up 40 points of the grade, a course project makes up 40 points, and two in-class exams comprise 20 points for a total of 100 points. Grades are assigned using the standard scale (given in the "introduction" lecture notes), so 93-100 points is an A, 90-93 points is an A-, etc.


Homework will be submitted via Canvas. Details on the specific files to include are given in each homework assignment.

Late peer review assignments are penalized 33% per day. All other late assignments are penalized by 10% a day, and will NOT BE ACCEPTED more than one week after the original deadline.
Problem Set 1Due 11:59PM April 310 pts
Problem Set 2Due 11:59PM April 1410 pts
Problem Set 3 Due 11:59PM May 1210 pts
Problem Set 4Due 11:59PM May 2410 pts

Course Projects

Course projects will be performed by groups of students; any number of students can work together, but larger groups will be expected to complete more substantial projects. Your assignment is to formulate an interesting task for which machine learning can be used, gather training and test data for the task, and then evaluate one or more machine learning algorithms on the data. The final output will include a report Web page.

The Web pages for the completed course projects from 2008, 2010, 2014, 2015, 2016 and and other years are available for perusal.

Proposal (1 pg)Due 11:59PM Wednesday, April 195 pts
Proposals Peer ReviewDue 11:59PM Tuesday, May 95 pts
Status Report (1-2 pg)Due 11:59PM Wednesday May 175 pts
Status Peer ReviewDue 11:59PM Tuesday, May 305 pts
Project Web pageDue 11:59PM Tuesday, June 6 (small bonus for turning in June 4)20 pts

You can use any learning algorithm libraries or packages that you like for your final project. You don't have to code up your own algorithms, but you can do so if you want to make that a focus of your project (implementing algorithms on your own will probably mean you spend less time on data acquisition and experimentation). See links to some general ML and neural net packages below.

General ML packages:

Neural Net packages:


See lecture slides.

Lectures and Schedule (subject to change)

Week of March 27 M: Introduction
W-F: Decision Trees
Week of April 3 M: Decision Trees (cont.)
W: Linear Regression
F: Instance-based Learning
Week of April 10 M: Instance-based Learning (cont.), Recommenders, Distance Measures
W: Project Guidelines and Suggestions
F: Greedy Local Search, Gradient Descent, Optimization
Week of April 17 M-W: Neural Networks
F: Exam 1
Week of April 24 M: RNNs and Tensorflow (Chen Liang guest lecture)
W: Neural Networks (cont.)
F: Deep Learning See: TextJoiner, Word2Vec Demo, Definition demo
Week of May 1 M: Deep Learning (cont.), Basics of Probability for Machine Learning
W: Statistical Estimation
F: No class
Week of May 8 M: Statistical Estimation
W: Naive Bayes Classifiers
F: Logistic Regression
Week of May 15 M: Project Status Meetings
W: Unsupervised Learning
F: Computational Learning Theory and Evaluating Hypotheses
Week of May 22 M: Support Vector Machines
W: Ensemble Methods
F: Exam 2
Week of May 30 M: No class (Memorial Day)
W: Bias in Machine Learners
F: Reinforcement Learning, MDPs