Introduction to Computer Theory by Daniel I. A. Cohen
This text strikes a good balance between rigor and an intuitive approach to computer theory. Covers all the topics needed by computer scientists with a sometimes humorous approach that reviewers found "refreshing". It is easy to read and the coverage of mathematics is fairly simple so readers do not have to worry about proving theorems.
Automata theory. Background. Languages. Recursive definitions. Regular expressions. Finite automata. Transition graphs. Kleene's theorem. Nondeterminism. Finite automata with output. Regular languages. Nonregular languages. Decidability. Pushdown automata Theory. Context-free grammars. Trees. Regular grammars. Chomsky normal form. Pushdown automata. CFG=PDA. Context-free languages. Non-context-free languages. Intersection and complement. Parsing. Decidability. Turing theory. Turing machines. Post machines. Minsky's theorem. Variations on the TM. Recursively enumerable languages. The encoding of turing machines. The chomsky hierarchy. Computers. Bibliography. Table of theorems.