CS 621    

    Algorithms and Complexity    

[ Canvas | Slides ]

Course Description

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.

Instructor

Prof. Lei Jiao, jiao@cs.uoregon.edu

Lectures and Office Hours

Textbooks and Readings

Learning Outcomes and Acquired Skills

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.

(Tentative) Schedule

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.

Assignments, Exam, and Grading

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.

Academic Honesty and Other Policies