CS 412 Introduction to Machine Learning
University of Illinois at Chicago, Spring 2018

Lecture time: TTh 2-3:15pm

Location: TBH 180G

Instructor: Prof. Elena Zheleva

Office hours: Wed 2-4pm, SEO 1140


TA1: Ragib Ahsan

Office hours: Tue 11-1pm, SE01232

Contact: rahsan3@uic.edu

TA2: Zhan Shi

Office hours: Mon 1-3pm, SEL 4029

Contact: zshi22@uic.edu


This course provides an introduction to machine learning, the study of systems that improve automatically based on data and past experience. The course will introduce common machine learning tasks, such as classification and clustering, and some of the successful machine learning techniques and broader paradigms that have been developed for these tasks. Topics include but are not limited to decision trees, nearest neighbors, linear models, support vector machines, neural networks, ensemble methods, k-means, and graphical models. The course is programming-intensive and an emphasis will be placed on tying machine learning techniques to specific real-world applications through hands-on experience.


Working knowledge of probability, linear algebra, calculus, and ability to (learn to) program in Python.

Important (date changed): There will be a quiz on prerequisites during the third lecture period (Tuesday, January 23) to help you assess whether this course is for you. Anyone considering to take this course should come to class and take the quiz even if they are not registered yet.

Course materials

We will use Piazza for the course schedule, discussions, and materials. Students registered for the course will be sent an enrollment email before the first day of class.
Python is the programming language used for homework assignments.


Primary: A Course in Machine Learning by Hal Daume III (available online)
An introduction to Statistical Learning by Gareth James, Daniela Witten, Trevor Hastie, Robert Tibshirani (available online)
Optional: Hands-On Machine Learning with Scikit-Learn & Tensorflow by Aurélien Géron (available at the library through Safari Books Online. Code on github.)

Student deliverables

Homework and projects - 40%
Midterm exam - 25%
Final exam - 35%

We will use Gradescope for grading.