Campus Directory | Calendar | Tour
Wittenberg University
 
WittLink Portal WittMail WebCT  
Having Light We Pass It On To Others
 

Computer Science as a Discipline

redline

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:
Imperative (e.g., FORTRAN, Pascal, C, Ada), Functional (e.g., LISP, FP),
Logic Oriented (e.g., Prolog), and Object Oriented (e.g., Smalltalk, C++).
Many now consider Parallel Processing (using more than one processor) a new paradigm.

 

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.

 


Copyright 2005 Wittenberg University Post Office Box 720 Springfield, Ohio 45501 800-677-7558