Description
The course serves as an introduction to the design and anlysis of computer algorithms. The course focuses on techniques for constructing correct and efficient algorithms, and the tools to reason about them. Design paradigms covered include divide-and-conquer, dynamic programming, and greedy algorithms. Material will also include major algorithms and data structures for searching and sorting, graphs, optimization techniques and computational intractability. Prerequisite: COM202 and COM/MAT306. (3 s.h.)