The discipline of computing is the systematic study of algorithmic processes that describe and transform information: their theory, analysis, design, efficiency, implementation, and application. The fundamental question underlying all of computing is, "What can be (efficiently) automated?" [1]
The Task Force on the Core of Computer Science (whose definition of the discipline of computing is quoted above) identified three major paradigms or cultural styles by which computing practitioners approach their work:
Theory is the bedrock of the mathematical sciences: applied mathematicians share the notion that science advances only on a foundation of sound mathematics.
Abstraction (modeling) is the bedrock of the natural sciences: scientists share the notion that scientific progress is achieved primarily by formulating hypotheses and systematically following the modeling process to verify and validate them.
Design is the bedrock of engineering: engineers share the notion that progress is achieved by posing problems and systematically following the design process to construct systems that solve them.
Computing sits at the crossroads among the central processes of applied mathematics, science, and engineering. The three processes are of equal -- and fundamental -- importance in the discipline, which is a unique blend of interaction among theory, abstraction, and design. The binding forces are a common interest in experimentation and design as information transformers, a common interest in computational support of the stages of those processes, and a common interest in efficiency. [2]
Software engineering is: [3]
Wasserman [5] identifies eight fundamental notions that form the basis for an effective discipline of software engineering:
What is needed for the engineer of the future is a new definition -- one that includes the art and skill of problem-solving in broader socio-technologic issues and, as a need that will be with us forever, the art and skill of change management. In this context, no other career -- with the possible exception of medicine -- offers so much potential for personal reward, self esteem and enduring value to [humankind]. [6]
[1] Task Force on the Core of Computer Science, Computing as a Discipline, CACM 32/1 (Jan. 1989), p. 12.
[2] Computing as a Discipline, p. 11.
[3] Bruegge and Dutoit, Object-Oriented Software Engineering (Prentice Hall, 2000), p. 5.
[4] Martin Fowler, Analysis Patterns (Addison Wesley, 1997), p. 1.
[5] Anthony I. Wasserman, "Toward a discipline of software engineering",
IEEE Software 13/6:23-31,
cited in Shari Lawrence Pfleeger,
Software Engineering: Theory and Practice (Prentice Hall, 1998), pp. 29-35.
[6] Irwin Mendelson