This course covers major algorithm design techniques; theoretical analysis of nonrecursive and recursive algorithms; applications to sorting, searching, string matching, graphs; P and NP complexity classes; and approximation algorithms.
- Establish an understanding of fundamental techniques for algorithm design
- Establish an understanding of efficiency classifications
- Develop and ability to mathematically analyze recursive and nonrecursive algorithms
- Apply algorithmic techniques to important problems from various areas of computing
- General requirements (calculus, discrete math, data structures)