This course will cover the techniques for algorithm analysis, with examples from various sorting and search algorithms. Then the course will introduce advanced design and analysis techniques including dynamic programming, greedy algorithms, amortized analysis, B-trees and Fibonacci Heaps. Finally, some graph algorithms such as minimum spanning trees, shortest path algorithms will be discussed.
The course will be based on instructors-lead lectures, student-lead discussions, quizzes in the form of mock technical interviews, midterm and final exam.
Jason Gu Yu (Fall 2013)
Simon Lui (Fall 2014, Spring 2017)
Costas Courcoubetis (Fall 2015)
Weekly quizzes, midterm and final exam