As the 21st century fast approaches, computing professionals still do not have a clear understanding of the nature of their profession. This is unfortunate, especially since the discipline has accumulated enough science over the years to make it stand on its own.
Several computing pioneers and professional organizations attempted to define the discipline of computing [14]. All of these attempts concluded that computer science is neither a science nor is it engineering in a traditional sense. Computer science defined a new relation between theory and experiments. In computing, unlike other disciplines, we cannot separate theory and engineering due to the nature of the discipline; such separation would be disastrous [3]. Recent advances in genetic algorithms and neural networks are but a few examples of what could be produced when we couple theory with practice. The science and engineering aspects in computer science are much closer than in many other disciplines and that is what makes computer science unique. Still computer science cannot be regarded as a classical practice of engineering; it is a new form of engineering. To quote Hartmanis [4]: "I am deeply convinced that we should not try to draw a sharp line between computer science and engineering and that any attempt to separate them is counterproductive."
Today, most of the confusion about computer science stems from the name of the discipline. The word "science" refers to a body of knowledge; we use it collectively to refer to the fields of engineering as "engineering sciences." But the title "computer engineer" should not automatically associate with the construction of hardware. Computer design involves instruction-set architecture, organization, and detailed logic design and packaging [5].
Computing problems demand the invention of new engineering methodologies for the exploration of information and intellectual processes. In some cases, the same methodologies are used to develop both hardware and software (such as object-oriented techniques). Computing professionals are concerned with the design and analysis of hardware and software to perform new functions or to perform old functions in new ways [7]. It's my view that the restriction of engineering to computer design and the exclusion of all other activities is harmful; I cannot imagine organizations or individuals investing in an operating system or a compiler that is not well engineered.
There is a strong need for computing professionals who can engineer systems based on solid, scientifically proven methodologies with deep understanding of computing theory [9]. This need is more evident in the field of software engineering as it is much less mature than hardware engineering, more complex, and deals with a strategic product. Recent calls to separate software engineering from computer science are outrageous [2]; we should have one computing discipline with several subspecialties, especially since software engineering methodologies are utilized in all layers of the virtual computer. We should look at computing programs from a new perspective, one through which we acknowledge the importance of the systems approach to hardware and software systems. That view should be clearly explained and advocated to our students. We should have them appreciate the three processes: theory, abstraction, and design [8]. The move last year by ABET and CSAB to unite was a very important event. Consider the statement by Eleanor Baum, ABET president, following the joint signing of the agreement: "This marks a very important step in unifying the computer science and engineering communities."
Over the years, top educational institutes worldwide have been offering solid computing programs tightly coupled to engineering. This is quite evident in the U.S. as the top computer science departments are hosted in engineering schools (for example, MIT and UC Berkeley). The problem is that these programs do not have the same title. In the U.S., you will find names such as "computer science," "computer engineering," and "computer science and engineering." In Europe, it's called "informatics." These programs used to seek accreditation by ABET and CSAB separately. It used to be that programs with the title "computer science" would seek CSAB accreditation, and those with the title "computer engineering" would seek ABET accreditation (even though ABET does recognize computer science as a legitimate engineering field).
The proper establishment of the computing profession requires the coordination of our efforts to tackle the following issues appropriately:
Let us not rush into separating fields of computing, let us work on the proper establishment of the field of computing for the generations to come. Let us stop that divorce between computing and software engineeringthere is too much at stake.
1. Abrahams, P. President's letter. Commun. ACM 30, 6 (Jun. 1987), 472473.
2. Bagert. D.J. Taking the lead in licensing software engineers. Commun. ACM 42, 4 (Apr. 1999), 2729.
3. Denning, P.J. Computer science and software engineering: Filing for divorce? Commun. ACM 40, 8 (Aug. 1998), 128.
4. Hartmanis, J. On computational complexity and the nature of computer science. Commun. ACM 37, 10 (Oct. 1994), 198202.
5. Hennessy, J.L. and Patterson, D.A. Computer Architecture: A Quantitative Approach, Second Ed., Morgan Kaufmann, where, 1996.
6. Lewis, T.G. Where is computing headed? IEEE Computer (Aug. 1994), 5963.
7. Simons, B., et al. An ACM response: The scope and directions of computer science. Commun. ACM 34, 10 (Oct. 1991), 121131.
8. Tucker, A.B. et al. Computing Curricula 1991, report of the ACM/IEEE-CS Joint Curriculum Task Force, IEEE Press, 1990.
9. West, D. Hermeneutic computer science. Commun. ACM 40, 4 (Apr. 1997), 115116.
©1999 ACM 0002-0782/99/1200 $5.00
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.
The Digital Library is published by the Association for Computing Machinery. Copyright © 1999 ACM, Inc.
No entries found