MPCS 55001: Algorithms
Winter 2024


announcements | organization


Announcements

IMPORTANT DATES

Midterm Examination:

Final Examination:

  • Tuesday March 5 5:30 pm – 8:30 pm in JCL 390
    Note: nonstandard room

General Information

We will use Slack, Canvas, Zoom, and Gradescope.

Textbooks

  • Required textbook: Introduction to Algorithms (Third or Fourth Edition) by T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein = CLRS

  • Recommended textbooks:
    • Algorithms by S. Dasgupta, C. Papadimitriou, & U. Vazirani (ISBN 978-0-07-35340-8)
    • Algorithm Design by J. Kleinberg & E. Tardos (ISBN 0-321-29535-8)

Readings from these three textbooks are posted on the schedule of class meetings.

Coursework

Coursework consists of attending class meetings, doing assigned readings, and submitting weekly homework assignments, both theory and programming. There will be a midterm and a final examination.

Grading scheme:

Course Policies:

Questions regarding these policies should be addressed to the instructor.

Syllabus & Schedule of class meetings

Week 1: Saturday January 6
Divide-and-conquer
Analysis of algorithms: insertion sort & mergesort
Karatsuba fast integer multiplication algorithm
10:00 am –12:00 noon in Ryerson 251
Reading assignment: CLRS chapters 1, 2, and 3; chapter 4, sections 4.1, 4.3–4.5; Dasgupta et al. chapter 2, sections 2.1–2.3
Week 2: Tuesday January 9
Randomized algorithms: Las Vegas and Monte Carlo algorithms
Quicksort and primality testing
Randomized data structures: Hash tables
5:30–8:30 pm in Ryerson 251
Reading assignment: CLRS chapters 5, 7, and chapter 11, section 11.2; Dasgupta et al. chapter 1, section 1.3
Week 3: Tuesday January 16
Dynamic programming
5:30–8:30 pm in Ryerson 251
Reading assignment: CLRS chapter 15, sections 15.1–15.4; Dasgupta et al. chapter 6, sections 6.2–6.5; Kleinberg & Tardos chapter 6, sections 6.1–6.2
Week 4: Tuesday January 23
Data structures: Heaps, Binary Search Trees, and Hash Tables
5:30–8:30 pm in Ryerson 251
Reading assignment: CLRS chapter 6, section 6.5; chapter 12, sections 12.1–12.3; chapter 11, sections 11.1–11.4
Week 5: Tuesday January 30
Graph traversal: Breadth-first search and depth-first search
5:30–8:30 pm in Ryerson 251
Reading assignment: CLRS chapter 22, sections 22.1–22.4; Dasgupta et al. chapter 3 & chapter 4, sections 4.1–4.2
Saturday February 3
Midterm examination
10:00 am to 12:00 noon in JCL 390
Week 6: Tuesday February 6
Shortest paths: Dijkstra's algorithm; Bellman-Ford algorithm
Graph reductions
5:30–8:30 pm in Ryerson 251
Reading assignment: CLRS chapter 24, sections 24.1–24.3; Dasgupta et al. chapter 4, sections 4.4–4.7
Week 7: Tuesday February 13
Minimum spanning trees: Prim's and Kruskal's algorithms; Union-Find data structure
5:30–8:30 pm in Ryerson 251
Reading assignment: CLRS chapter 23; chapter 21, section 21.3; Dasgupta et al. chapter 5, section 5.1
Week 8: Tuesday February 20
Network flow, bipartite matching; linear programming
5:30–8:30 pm in Ryerson 251
Reading assignment: Dasgupta et al. chapter 7, sections 7.1–7.3; CLRS chapter 26, sections 26.1–26.3; chapter 29, sections 29.1–29.2
Week 9: Tuesday February 27
NP-complete problems
5:30–8:30 pm in Ryerson 251
Reading assignment: Dasgupta et al. chapter 8
Week 10: Tuesday March 5
Final Examination
5:30–8:30 pm in JCL 390


Organization

Staff

Lectures

Discussion Sessions


brady at cs dot uchicago dot edu