This course is the study of topics that include the theory of finite state machines and automata; regular expressions; Turing machines; grammars; parsing; the language hierarchy; machine design and construction; computability; insolvability; and the halting problem. The course also discusses issues in the equivalence of various computational models and characterizations. Prerequisites: COMP 360. (F;S;SS)