As the author says, the members of the research community of Computer Science have done their discipline a disservice by not making any special efforts to write accessible accounts of the field, as a result of which the 'layman' still has little idea of what goes on 'under the hood', so to say. He has therefore undertaken the challenging task of presenting the basic ideas underpinning Computer Science in a way that's easy for the general reader to grasp. He sets out to present the essential notions of Algorithms and data structures, Turing machines, Finite state machines, Decidability, Computability, Complexity, NP-completeness, Correctness, Parallel algorithms, Probabilistic algorithms, and more with a minimum of mathematics and yet without sacrificing intellectual rigour - and most admirably, succeeds in doing so. David Harel is a big name in Theoretical Computer Science, one of the leading researchers, and chairman of the Applied Mathematics and Computer Science Department at the Weizmann Institute of Science. What made my mind up about reading this book were the strongly encouraging remarks on the back cover by Aho & Hopcroft, two of the foremost authors and researchers in the field, who've written some great textbooks themselves. This book presents all the basic fundamental ideas of the theory of computation, using as little maths as possible. Yet, the intellectual rigour is never compromised, which means that the reader truly gets a flavour of how a Computer Scientist thinks, and how much fun it can be. It also shows you how certain problems cannot be solved cheaply while others cannot be solved at all (solved exactly, that is), no matter how much 'computing power' you have - ie theory proves the existence of certain fundamental limits on the problems that we can hope to solve. The writing is exceptionally good - like a true master of his subject, Harel makes concepts seem easy to grasp, though you may find that later on, you realize it was quite a subtle notion that was discussed. The illustations are a great help, and occasional humour provides relief from all the thinking you'll be doing! Even though it's written for the general reader, it is also useful for programmers, systems analysts and designers, software engineers and students, since Harel cuts to the core of the concepts and offers valuable insights into the theory that they might already know. All in all, this book covers amazing ground and is a great introduction to algorithms and the theory of computation. For probing further, you'll need mathematics and textbooks, but this an excellent starting point. |