A systematic study of the analysis and design of algorithms, particularly those used for complex data structures and non-numeric processes. Topics include analysis of complexity, complexity classes, dynamic programming, automata-based algorithms, backtracking, and parallel algorithms.
Prerequisite(s): Grades of "C" or better in CMPSC 2410 Data Structures.
A natural continuation of CMPSC 1500 Program Design concentrating on the motivation, design, implementation, and utilization of abstract data types. Topics include linked lists, stacks, queues, trees, and recursion. A lab component is incorporated.
Prerequisite(s): Grade of "C" or better in CMPSC 1500 Program Design.
(Normally offered each spring semester.)