A new framework for understanding computing: a coherent set of principles spanning technologies, domains, algorithms, architectures, and designs.
Computing is usually viewed as a technology field that advances at the breakneck speed of Moore's Law. If we turn away even for a moment, we might miss a game-changing technological breakthrough or an earthshaking theoretical development. This book takes a different perspective, presenting computing as a science governed by fundamental principles that span all technologies. Computer science is a science of information processes. We need a new language to describe the science, and in this book Peter Denning and Craig Martell offer the great principles framework as just such a language. This is a book about the whole of computing—its algorithms, architectures, and designs.
Denning and Martell divide the great principles of computing into six categories: communication, computation, coordination, recollection, evaluation, and design. They begin with an introduction to computing, its history, its many interactions with other fields, its domains of practice, and the structure of the great principles framework. They go on to examine the great principles in different areas: information, machines, programming, computation, memory, parallelism, queueing, and design. Finally, they apply the great principles to networking, the Internet in particular.
Great Principles of Computing will be essential reading for professionals in science and engineering fields with a “computational” branch, for practitioners in computing who want overviews of less familiar areas of computer science, and for non-computer science majors who want an accessible entry way to the field.
Peter J. Denning is Distinguished Professor of Computer Science at the Naval Postgraduate School, Monterey, California. He is the coauthor of The Innovator's Way: Essential Practices for Successful Innovation and Great Principles of Computing, both published by the MIT Press.
Craig H. Martell is Associate Professor in the Department of Computer Science at the Naval Postgraduate School.
This insightful book provides a structure to help us understand the breadth and depth of computing, which can enable us to place our knowledge in a coherent framework, and in turn can inform the design of curricula.
Tim Bell, Professor, Computer Science and Software Engineering, University of Canterbury
To understand computing is not to examine the computer as a tool, but rather to comprehend the underlying principles that apply to computing's many manifestations and instances. Great Principles of Computing sets us on the path to uncover those underlying principles. But you will not be spoon-fed the keys—you need to identify, ingest, and articulate them for yourself once you read through the tour de force that Denning and Martell offer us. Theirs is a brilliant effort to present a global view of what computing is all about and how it fits into the world we inhabit.
Leonard Kleinrock, Distinguished Professor of Computer Science, University of California, Los Angeles
With some effort almost everyone can learn to program. Writing code is not enough to build significant computing artifacts; to do that requires deeper insight into (at least) how computers work, how to choose algorithms, how computing systems are structured, and what goes into a correct, dependable design. How does one begin to gain those insights when all those items are interrelated? This book is one approach—a thoughtful, integrated presentation of some of the fundamental concepts underlying computing. Presented as a set of detailed yet understandable topics, this text provides a solid foundation for someone learning how to think about computing beyond its mere codification in a programming language. Denning and Martell's text really does present great principles for the student of computing.
Eugene H. Spafford, Professor of Computer Science, Purdue University