[3]This course begins with a quick review of basic automata theory (regular languages and finite automata, context-free languages and pushdown automata) then moves on to an in-depth treatment of Turing machines and computability. Advanced topics might include an introduction to recursion theory and basic computational complexity theory. Prerequisite: Prerequisite: CMSC 451 or equivalent or consent of instructor.