(Cross-listed as MATH 0170). Models of computation: Turing machines, pushdown automata, and finite automata. Grammars and formal languages, including context-free languages and regular sets. Important problems, including the halting problem and language equivalence theorems. Recommendations: COMP 0015 Data Structures and COMP/MATH 0061 Discrete Mathematics (or similar courses).