Introduction to the Theory of Computation,
3rd edition, by Michael Sipser, Cengage Learning, 2013. This is for
the first half of the course, and should be available in the bookstore.
Introduction to Algorithms, 3rd edition, by T. Cormen, C.
Leiserson, R.
Rivest, and C. Stein, MIT Press, 2009. This and the extra notes
will be used in the second half of the course.
Extra notes (available from Course Materials in Blackboard):
This is a subset of the notes for DM508 and the same as those for
DM553 in 2015 and 2016.
Lecture notes and problems for discussions sections: