Presents computer science theory from a uniquely intuitive big picture perspective. Author grounds his clear and interesting study on broad mathematical principles, now low-level technical details. DLC: Machine theory.
One of the greatest things about this book is its focus on developing an intuitive understanding of the concepts and proofs. Other books do a better job of formal proofs but this book is light years ahead of any other in terms of helping you develop an intuitive understanding of why a given proof or construction is correct. It's a lot better than the memorize/regurgitate model necessitated by the emphasis on minutiae of other books.
Lastly, this book provides great tips on how to approach problem solving (especially proofs).
This is the first book on computer science theory that I have seen, which is actually written in understandable English. As compared to the previous introductory texts by Hopcroft or Papadimitriou, Sipser shuns writting the entire book using just symbols of formal mathematics. This is not to say that there is no formalism in the book. There is adequate use of formal mathematics in the proofs of the book, but not so much as to scare even in most intrepid readers like in previous books on this subject.The fact I liked most about this book is that every proof in the book is accompanied by a "Proof Idea" which explains using diagrams and plain english how exactly the proof works. This followed by the formal proof. The problems at the end of each chapter are fairly interesting, and some of the * marked problems can be fairly challenging for a first time student.
Another amazing thing about this book is the amount of content it covers. I would have never expected a book of only 400 pages to cover computer science theory all the way from introductory undergraduate to advanced graduate levels. This is because, the author focusses only on core concepts and strives to make them as clear as possible. For example, this book has only one chapter on regular expressions, while every other book that I have seen has at least 3-4 chapters full of gory details.Read more ›
My advice is read this book if you an undergrad student, even though instructor might be using a different book. If you are a grad student this books makes an excellent reference for refreshing your knowledge of Computer Theory. Computer Theory is not my area of interest, but this book makes it very interesting and fun area; which is quiet unusual for Computer Theory books.
I am a grad student taking advanced "Computer Theory" class. I have bought couple books including this one, and checked out from library another 6. This book in an introductory book and it has excellent coverage of the basics, and it has some brief but very good coverage of advanced topics as well. I read this book every time to refresh my knowledge before I go on to more in depth topics. The only thing that I wish, is that the undergrad course that I have taken a number years ago was using this book; and/or I read this book when I was an undergrad.
I found it very clear, concise and informative. It is highly
recommended for combining simplicity and depth.
I found one problem though; the book has three great
divisions: computability, complexity automata.
There is no doubt that in modern computing, coding theory is considered as important as the previous three branches.
I think that the author should augment his book with
a division on coding (information, error-correction, cryptography) in order to give a complete theory of computing.