The following texts are recommended as supplemental material.
Other texts on automata theory:
 John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation, second edition, Adison Wesley, 2001.
 John E. Hopcroft and Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation, 1979.
For the section on general recursion theory
 Michael Machtey and Paul Young, An Introduction to the General Theory of Algorithms, North Holland, 1978.
For undecidability and logic
 Herbert B. Enderton, A Mathematical Introduction to Logic, Academic Press, 1972.
For lambda calculus (optional advanced topic)
 J. Roger Hindley and Jonathan P. Seldin, Introduction to Combinators and lambdaCalculus, Cambridge, 1986.
 H. P. Barendregt, The Lambda Calculus Its Syntax and Semantics, Revised Edition, North Holland, 1984.
Lecture Notes:
Past Exams:
 Fall 2004 midterm (pdf).
 Fall 2004 final (pdf).
 Spring 2005 midterm (pdf).
 Followup homework from midterm (pdf).
 Spring 2005 final (pdf).
 Fall 2005 midterm (take home exam) (pdf).
 Fall 2005 final (pdf).
 Spring 2007 midterm (in class exam) (pdf).
 Spring 2007 final (pdf).
 Fall 2007 final (pdf).
 Fall 2008 final (pdf).
 Fall 2008 midterm (in class exam) (pdf).
 Fall 2008 final (pdf).

