Course catalog
Analysis of Algorithms +L

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 will be studied. Methodologies for analyzing algorithm efficiency are reviewed, providing the basis for studying computational complexity, and the classification of problems as being in classes P, NP and NP-complete according to their inherent difficulty. Students will 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

Core Curriculum Designation:

Not Applicable