You are here

Great Principles of Computing

Peter J. Denning and Craig H. Martell
Publisher: 
MIT Press
Publication Date: 
2015
Number of Pages: 
302
Format: 
Paperback
Price: 
30.00
ISBN: 
9780262527125
Category: 
General
[Reviewed by
Russell Jay Hendel
, on
06/26/2015
]

Great Principles presents an excellent overview of computer science. It should be:

  • Required reading, possibly the main course text, in an introductory course of any university computer program.
  • A secondary or support text in any upper level discrete math course.

The most important feature of the book is that computers are not viewed as external to reality but rather as part of the real world and consequently as source and impetus for new mathematical and scientific theories: Just as the physicist studying the motion of the heavenly bodies arrives at the laws of mechanics, just as the biologist studying population development arrives at the differential equation model of population equilibrium, so to the computer scientist studying computers interacting with each other or with servers naturally results in new mathematical disciplines like queuing theory. Similar comments can be made about the fields of coding or the world wide web. Great Principles sees all interactions between computers and other disciplines as part of computer science. To fully appreciate this perspective let us review the chapter on queuing.

Queuing: Technically queuing is a field of Operations Research. So one would not expect to find an entire chapter on queuing in a computer science book. But its development was intimately connected with computers and their capacity. Queuing theory deals with multiple servers satisfying needs of customers. Some typical examples are i) phone lines coming into a telephone exchange, ii) computers in an office coming into servers, iii) customers checking out in lines at a supermarket, or iv) ATM customers obtaining money from a set of ATM machines.

Some typical raw measures connected with queuing situations are the number of servers, the number of arrivals per server, the number of request completions, the number of customers waiting for service, and the total busy time of the servers. Queuing theory provides performance metrics for queues such as the average number of jobs completed per unit of time, the fraction of time a particular server is busy, the average number of customers waiting, the average time to complete a job and the number of visits to each server.

The chapter on queuing has no algorithms or programs. It starts historically with Erlang's creation of queuing theory for multiple telephone lines served by a common telephone exchange. Great Principles then shows the unique features that a computing server system has over a phone server system. Some laws are then presented such as the Utilization law, Little's law, the forced flow law, and the response time law. The important balance equations are also introduced. Finally the book gives some light examples: ATM machines servicing bank customers, phone lines serviced by a phone exchange, and a time sharing system. The mathematics used can be understood by anyone with high school algebra. The queuing chapter is accompanied by historical tidbits, illustrative graphs and discussions of efficiency.

The other chapters of Great Principles are similar. Here are the main features of the book:

  • Breadth: Several domains — queuing, coding, the Internet, memory, parallelism, programming, and computing machines — are each explored in their own chapters, giving Great Principles a rich depth.
  • Exercises and further exploration: Although Great Principles has no exercises, it has a bibliography of about 200 papers and books. Assignments to present or write summaries of these papers could substitute for exercises in an introductory course. Future editions of Great Principles could benefit from exercises, both those illustrating the technical aspects of the book as well as open-ended exercises reviewing heuristic aspects of the field.
  • Readability: Great Principles, while technical in its discussions of memory, access, parallelism, queuing and routing, is nevertheless friendly. The prerequisite for understanding the book is high-school algebra.
  • Tidbits: Great Principles is rich with historical backgrounds, pictures of famous people in computer science, and the tracing of how fields were established.
  • Organization: A major innovation of Great Principles is its organization. Great Principles is organized around six computer categories applied to six computing domains. The six categories are computing domain (programming, machines, complexity, solvability), recollection (memory and networking), coordination (when many autonomous agents are involved such as in parallel computation and queuing), communication (networking and security), design (the creation of reliable and dependable complex systems), and evaluation (testing algorithms (such as queuing algorithms) to see if they produce intended results at a proper response rate). These six categories are applied to the six computer domains of programming languages, databases, virtual memory, security, Internet, and architecture. Everything in the book can be perceived as some category applied to some domain. Despite this novel organization, my opinion is that the strong point of the book is not its organization, but the perspective that computers are perceived as part of reality and like all parts of reality, their study generates new mathematics and science.

Russell Jay Hendel, RHendel@Towson.Edu, holds a Ph.D. in theoretical mathematics and an Associateship from the Society of Actuaries. He teaches at Towson University. His interests include discrete number theory, applications of technology to education, problem writing, actuarial science and the interaction between mathematics, art and poetry.

The table of contents is not available.