Computer science is the science of the future, and already underlies every facet of business and technology, and much of our everyday lives. In addition, it will play a crucial role in the science the 21 st century, which will be dominated by biology and biochemistry, similar to the role of mathematics in the physical sciences of the 20 th century. In this award-winning best-seller, the author and his co-author focus on the fundamentals of computer science, which revolve around the notion of the algorithm . They discuss the design of algorithms, and their efficiency and correctness, the inherent limitations of algorithms and computation, quantum algorithms, concurrency, large systems and artificial intelligence. Throughout, the authors, in their own words, stress the ‘fundamental and robust nature of the science in a form that is virtually independent of the details of specific computers, languages and formalisms'. This version of the book is published to celebrate 25 years since its first edition, and in honor of the Alan M. Turing Centennial year. Turing was a true pioneer of computer science, whose work forms the underlying basis of much of this book.
David Harel Book order






- 2012
- 2003
Come, let's play: scenario based programming using LSCs and the play engine ; with CD-ROM
- 382 pages
- 14 hours of reading
This book focuses on scenarios of system behavior rather than a traditional narrative. It emphasizes reactive systems, including software, hardware, and computer-embedded systems like distributed and real-time systems. A new programming approach is proposed, centered on inter-object scenario-based behavior. The text introduces a language that extends live sequence charts (LSCs), initially proposed in 1998. Two key techniques are presented: the first, play-in, allows users to 'play in' scenario-based behavior directly from the system's graphical user interface (GUI). The second, play-out, enables the execution or 'play out' of this behavior on the GUI, akin to conventional intra-object state-based programming. This functionality is fully implemented in the Play-Engine tool. The book suggests enhancements for various phases of system development life cycles, such as requirements capture, analysis, prototyping, and testing. More radically, it proposes an alternative programming method for reactivity that aligns closely with how people naturally conceptualize systems and their behaviors.
- 2000
This book provides the first comprehensive introduction to Dynamic Logic. schovat popis