This course covers basic theories and techniques for algorithmic development. Topics
include: Sorting and searching; recursion; analysis of complexity; algorithm paradigms; NP complete problems; complexity metrics. The main objectives in the class are understanding the mathematical underpinnings of algorithmic development and using the computer (appropriate programming language) to solve problems within the specified problems.