What Is Computer Science
What Is Computer Science
Computer science is a discipline that spans theory and practice. It requires thinking both
in abstract terms and in concrete terms. The practical side of computing can be seen
everywhere. Nowadays, practically everyone is a computer user, and many people are
even computer programmers. Getting computers to do what you want them to do requires
intensive hands-on experience. But computer science can be seen on a higher level, as a
science of problem solving. Computer scientists must be adept at modeling and analyzing
problems. They must also be able to design solutions and verify that they are correct.
Problem solving requires precision, creativity, and careful reasoning.
Computer science also has strong connections to other disciplines. Many problems in
science, engineering, health care, business, and other areas can be solved effectively with
computers, but finding a solution requires both computer science expertise and
knowledge of the particular application domain. Thus, computer scientists often become
proficient in other subjects.
Finally, computer science has a wide range of specialties. These include computer
architecture, software systems, graphics, artifical intelligence, computational science, and
software engineering. Drawing from a common core of computer science knowledge,
each specialty area focuses on particular challenges.
A central focus is on processes for handling and manipulating information. Thus, the
discipline spans both advancing the fundamental understanding of algorithms and
information processes in general as well as the practical design of efficient reliable
software and hardware to meet given specifications. Computer science is a young
discipline that is evolving rapidly from its beginnings in the 1940's. As such it includes
theoretical studies, experimental methods, and engineering design all in one discipline.
This differs radically from most physical sciences that separate the understanding and
advancement of the science from the applications of the science in fields of engineering
design and implementation. In computer science there is an inherent intermingling of the
theoretical concepts of computability and algorithmic efficiency with the modern
practical advancements in electronics that continue to stimulate advances in the
discipline. It is this close interaction of the theoretical and design aspects of the field that
binds them together into a single discipline.
Because of the rapid evolution it is difficult to provide a complete list of computer
science areas. Yet it is clear that some of the crucial areas are theory, algorithms and data
structures, programming methodology and languages, and computer elements and
architecture. Other areas include software engineering, artificial intelligence, computer
networking and communication, database systems, parallel computation, distributed
computation, computer-human interaction, computer graphics, operating systems, and
numerical and symbolic computation.
A professional computer scientist must have a firm foundation in the crucial areas of the
field and will most likely have an in-depth knowledge in one or more of the other areas of
the discipline, depending upon the person's particular area of practice. Thus, a well
educated computer scientist should be able to apply the fundamental concepts and
techniques of computation, algorithms, and computer design to a specific design problem.
The work includes detailing of specifications, analysis of the problem, and provides a
design that functions as desired, has satisfactory performance, is reliable and
maintainable, and meets desired cost criteria. Clearly, the computer scientist must not
only have sufficient training in the computer science areas to be able to accomplish such
tasks, but must also have a firm understanding in areas of mathematics and science, as
well as a broad education in liberal studies to provide a basis for understanding the
societal implications of the work being performed.
Another way to view any science is to look at the methods used within that science. In
some sense these methods are similar in many (most?) sciences, but they can take on
different characteristics in each discipline. Four important methods used in the study of
computer science are:
A recent article by Peter Denning, CACM, April 2005/Vol. 48, No. 4, pp. 27 - 31, "Is
Computer Science Science?"