Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

The Profession of IT Peter J.

Denning

Great Principles of Computing


The great principles of computing have been interred beneath layers of
technology in our understanding and our teaching. It is time to set them free.

C
omputer science was born my description, therefore, I portray Lectures in Physics by Richard
in the mid-1940s with the principles and practices as two Feynman [4], The Joy of Science
construction of the first equal dimensions of computing. by Robert Hazen and James Tre-
electronic computers. fil [5], and Cosmos by Carl Sagan
In just 60 years, computing [7]. Newcomers find a princi-
has come to occupy a central ples-based approach to be much
place in science, engineering, more rewarding because it pro-
business, and everyday life. motes understanding from the
Many whose lives are touched beginning and shows how the
by computing want to know science transcends particular
how computers work and how technologies.
dangerous or risky they are; In my portrait, the contexts of
some want to make a profes- use and their histories are imbued
sion from working with com- into principles, computing prac-
puters; and most everyone asks tices, and core technologies.
for an uncomplicated frame- Indeed, you cannot understand a
work for understanding this principle without knowing where
complex field. Can their ques- it came from, why it is important,
tions be answered in a com- why it is recurrent, why it is uni-
pact, compelling, and coherent versal, and why it is unavoidable.
way? Numerous application domains
In what follows, I will have influenced the design of all
answer affirmatively, offering a our core technologies. For exam-
picture of the great principles ple, the different styles of the lan-
of computing. There are two guages Ada, Algol, Cobol, C++,
kinds: principles of computation Fortran, HTML, Java, Lisp, Perl,
structure and behavior, which I A principles-based approach is Prolog, and SQL flow out of the
call mechanics, and principles of not new to science. The mature application domains that inspired
design. What we call principles are disciplines such as physics, biol- them. You cannot make sense of
almost always distilled from recur- ogy, and astronomy portray them- the debates about the limits of
MICHAEL SCHROETER

rent patterns observed in practice. selves with such an approach. machine intelligence without
Do practices shape to underlying Each builds rich structures from a understanding cognitive science
principles? Do principles shape to small set of great principles. and linguistic philosophy. In soft-
practice? It is impossible to tell. In Examples of this approach are ware, unless you understand the

COMMUNICATIONS OF THE ACM November 2003/Vol. 46, No. 11 15


The Profession of IT

The principles of a field are actually a set of interwoven


stories about the structure and behavior of field elements.

different ways engineers and archi- databases, networks, artificial and their great ideas does little to
tects use the term “design,” you intelligence, human-computer convey the great principles of com-
cannot make sense of the tug-of- interaction, and software engi- puting. Two books seeking to pop-
war between traditionalists ularize computing focus
promoting systems pro- algorithms management information systems on a few “great ideas” in a
duced by a highly artificial intelligence natural-language processing few of these areas, but
methodical engineering compilers networks their coverage is far from
process, and agile develop- computational science operating systems complete [1, 6]. Neither of
ers promoting systems computer architecture parallel computation these authors discusses
built for customer satisfac- data mining programming languages which ideas are fundamen-
tion, artistry, good taste, data security real-time systems tal principles of all the core
data structures robots
simplicity, and elegance. technologies.
databases scientific computation
The following sections Locating the funda-
decision support systems software engineering
describe principles of mental principles of the
distributed computation supercomputers
mechanics, principles of field looks, therefore, to be
e-commerce virtual reality
design, and computing a very attractive project. It
graphics vision
practices as a framework human-computer interaction visualization
calls to mind a picture in
supporting core technolo- information retrieval workflow
which the principles are
gies and application the foundation of a pan-
domains. A few implica- Table 1. Core technologies of computing. theon with one pillar for
tions of the framework on organiza- each great principle. Unfortunately,
tion and content of computing as we shall soon see, such a picture
curricula, and on the profession neering. The 1989 ACM/IEEE is an unsatisfactory portrayal of
itself, are discussed at the end of this report, Computing as a Discipline, computing.
column. listed nine core technology areas Our initial question is: How
[2]. Since then, the total number shall we express our principles? It
Mechanics of core technology areas has seems like we are looking for
In the 1950s, our field’s founders tripled (see Table 1). Today, declarative statements, such as:
portrayed their young science as learning the mechanics of these “The Turing machine is a model
a set of core technologies that technologies and their hundreds of universal computation.”
supported application domains. of possible direct interactions has “All information can be encoded
They listed their core technolo- become a daunting challenge. as strings of bits.”
gies as algorithms, numerical In an effort to stem “curriculum “The number of bits in a message
methods, computation models, bloat” from this growth, the Cur- source is given by its entropy.”
compilers, languages, and logic riculum 2001 report emphasizes But this approach quickly
circuits. Over the next 30 years, the ideas at the intersection of the becomes contentious. Some peo-
we added a few more: operating core technologies [3]. Unfortu- ple argue over the definitions of
systems, information retrieval, nately, a list of core technologies terms like computation, informa-

16 November 2003/Vol. 46, No. 11 COMMUNICATIONS OF THE ACM


tion, or message sources. Others contributors. They chronicle feats wave behaviors of subatomic parti-
ask whether some of the words of heroes and failures of knaves. cles; Rigid-Body Mechanics with
ought to be qualified—such as They lay out obstructions and the balance of forces within and
algorithmic computation, physi- how they were overcome. They between connected objects. I
cally represented bits, or dis-
crete message sources. Still Window Central Concern Principal Stories
others ask why these statements Computation What can be computed; Algorithm, control structures, data structures,
are singled out and not others, limits of computing. automata, languages, Turing machines, universal
computers, Turing complexity, Chaitin complexity,
such as “Every function self-reference, predicate logic, approximations,
imposes a lower-bound running heuristics, non-computability, translations,
physical realizations.
time on all algorithms that
compute it.” Most everyone Communication Sending messages from
one point to another.
Data transmission, Shannon entropy, encoding
to medium, channel capacity, noise suppression,
demands statements of obvious file compression, cryptography, reconfigurable
relevance to the familiar core packet networks, end-to-end error checking.

technologies. But they wrestle Coordination Multiple entities cooperating Human-to-human (action loops, workflows as
toward a single result. supported by communicating computers), human-
over the selection criteria for computer (interface, input, output, response
principle statements, such as time); computer-computer (synchronizations,
races, deadlock, serializability, atomic actions).
universality, recurrence, invari-
ance, utility for prediction, or Automation Performing cognitive tasks Simulation of cognitive tasks, philosophical dis-
by computer. tinctions about automation, expertise and expert
scope of consequences. systems, enhancement of intelligence, Turing tests,
How do other fields express machine learning and recognition, bionics.
their principles? Physicists use Recollection Storing and retrieving Hierarchies of storage, locality of reference,
information. caching, address space and mapping, naming,
terms like photons, electrons, sharing, thrashing, searching, retrieval by name,
quarks, quantum wave function, retrieval by content.
relativity, and energy conserva-
tion. Astronomers use terms like Table 2. The five windows of computing
planets, stars, galaxies, Hubble shift, mechanics. adopt this term for computing.
and black holes. Thermodynami- Computing Mechanics deals
cists uses terms like entropy, first explain how the principle works with the structure and operation of
law, second law, and Carnot cycle. and how it affects everything else. computations. It does so with sto-
Biologists use terms like phylogeny, The game is to define many terms ries for algorithm, Turing machine,
ontogeny, DNA, and enzymes. in terms of a few terms and to log- grammar, message entropy, process,
Each of these terms is actually the ically derive many statements from protocol stack, naming, caching,
title of a story! The principles of a a few statements. machine learning, virtual machine,
field are actually a set of interwoven Astronomy, thermodynamics, and more. I found I could group
stories about the structure and and physics use the term mechanics the stories into the five categories
behavior of field elements. They are for the part of their fields dealing of computation, communication,
the names of chapters in books with the behavior and structure of coordination, automation, and rec-
about the field [4, 5, 7]. components. For example, Celes- ollection (see Table 2). Every core
These principle-stories seek to tial Mechanics deals with the technology expresses all five in its
make simple the complex history motions of heavenly bodies; Statis- own way.
of a complex area. They tell his- tical Mechanics with the macro The lines between these cate-
tory, showing how the principle behavior of physical systems com- gories are blurry. For example, the
evolved and grew in acceptance prising large numbers of small par- Internet protocol stack is an ele-
over time. They name the main ticles; Quantum Mechanics with ment of both communication and

COMMUNICATIONS OF THE ACM November 2003/Vol. 46, No. 11 17


The Profession of IT

coordination; naming and caching encapsulation, interfaces, and vir- Computing Practices
are both elements of communica- tual machines. These principles Our picture of computing needs
tion and recollection. Therefore, I are conventions that we collectively more than mechanics and design.
found it better to view the cate- have found to lead consistently to It needs an account of the com-
gories as windows into computing dependable and useful programs, puting practices that characterize
mechanics (see Figure 1). systems, and applications. These our skills as professionals. Our
Although the views through the conventions are practiced within competence is judged not by our
edges of windows overlap, the constraints of cost, schedule, com- ability to explain principles, but
view through the centers is dis- patibility, and usability. by the quality of what we do. I
tinctive. found five main categories of
co computing practice:
Design n mp • Programming: Using pro-
t i o uta
Computing Mechanics l l ec tio gramming languages to build
c o n
does not exhaust all the re software systems that meet spec-
principles of our field. ifications created in cooperation
Computing professionals with the users of those systems.
follow principles of design COMPUTING Computing professionals must
omm c

that enable them to harness be multilingual, facile with the


on

MECHANICS
mati

mechanics in the service of numerous programming lan-


unic

users and customers. Five guages, each attuned to its own


auto

ation

concerns drive the design strategies for solving problems.


principles: • Engineering Systems:
• Simplicity: Various coordination Designing and constructing sys-
forms of abstraction and tems of software and hardware
structure that overcome the components running on servers
apparent complexity of the Figure 1. The five windows.
connected by networks. These
applications. practices include a design compo-
• Performance: predicting nent concerned with organizing a
throughput, response time, bottle- Design is not the same in com- system to produce valuable and
necks, capacity planning. puting as it is in other fields. In tangible benefits for the users; an
• Reliability: redundancy, recov- computing we design abstract engineering component concerned
ery, checkpoint, integrity, system objects that perform actions. Other with the modules, abstractions,
trust. fields use abstraction to explain or revisions, design decisions, and
• Evolvability: adapting to to organize tangible objects. Since risks in the system; and an opera-
changes in function and scale. design tells us about arrangements tions component concerned with
• Security: access control, of basic components, design sits configuration, management, and
secrecy, privacy, authentication, above mechanics in our picture of maintenance of the system. High
integrity, safety. the field. levels of skill are needed for large
The design principles them- Might we call Computing programmed systems encompass-
selves include abstraction, infor- Mechanics the “science” of com- ing thousands of modules and
mation hiding, modules, separate puting and the Design Principles millions of lines of code.
compilation, packages, version the “art”? I think not. There is • Modeling and validation:
control, divide-and-conquer, func- good science and engineering and Building models of systems to
tional levels, layering, hierarchy, much art at all levels—mechanics, make predictions about their
separation of concerns, reuse, design, and applications. behavior under various conditions;

18 November 2003/Vol. 46, No. 11 COMMUNICATIONS OF THE ACM


Our competence is judged not by our principles, but by
the quality of what we do.

and designing experiments to vali- computing systems), and core ity to discuss risks, benefits, capa-
date algorithms and systems. technologies (organized around bilities, and limitations with peo-
• Innovating: Exercising leader- shared attributes of application ple outside the field. It recognizes
ship to design and bring about domains). Although not shown in that computing is action-oriented
lasting changes to the ways groups the figure, the entire framework and has many customers, and
and communities operate. Innova- floats in a rich contextual sea of that the context in which com-
tors watch for and analyze oppor- application domains, collectively puting is used is as important as
tunities, listen to customers,
formulate offers customers see Levels Central Questions Example Technologies
as valuable, and manage com- Application How do we work with others to Supercomputers, grid computing, domain
mitments to deliver the Domains design computing that serves them? databases, graphics design, interfaces, ...
promised results. Innovators are Core How do we design computations Algorithms, databases, networks, operating
history-makers who have Technologies that support common elements systems, HCI, AI, …
across applications?
strong historical sensibilities.
• Applying: Working with Design How do we organize ourselves to Design tools, object-oriented programming,
Principles build computations that work? layering, virtual machines, authentication, …
practitioners in application
domains to produce computing Computing
Mechanics
How do computations work? Logic simulators, protocol stack, workflow,
expert systems, virtual memory, …
systems that support their
work. Working with other
computing professionals to pro- Table 3. Levels of action in computing the mechanics of computing. It
duce core technologies that sup- practices. also clarifies professional compe-
port many applications. tence, which depends on dexterity
I cannot overemphasize the exerting strong influences on core with mechanics, design, practices,
importance of including comput- technologies, design, mechanics, core technologies, and applica-
ing practices in a portrait of our and practice. Each level of the pic- tions.
field. If we adopt a picture that ture has a characteristic question For years, many others have
ignores practices, our field will end that justifies its place in the hierar- seen our field as programming.
up like the failed “new math” of chy and exposes the integral role Through our 1989 Computing as
the 1960s—all concepts, no prac- of practices (see Table 3). a Discipline report [3] we hoped to
tice, lifeless; dead. encourage new curricula that
Our portrait is now complete Implications would overcome this misleading
(see Figure 2). It consists of com- By aligning with traditions of image. But this was not to be. Our
puting mechanics (the laws and other science fields, a portrait of practice of embedding a program-
universal recurrences that govern computing organized around ming language in the first courses,
the operation of computations), great principles and practices started when languages were easy
design principles (the conventions promotes greater understanding for beginners, has created a mon-
for designing computations), com- of the science and engineering ster. Our students are being over-
puting practices (the standard behind information technology. whelmed by the complexities of
ways of building and deploying It significantly improves our abil- languages that many experts find

COMMUNICATIONS OF THE ACM November 2003/Vol. 46, No. 11 19


The Profession of IT

Figure 2.
CORE TECHNOLOGIES Principles-based
portrait of
artificial
computing.
architectures intelligence
COMPUTING
operating
PRACTICES databases systems
programming ETC. ...
engineering systems algorithms networks
modeling
innovating
applying

DESIGN
GREAT simplicity, performance, reliability,
evolvability, security
PRINCIPLES
OF MECHANICS
COMPUTING computation, communication, coordination,
automation, recollection

challenging (typically Java and approach; the framework pro-


C++). Many students have turned motes depth in concepts, design,
to cheating and plagiarism as ways and practice.)
to pass these courses, and It is time for us to make our-
35%–50% drop out prematurely. selves known by saying our
Many do not experience the joy of mechanics, our design principles,
computing: the interplay between and our practices. It is time to
the great principles, the ways of stop hiding the enormous depth
algorithmic thinking, and the and breadth of our field. c
solutions of interesting problems.
A curriculum organized around References
the framework offered here may 1. Biermann, A. Great Ideas in Computer Sci-
ence, 2nd ed. MIT Press, 1997.
rescue us from this unfortunate 2. Denning, P., et al. Computing as a discipline.
predicament. The current first Commun. ACM 32, 1 (Jan. 1989), 9–23.
3. Curriculum 2001 Final Report;
courses (CS1, CS2, ... ) can be computer.org/education/cc2001/final/.
replaced by Computing Mechan- 4. Feynman, R. Lectures in Physics. Addison-
ics (CM1, CM2, ...) and their Wesley, 1970.
5. Hazen, R. and Trefil, J. Science Matters.
extensive programming content Anchor, 1991.
can be moved to Programming 6. Hillis, D. The Pattern on the Stone. Basic
Books, 1999.
Practices courses (PP1, PP2, ...) 7. Sagan, C. Cosmos. Random House, 2002.
embedded within a larger Com-
puting Practices track. The stan-
Peter Denning (pjd@nps.navy.mil)
dard core courses (for example, is past president of ACM.
algorithms, operating systems,
databases, software engineering, or Permission to make digital or hard copies of all or part of
this work for personal or classroom use is granted without
networks) can then be reshaped to fee provided that copies are not made or distributed for
extend computing mechanics into profit or commercial advantage and that copies bear this
notice and the full citation on the first page. To copy oth-
their areas rather than teaching erwise, to republish, to post on servers or to redistribute
to lists, requires prior specific permission and/or a fee.
applicable mechanics from scratch.
(Aside to academic colleagues:
starting with computing mechan-
ics is not a “breadth-first” © 2003 ACM 0002-0782/03/1100 $5.00

20 November 2003/Vol. 46, No. 11 COMMUNICATIONS OF THE ACM

You might also like