CS 621        Algorithms and Complexity     |
Starting with graph basics, this course mainly consists of two components: (1) algorithmic design patterns, including greedy methods, divide-and-conquer, and dynamic programming; and (2) complexity theories, including reductions, problem classes (P, NP, and beyond), and other related topics.
Prof. Lei Jiao, jiao@cs.uoregon.edu
The course investigates several algorithmic techniques, and demonstrates the application of such techniques to a range of problems in diverse scenarios. The course also studies theoretical knowledge and tools in terms of problem classes and complexity analysis. Upon completion of the course, students will be able to explain, analyze, and implement fundamental algorithmic techniques, including greedy algorithms, divide-and-conquer, and dynamic programming, and to understand, interpret, and apply relevant complexity theories to different problems and algorithms.
Date | Topic | Slides |
Week 1 | Graph representation, searching, and matching. | 1, 2, 3, 4 |
Week 2 | Greedy methods: Minimum spanning tree, Dijkstra. | 1, 2, 3 |
Week 3 | Greedy methods: Minimize lateness, Interval scheduling. | 1, 2, 3 |
Week 4 | Greedy methods: Interval partitioning, Huffman codes, Matroid. | 1, 2, 3 |
Week 5 | Divide and conquer: Master method, Merge sort, Inversion. | 1, 2, 3, 4, 5 |
Dynamic programming: Knapsack, Floyd-Warshall, Bellman-Ford. | ||
Week 6 | Dynamic programming: Memorization, weighted intervals. | |
Week 7 | Dynamic programming: Sequence alignment, CYK, order in problems. | |
Week 8 | Complexity: Polynomial reductions, other reductions, characterizations of NP. | |
Week 9 | Complexity: Satisfiability, 3SAT/3COL, Cook-Levin, below NP, P-completeness. | |
Week 10 | Complexity: Beyond NP, co-NP, and PSPACE. |
Grading will be based on the following criteria:
Percentage | Component |
75% | 5 written assignments |
25% | 1 take-home final exam |
Letter grades will be given based on the following scale:
 A+ [97, 100]  |  A [94, 97)  |  A- [90, 94)  |
 B+ [87, 90)  |  B [84, 87)  |  B- [80, 84)  |
 C+ [77, 80)  |  C [74, 77)  |  C- [70, 74)  |
 D+ [67, 70)  |  D [64, 67)  |  D- [60, 64)  |
 F [0, 60)  |   |   |
All assignments will be distributed via Canvas. Submissions will need to be done via Canvas as well. You are strongly suggested to type your work (e.g., using LaTeX, and Microsoft Word) and submit it as a PDF, instead of using handwritings and/or photocopies. The take-home final exam paper, similar to the written assignment in terms of the format, will be made available on Canvas in Week 11, for which you will have 48 hours to finish and submit your solutions.