Term Taken: 2019 Fall

Instructor: Prof. Tao Yufei

# Grading Scheme

**Original Scheme:**

- Quiz (18%)
- Midterm Exam (32%)
- Final Exam (50%)

**Scheme for 2019 Course Cancellation:**

- Quiz (23.8%)
- Midterm (76.2%)

# Textbook

Introduction to Algorithms, 3rd Edition. By Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein.

# Topics Covered

- Recursion.
- Divide and Conquer.
- Greedy Algorithms.
- Dynamic Programming.
- Graph Algorithms.
- Complexity Theory.
- NP-complete Problems.
- Approximation Algorithms.

# Review

This is a theoretical algorithm course focusing on proving the correctness and complexity of algorithms. It covers some essential algorithmic techniques such as divide and conquer, greedy, and dynamic programming, but the main focus is on why certain algorithms are correct and how good the algorithms perform. Though this subject requires no programming, it balances well between practical and theoretical knowledge.

The quizzes in the course was easy as long as you were familiar with the algorithms introduced in the course (though I got pretty bad scores…). The midterm was slightly harder than the quizzes because it required more thinking and algorithmic reasoning to extend the algorithms taught in class. Overall, this was a nice and chill theoretical computer science course.

Also, Prof. Tao is extremely passionate in teaching. He has his unique way in guiding the students, every lecture given by him is very enjoyable and inspiring. Highly recommended!