Computing Theory (COT)

COT 3400  -  Design&Analysis of Algorithms  (3 Credits )  
The design, implementation, analysis, and application of a range of computer algorithms are explored. Function order of growth and amortized analysis are used in analyzing algorithms. A review and extension of data structure topics including trees and graphs are covered. Algorithm design strategies such as divide-and- conquer, the greedy method, and dynamic programming are studied.
Prerequisite(s): COP 3530  
COT 4420  -  Theory of Computation  (3 Credits )  
This course focuses on the theoretical foundations of computing, grammars, automata, and formal languages including finite-state and push-down automata, regular expressions, context free and context sensitive languages, Turing machines, and introduction to complexity theory.
Prerequisite(s): COP 3003  
COT 5405  -  Design and Analysis of Algo.  (3 Credits )  
This course will cover techniques for the design of algorithms and the theory of np-completeness. The main topics covered in the course include dynamic programming; divide and conquer; union-find data structures; graph algorithms; np-completeness; and advanced topics.