Prerequisites, Math 250, CPSC 350. Students study ideas and techniques useful for designing and analyzing data structures and algorithms. In particular, the analytic tools needed for analyzing upper bounds for algorithms and lower bounds for problems will be covered. Problem areas include sorting, graphbased problems, dynamic programming, combinatorial algorithms, computational geometry, encryption, parallel and distributed models, and NPcompleteness. (Offered as needed.) 3 credits. Enrollment Requirements: Take MATH-250 CPSC-350 Enrollment limited to Juniors or Above.