Concepts and techniques of design efficiency and complexity of algorithms. Topics include principles of algorithm design (divide and conquer, backtracking, dynamic programming, greedy and local search); graph, numerical, pattern matching, and parallel algorithms; P, NP, and NP-complete problems. CS credit will be given for only one of these courses: CS 440 or CS 469 - Algorithms in Geographic Information Technology. Prerequisites: ◆ CS 341 - Data Structures.