Computer
science is a discipline that involves the understanding and
design of computers and computational processes. In its most
general form it is concerned with the understanding of information
transfer and transformation. Particular interest is placed on
making processes efficient and endowing them with some form
of intelligence. The discipline ranges from theoretical studies
of algorithms to practical problems of implementation in terms
of computational hardware and software. A central focus is on
processes for handling and manipulating information.
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, 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. Definition
courtesy of Computing Sciences Accreditation Board, Inc.