CS345 Automata Theory and Formal Languages
Instructor: Christino Tamon
Lectures: MWF 1-2pm SC356
Office hours: MW 2-3pm, 4-5pm and F 2-3pm SC373
Text: Michael Sipser. Introduction to the Theory of
Computation. PWS Publishing Company, 1997.
- Final exam: 40%
- Midterm exam: 20%
- Assignments and quizzes: 40%
Course Plan: In this course we will focus on the question: What
kind of problems are solvable by the computer? To do this we will define
a mathematically precise formulations of problems, solvable,
and computer. We will study abstract formulations of a computer as
different types of automata: finite automata, pushdown automata and Turing
machines. In a parallel fashion, we will develop notions of problems as
different types of languages: regular, context-free, and recursive languages.
We then show that there is a tight correspondence between these automata
and language characterizations. The course will also cover closure properties,
hardness (Pumping Lemmas), and other relevant topics. Important connections
to compiler theory will be emphasized throughout the course.
- Part 1: Mathematical notations and proof techniques (review of MA211).
- Part 2: DFAs. Regular languages.
- Part 3: NFAs. Equivalence between DFAs and NFAs. Closures.
- Part 4: Regular expressions. Equivalence between RE and NFAs.
- Part 5: NonRegular languages and the Pumping Lemmas.
- Part 6: Context-free languages and Pushdown Automata (PDA).
- Part 7: Context-free grammars. Equivalence with PDAs.
- Part 8: Non-context-free languages and the Pumping Lemmas.
- Part 9: Unrestricted grammars (or simply Grammars)
- Part 10: Turing Machines.
- Part 11: Equivalence of Turing Machines and Grammars.
- Part 12: Variants of TMs. Halting problem.
Assignments: coming soon.