Description
Prerequisite(s): None.
This course teaches students how to design algorithms, including how to use different design techniques such as dynamic programming, greedy strategies, and divide-and-conquer. In addition, students learn how to analyze algorithms, including their asymptotic complexity, worst-case and average-case behavior, and correctness. Credit(s): 3