CS 5114: Theory of Algorithms (Fall 2018)

CS 5114 is a traditional introduction to the theory of algorithms for computer science graduate students. It covers methods to construct algorithms and to analyze algorithms mathematically for correctness and efficiency (e.g., running time and space used). The course starts with definitions of algorithmic efficiency, discusses powerful paradigms for algorithm design, defines the theory of NP-completeness, and presents current approaches for coping with intractability, including approximation and randomized algorithms. The course provides a foundation for research in the design and analysis of algorithms itself or on problems with significant algorithmic content.

Instructor

Class Meeting Times

Course Description and Syllabus

Homework Assignments

Schedule

This schedule is subject to continuous change throughout the semester. Please refer to this webpage for the most up-to-date information, for reading assignments, and for homeworks. I will announce every homework and examination via Canvas. All chapters below refer to the textbook, "Algorithm Design" by Kleinberg and Tardos, unless specified otherwise.

Date Topic Reading Homework
Mon, Aug 20, 2018 Introduction and Course Logistics, Stable Matching Chapter 1, 2.3
Wed, Aug 22, 2018 Analysis of Algorithms Chapter 2.1-2.4
Mon, Aug 27, 2018 Review of priority queues and graph searches Chapters 2.5, 3.1-3.3 Homework 1 assigned
Wed, Aug 29, 2018 Class cancelled
Mon, Sep 3, 2018 Labour Day, no class
Wed, Sep 5, 2018 Review of priority queues and graph searches, same lecture as the previous class
Linear-time graph algorithms
Chapters 2.5, 3.1-3.3
Chapter 3.4
Homework 1 due
Mon, Sep 10, 2018 Greedy Graph Algorithms Chapter 4.4-4.6 Homework 2 assigned
Wed, Sep 12, 2018 Greedy Graph Algorithms, same lecture as the previous class
Mon, Sep 17, 2018 Greedy Graph Algorithms, same lecture as the previous class
Wed, Sep 19, 2018 Applications of MST
Divide and Conquer
Chapter 4.7
Chapter 5.1-5.2
Homework 2 due
Homework 3 assigned
Mon, Sep 24, 2018 Divide and Conquer, same lecture as the previous class Chapter 5.4
Wed, Sep 26, 2018 Dynamic Programming
Unweighted and weighted interval scheduling
Chapter 4.1, Chapter 6.1-6.2 Homework 3 due
Mon, Oct 1, 2018 Dynamic Programming, same lecture as the previous class
Segmented least squares
Chapter 6.3 Homework 4 assigned
Wed, Oct 3, 2018 Dynamic Programming, same lecture as the previous class
RNA secondary structure
Chapter 6.5
Mon, Oct 8, 2018 Dynamic Programming, same lecture as the previous class
Sequence alignment
Chapter 6.6-6.7 Homework 4 due
Midterm examination assigned
PDF, LaTeX
Wed, Oct 10, 2018 Dynamic Programming, same lecture as the previous class
Sequence alignment
Chapter 6.7
Mon, Oct 15, 2018 Dynamic Programming, same lecture as the previous class
Shortest paths in graphs
Chapter 6.8 Midterm examination due
Wed, Oct 17, 2018 Network Flow
Ford-Fulkerson algorithm
Chapter 7.1-7.2
On the history of the transportation and maximum flow problems
Mon, Oct 22, 2018 Network Flow, same lecture as the previous class
Ford-Fulkerson algorithm
Homework 5 assigned
Wed, Oct 24, 2018 Network Flow, same lecture as the previous class
Scaling algorithm, Edmonds-Karp algorithm
Chapter 7.3
Mon, Oct 29, 2018 Applications of Network Flow
Maximum matching
Chapter 7.5 Homework 5 due
Wed, Oct 31, 2018 Applications of Network Flow, same lecture as the previous class
Edge-disjoint paths, Image segmentation
Chapter 7.6, 7.10
Mon, Nov 5, 2018 Applications of Network Flow, same lecture as the previous class
Circulation with demands, Airline scheduling
Chapter 7.7, 7.9 Homework 6 assigned
Wed, Nov 7, 2018 NP and Computational Intractability Chapter 8.1-8.2
Mon, Nov 12, 2018 NP and Computational Intractability, same lecture as previous class
NP-Complete Problems
Chapter 8.3-8.4
Chapter 8.5
Homework 6 due
Wed, Nov 14, 2018 NP-Complete Problems, same lecture as the previous class Chapter 8.6-8.7
Mon, Nov 26, 2018 NP-Complete Problems, same lecture as the previous class
Coping with NP-completeness

Chapter 10.1
Homework 7 assigned
Wed, Nov 28, 2018 Coping with NP-completeness, same lecture as the previous class Chapter 10.2, 11.1
Mon, Dec 3, 2018 Coping with NP-completeness, same lecture as the previous class Chapter 11.3, 11.8 Homework 7 due
Tue, Dec 4, 2018 Final examination assigned
PDF, LaTeX
Wed, Dec 5, 2018 No class
Wed, Dec 12, 2018 4pm, Final examination due