3.00 Credits
Study of algorithms, data structures, and complexity analysis beyond the introductory treatment from CS 2420. Balanced trees, heaps, hash tables, string matching, graph algorithms, external sorting and searching. Dynamic programming, exhaustive search. Space and time complexity, derivation and solution of recurrence relations, complexity hierarchies, reducibility, NP completeness. Laboratory practice. Prerequisites: 'C-' or better in CS 2100 AND CS 3500 AND (Full Major status in Computer Science OR Computer Engineering OR Data Science OR Software Development)