The Great Principles of Computing
Computing may be the fourth great domain of science along with the physical, life and social sciences
Great Principles of Computing
The maturing of our interpretation of computing has given us a new view of the content of the field. Until the 1990s, most computing scientists would have said that it is about algorithms, data structures, numerical methods, programming languages, operating systems, networks, databases, graphics, artificial intelligence and software engineering. This definition is a technological interpretation of the field. A scientific interpretation would emphasize the fundamental principles that empower and constrain the technologies.
My colleagues and I have developed the Great Principles of Computing framework to accomplish this goal. These principles fall into seven categories: computation, communication, coordination, recollection, automation, evaluation and design (see the table at right for examples).
Each category is a perspective on computing, a window into the knowledge space of computing. The categories are not mutually exclusive. For example, the Internet can be seen as a communication system, a coordination system or a storage system. We have found that most computing technologies use principles from all seven categories. Each category has its own weight in the mixture, but they are all there.
In addition to the principles, which are relatively static, we need to take account of the dynamics of interactions between computing and other fields. Scientific phenomena can affect one another in two ways: implementation and influence. A combination of existing things implements a phenomenon by generating its behaviors. Thus, digital hardware physically implements computation; artificial intelligence implements aspects of human thought; a compiler implements a high-level language with machine code; hydrogen and oxygen implement water; complex combinations of amino acids implement life.
Influence occurs when two phenomena interact with each other. Atoms arise from the interactions among the forces generated by protons, neutrons and electrons. Galaxies interact via gravitational waves. Humans interact with speech, touch and computers. And interactions exist across domains as well as within domains. For example, computation influences physical action (electronic controls), life processes (DNA translation) and social processes (games with outputs). The second table illustrates interactions between computing and each of the physical, life and social sciences, as well as within computing itself. There can be no question about the pervasiveness of computing in all fields of science.