Formal languages; finite automata and regular expressions; properties of regular languages; pushdown automata and context-free grammars; properties of context-free languages; introduction to Turing machines and computability.
Prerequisites: Computer Science 40 with a grade of C or better; open to Computer Science and Computer Engineering majors only.