CPS 531: Introduction to Algorithms
Fall Semester, 2023
Basic Information
Instructors: Kamesh Munagala and Alex Steiger
TAs: Laura He and Anish Hebbar
Lectures: W/F 10:05 - 11:20 (Bryan Center Griffith Theater)
Recitation: M 10:05 - 11:20 (Bryan Center Griffith Theater)
Attendance to the lectures and recitations is optional. We will record the lectures, and when possible, post slides for recitations.
Synopsis
This course will cover the basic techniques in algorithm design, including greedy algorithms, divide-and-conquer, amortization, dynamic programming, network flow, linear programming, randomization, NP-Completeness, and approximation algorithms. The techniques will be covered in-depth, and the focus will be on modeling and solving problems using these techniques.
We will assume prior knowledge of discrete mathematics, probability, programming, and basic data structures. You should meet with the instructors if you do not have this background.
Platforms
Sakai: This works as the hub to Gradescope and Ed. Any course resources (e.g. assignment handouts, lecture notes, solutions) will be hosted on Sakai under Resources.
Gradescope: Accessed via Sakai. All assignments and project documents will be submitted here. See Assignments for more info.
Ed Discussions: Accessed via Sakai. Ed is a questions-and-answers message board (similar to Piazza) that is easy to use and allows for all participants to help answer each other's questions. Please ask all course-related questions on Ed by creating a new post, not only those about assignments.
Please let us know if you have trouble with the links.
Textbooks
Algorithms by Jeff Erickson. (required)
Algorithms by S. Dasgupta, C. Papadimitriou, and U. Vazirani. (optional)
Algorithm Design by J. Kleinberg and E. Tardos. (optional; link is to the SLIDES)