Geology students reviewing a topographical map. background

Course Catalog

Analysis of Algorithms

This is a lecture and laboratory course that studies effectiveness, efficiency and clarity considerations in algorithm design and implementation. Both sequential and parallel algorithms are included. General techniques, such as divide and conquer, greedy methods, dynamic programming, backtracking, searching, and various traversals, are studied. Methodologies for analyzing algorithm efficiency are reviewed, providing the basis for studying computational complexity, as well as the classification of problems as being in classes P, NP and NP-complete according to their inherent difficulty. Students distinguish tractable problems (problems with efficient solutions) from intractable problems (problems whose known solutions are impractical regardless of how powerful the computer becomes). Prerequisite: CSCI 220. Alternate years.

Grade Basis: Letter Grade
Credits: 4.0