MPCS 53111 Machine Learning (Spring 2026)

Section 1
Instructor(s) Chaudhary, Amitabh (amitabh)
Location Crerar 390
Meeting Times Friday 5:30pm - 8:30pm
Fulfills Elective Specialization - High Performance Computing (HPC-2) Specialization - Artificial Intelligence (AI-1)

Syllabus

This course introduces the fundamental concepts and techniques in data mining, machine learning, and statistical modeling, and the practical know-how to apply them to real-world data through Python-based software. The course examines in detail topics in both supervised and unsupervised learning. These include linear and logistic regression and regularization; classification using decision trees, nearest neighbors, naive Bayes, boosting, random trees, and artificial/convolutional neural networks; clustering using k-means and expectation-maximization; and dimensionality reduction through PCA and SVD. Students use Python and Python libraries such as NumPy, SciPy, matplotlib, and pandas for for implementing algorithms and analyzing data.

Apart from lectures, we conduct optional but strongly recommended problem sessions.  During these the TAs present  homework solutions, and other optional material.  These are the only source for homework solutions; in particular, we do not  publish any solutions.  Recording or streaming the sessions are also not planned.  In Spring, 2019, the problem sessions are most likely to be held on Sunday afternoons; but they may be moved to Saturdays based on TA availability.

Course Prerequisites

Completion of MPCS 53110 Foundations of Computational Data Analysis or a pass on the Data Analysis placement exam.

B+ or better in MPCS 51036, 51040, 51042, 51046, 51100, CAPP 30122, MACS 30122, or have a Core Waiver for Programming. MPCS 51042 Python Programming or MPCS 51046 Intermediate Python Programming strongly recommended. Students who did not take MPCS 51042 or 51046 must have prior knowledge of Python.

B or better in MPCS 55001 Algorithms or MPCS 55003 Intermediate Algorithms. Students who earned lower than a B in MPCS 53110 should reach out to the instructor to discuss if it is advisable to take MPCS 53111.

Students that have taken CMSC 25400/35400 are not eligible to take MPCS 53111.

Other Prerequisites

Univariate Calculus and Basic Multivariate Calculus (double integrals, partial derivatives, integration-by-parts, Taylor series).

This course assumes both mathematical maturity and programming fluency. In particular, students are expected to code complicated machine learning algorithms from scratch (without a template) and debug them on their own.

Non-MPCS students must complete the above prerequisites to be eligible to take this class.

This course requires competency in Unix and Linux. If you attended the MPCS Unix Bootcamp you covered the required material. If you did not, please review the UChicago CS Student Resource Guide here: https://uchicago-cs.github.io/student-resource-guide/.

Course request information for non-MPCS students: https://masters.cs.uchicago.edu/student-resources/non-mpcs-student-course-requests/

Overlapping Classes

This class is scheduled at a time that conflicts with these other classes:

  • MPCS 52040-1 -- Distributed Systems
  • MPCS 52553-1 -- Web Development

Eligible Programs

MS in Molecular Engineering MA in Computational Social Science (Year 2) Bx/MS in Computer Science (Option 2: Professionally-oriented - CS Majors) Bx/MS in Computer Science (Option 3: Profesionally-oriented - Non-CS Majors) Masters Program in Computer Science