CS 325H: Analysis of Algorithms (Fall 2020)

Instructor: Amir Nayyeri (Office hours: Wed 3:00-4:00pm at KEC 3061)

Lectures: Tue, Thr 12:00-01:20pm in WNGR 287


Tentative topic list: Asymptotic running time analysis, Recursion, Divide and conquer, Dynamic programming, Greedy algorithms, Linear programming, Computational complexity (P and NP), Randomization*, Approximation algorithms*.

Prerequisites: CS 261; Data structures and introductory discrete mathematics, trees and graphs, data structures such as priority queues, basic proof technique including induction.

Evaluation:

Resources:


Announcements:


Homework:


Lectures:

  1. Tue 1/7: (1) Introduciton to recursion, recursive sorting, merge sort. (2) Recursively sorting a stack, similar to our recursive insersion sort.

  2. Thr 1/9: (1) Introduciton to recursion, tiling, Hanoi tower, Fibonacci numbers. (2) Catalan number, number of monotonic paths below the diagonal and related problems.

  3. Tue 1/14: (1) Asymptotic running time analysis, also see these videos by Tim Roughgaden. (2) Introduciton to recursion, quick sort, introduciton to divide and conquer.

  4. Thr 1/16: Divide and conquer, median selection.

  5. Tue 1/21: (1) Divide and conquer, Karastuba's multiplication. (2) Divide and conquer, closest pair of points.

  6. Thr 1/23: Problem solving session: we discuss this problem set.

  7. Tue 1/28: Dynamic programming, max independent set on the line, splitting a sentence.

  8. Thr 1/30: Dynamic programming, longest increasing subsequence, shortest monotonic path.

  9. Thr 2/4: Dynamic programming, edit distance, subset sum, shortest paths in a gird.

  10. Thr 2/6: Problem solving session: we discuss this problem set.

  11. Tue 2/11: Greedy Algorithms, job scheduling, Huffman codes.

  12. Thr 2/13: Greedy Algorithms, Huffman codes, stable matching.

  13. Tue 2/18: Basic graph algorihms, introduction, whatever first search.

  14. Thr 2/21: Minimum spanning tree.

  15. Tue 2/25: Problem solving session: we discuss this problem set.

  16. Thr 2/27: No class; Amir is traveling.

  17. Tue 3/3: Computational complexity, P/NP/coNP, NP-hardness.

  18. Thr 3/5: Computational complexity, 3SAT, independent set, clique, vertex cover.

  19. Tue 3/10: Computational complexity, graph coloring, subset sum.

  20. Tue 2/25: Problem solving session: we discuss this problem set.