Theory of Computing: A Gentle Introduction
This book focuses on fundamental issues of computation. The readers can master the content and gain lasting perspective from which to understand computers by carefully worked out examples, illustrations, and algorithmic proofs.  Teaches the fundamental concepts behind computation. Hundreds of exercises marked according to the level of difficulty provide readers ample opportunity to apply concepts. Hundreds of illustrations which enhance understanding. Only algorithmic proofs are given in the text allowing readers to calibrate the mathematical depth they want to pursue.  Appropriate for upper division undergraduate and graduate level courses in Computer Science Theory, Theory of Computation, and Automata and Formal Language Theory.