Most helpful positive review
'Theoretical Computer Science at 10,000 feet'
on November 5, 2001
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.