Computer Science as a Discipline

by James L. Noyes, Professor
of Computer Science |
Computing now pervades
all areas of our society. At least some understanding of its fundamentals
and uses is necessary to every liberal arts and sciences undergraduate.
Because of the need for even more understanding of the principles
of computing, the computer science major was born. |
Computer Science
(CS) is the systematic study of the computer, algorithms,
and data structures. CS is not just programming, although that
is the way most people begin in this area. Specifically, CS involves:
(a) formal properties , (b) implementation of algorithms and data
structures through various computer languages and architectures,
and (c) applications in solving important problems in a variety
of disciplines. CS is a coherent body of scientific principles
and practices that relate to the design and use of the computer.
The computer itself may be alternately thought of as an experimental
scientific device or as the most versatile tool that has ever
existed. |
Computer Programming:
Strictly speaking, this deals with writing instructions
in a specified programming language. It is normally given in two
semesters of an undergraduate curriculum and it also consists
of introducing the main aspects of CS within the context of learning
this programming language (at Wittenberg these courses are COMP
150 and COMP 250 ). CS has changed
significantly in the last four decades, expanding into
several sub-fields. Many of these sub-fields are large enough
to be considered disciplines themselves. Each involves elements
of theory (typically based on mathematics), abstraction (based
on the scientific modeling), and design (based on engineering
principles). The following areas of CS represent a common taxonomy
of these sub-fields for CS specialization. |
Simulation,
Optimization and Modeling: These deal with computer
models of various aspects of the real-world in order to study,
improve or optimize some characteristic of the system under study.
Examples include banks, automobiles, aircraft, the human heart,
and the environment. (At Wittenberg there is a new course entitled
Computational Models and Methods , currently numbered
as COMP 260 , that is designed specifically for
the science student, which investigates computer models in Biology
, Chemistry , Geology ,
Physics , and Psychology . There
is also a course entitled Optimization Techniques , COMP
380 , that investigates methods of maximizing and minimizing
functions.) |
Computer Architectures
and Networks: Architectures involve the design of different
types of computers (e.g., RISC machines, parallel processors,
and special-purpose devices) in order to improve speed, storage,
and reliability. Networks involve various methods of connecting
their data pathways so that information can be efficiently exchanged
(at Wittenberg this course is COMP 255 ). |
Programming
Languages: This area involves the study of different
types of programming styles, their languages, and applications
(at Wittenberg this course is COMP 265 ). These
languages are normally grouped into four paradigms: |
Sequential and
Parallel Algorithms: This area involves ways to efficiently
organize data (arrays, records, lists, trees, and graphs), develop,
and analyze methods for effectively processing this data within
a sequential or parallel processing paradigm (at Wittenberg this
course is COMP 275 ). |
Theory of Computation:
This area deals with theoretical models of computing,
including Finite State Machines, Turing Machines, and Complexity,
as well as issues connected with languages and their grammars
(at Wittenberg this course is COMP 285 ). |
Numeric and
Symbolic Computation: Numerical computation (such as
in Numerical Analysis , COMP 320 ) involves
processing numerical quantities and approximations accurately,
precisely, and efficiently. Symbolic processing involves processing
words, letters, and other characters correctly and efficiently.
Sometimes both types of computation are combined (e.g., Mathematica
® is a mathematically oriented programming language that
does this and includes graphical visualization as well). |
Computer Hardware:
This area is related to Computer Engineering
and involves the design and use of digital electronic circuits
(small, medium, large, and very large scale integration) that
perform various essential activities (at Wittenberg this course
is COMP 331 ). |
Artificial Intelligence
and Robotics: AI deals with ways to make the computer
perform actions usually only ascribed to humans, such as hearing,
seeing, talking, reasoning, answering questions, solving problems,
and developing intelligent agents (at Wittenberg this course is
COMP 350 ). Robotics is the embodiment of some
of these AI actions within a computerized device that is capable
of movement and locomotion. |
Operating Systems:
This area involves the software system that operates
the computer (process management, I/O devices, memory management,
etc.) as well as the associated utilities that make the computer
operate effectively (at Wittenberg this course is COMP
351 ). |
Computer Graphics
and Animation: This area deals with the static or dynamic
display of gray-level and color graphics related to one-, two-
and three-dimensional objects (at Wittenberg this course is COMP
370 ). Examples include maps, engineering drawings, molecular
arrangements, human brain structure, everyday scenes, naturally
moving objects, and people. |
Software Engineering:
This area applies principles of producing efficient,
effective, reliable, and well-documented software in a timely
manner (at Wittenberg this is done in the CS Seminar/Colloquium
course is COMP 460 ). |
Databases and
Information Retrieval: This area involves efficient
ways to organize, store, find and retrieve information through
the use of a computer. This includes data mining and archival.
|
Human-Computer
Interaction: This area addresses ways to make interaction
with the computer much easier and more natural, including high-resolution
video displays, special keyboards, and printers. It may also involve
special input/output devices such as touch screens, microphones,
speakers, goggles, data gloves, and suits (e.g., virtual reality).
|
The mathematical tools
necessary for the study of computer science consist of four courses
in Discrete Mathematics ( MATH 171 ),
Calculus I ( MATH 201 ), Calculus
II ( MATH 202 ), and Applied Matrix
Algebra ( MATH 205 ). |
Computer science
is a science and therefore demands a scientific approach
as well as an adequate training in mathematics. An undergraduate
CS major is designed to equip the student with the factual, operational,
and experimental knowledge (e.g., using computer laboratories)
necessary to begin an entry-level computing position or continue
to graduate school in CS. This concentrates upon fundamental topics,
but usually includes some courses that treat these sub-fields
in more detail. A graduate CS education continues this process
with the student getting deeper into the foundations of CS as
well as specializing in one or two of these sub-fields. |
Students in other disciplines
usually find it desirable to take one or two CS courses (usually
programming-oriented), in order to enable them to take advantage
of the computer technology as it applies to their chosen area
of study. Those wishing an additional background so that they
may be able to more fully employ the computer in their discipline
may wish to undertake a CS minor . |
If only an introduction
to the essentials of computing with some experience programming
and using so-called application packages (e.g., Internet Browser,
Spreadsheet, Database) then the Wittenberg non-majors course,
Computing in the Arts and Sciences , COMP 121
, is the most appropriate. |
Note: The titles of
the above CS disciplines are not always exactly the names used
in Wittenberg course titles. |

