MPCS 55001 Algorithms (Winter 2022)

Section 2
Instructor(s) Brady, Geraldine (gb52)
Location Ryerson 251
Meeting Times Wednesday 5:30pm - 8:30pm
Fulfills Core Theory

Syllabus

Course Description

The course is an introduction to the design and analysis of efficient algorithms, with emphasis on developing design techniques. Algorithmic problems include sorting and searching, discrete optimization, and algorithmic graph theory.  Design techniques include divide-and-conquer methods, dynamic programming, greedy methods, as well as the design of efficient data structures.  Methods of algorithm analysis include asymptotic notation, evaluation of recurrences, and the concepts of polynomial-time algorithms.  NP-complete problems and reductions are discussed at the end the course. 

Coursework
Lectures and class discussion:
 Students are responsible for all material presented in lectures and in class meetings.
Homework: Weekly homework assignments are posted after class and are due the following week at the beginning of class.  Homework is submitted electronically using LaTeX.
Exams: Midterm exam (week 5) and final exam (week 11).  There will be no make-up exams.

Course grade
The course grade will be based on homework, exams, and participation in class: 

  • Homework: 30%
  • Midterm: 30%
  • Final: 35%
  • Class participation: 5%

Textbook:
Introduction to Algorithms (Third Edition) by T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein (ISBN 978-0-262-03384-8)

Course Prerequisites

MPCS 50103 Discrete Math (Immersion Math) OR a passing score on the Mathematics Placement exam.
Core Programming (completed or concurrently taking).

Other Prerequisites

This course requires competency in Unix and Linux. Please plan to attend the MPCS Unix Bootcamp (https://masters.cs.uchicago.edu/page/mpcs-unix-bootcamp) or take the online MPCS Unix Bootcamp Course on Canvas.

Overlapping Classes

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

  • MPCS 52011-1 -- Introduction to Computer Systems
  • MPCS 53110-1 -- Foundations of Computational Data Analysis
  • MPCS 50103-1 -- Mathematics for Computer Science: Discrete Mathematics
  • MPCS 51250-1 -- Entrepreneurship in Technology

Eligible Programs

Masters Program in Computer Science MS in Computational Analysis in Public Policy (Year 2) MA in Computational Social Science (Year 1) MA in Computational Social Science (Year 2) Bx/MS in Computer Science (Option 3: Profesionally-oriented - Non-CS Majors)