MPCS 55005 Advanced Algorithms (Spring 2026)

Section 1
Instructor(s) Brady, Geraldine (gb52)
Location None
Meeting Times
Fulfills Core Theory Elective

Syllabus

Advanced Algorithms is a course on the design and analysis of efficient algorithms on a series of challenging topics. This course presents many interesting and relevant algorithms and data structures and gives students the tools to recognize and rigorously solve algorithmic problems often encountered in industry and engineering. 

Topics include:

  • Intractability. Theory of NP Completeness. Problems and Reductions: Hamilton Cycle to Traveling Salesman, Vertex Cover to Independent Set to Clique, SAT to 3SAT, 3SAT to Vertex Cover, Circuit-SAT to SAT.
  • Approximation algorithms. Metric k-center problem, Metric traveling salesman problem. Set Cover problem.
  • Online and streaming algorithms. Online counting algorithms. Potential functions. Heavy-hitters algorithms. Sketching algorithms. Multiplicative weights algorithm.
  • Advanced data structures. Skip lists, Segment trees, Tries, Advanced hashing.
  • String algorithms. KMP algorithm. Rabin’s rolling hash fingerprinting algorithm. Aho-Corasick algorithm.
  • Advanced linear programming. LP duality. Integer linear programming and rounding.
  • Advanced dynamic programming. Knuth optimization and divide-and-conquer optimization.
  • Computational geometry. Convex hull algorithms. Line-segment intersection algorithm. Voronoi Diagrams and Delaunay Triangulations.
  • Optimization.

Engaging weekly homework assignments involve designing new algorithms in pseudocode and solving algorithmic programming problems in python. Course goal is to prepare students with skills necessary to tackle algorithmic problems they are likely to encounter in industry and engineering.

Course Prerequisites

B+ or better in MPCS 55001 Algorithms or MPCS 55003 Intermediate Algorithms or instructor consent.

Other Prerequisites

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 does not conflict with any other classes this quarter.

Eligible Programs

MS in Computational Analysis in Public Policy (Year 2) MS in Molecular Engineering MA in Computational Social Science (Year 2) Bx/MS in Computer Science (Option 1: Research-Oriented) 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