|
Computer Science
/ Information Systems
Professor
Falabella, chair
Associate Professor Seaman
Computer
Science Concentration
Computer science is a
field that has evolved rapidly during the last 50 years, developing
the principles and theoretical underpinnings of a mature science.
With a heritage dating back to the 17th century mathematicians and
philosophers Pascal and Leibnitz, computer science has roots in
such disciplines as mathematics, logic, and linguistics.
The computer science curriculum is modeled on
recommendations of the Association for Computing Machinery. The
concentration prepares students for apprentice level positions in
system software design, development, implementation, and maintenance,
and for graduate study that develops professional level knowledge
and skills. The intention is to educate students in principles with
a long, useful life rather than to provide vocational training that
may be obsolete in less than a decade.
Albrights academic computing facilities
include ULTRA 10 file servers and ULTRA 5 Workstations for student
use. These computers may be accessed through the Computer Science
lab located in the Center for Computing and Mathematics. In addition,
modem access to the servers is provided for students living both
in the dorms and off-campus. Available on the system for student
use are many language processors, such as C, C++, JAVA, and LISP.
In addition to the main ULTRA 10 server facilities, many microcomputers
are licensed with C++, JAVA, and LISP software. These units are
available not only from the Center for Computing and Mathematics
but also from other labs located throughout the campus. More than
150 microcomputers are in use on campus, supporting student word
processing, statistics, data base management, instrumentation monitoring,
and many other diverse functions.
top
of page
Computer
Science Concentration
Requirements
A student concentrating in computer science is
required to complete seven courses in computer science plus two
approved elective courses. The seven required courses are CSC 141,
CSC 142, CSC 213, CSC 305, CSC 306, and two 400-level courses. The
two elective courses may be chosen from the following group: CSC
303, CSC 308, CSC 313, CSC 372, and CSC 391. In addition, four related
mathematics courses are required. These are MAT 103, MAT 104, MAT
108, and MAT 307. Any prerequisites for MAT 307 are waived for computer
science majors. MAT 107 should be taken as a general studies quantitative
reasoning course.
A student with a combined area of concentration
in computer science must complete six required courses plus one
approved elective course. The six required courses are CSC 141,
142, 213, 305, 306, and one 400-level course. The one elective course
may be chosen from the elective courses listed above. The related
mathematics courses are
recommended but are not required.
top
of page
Courses
| CSC
119 |
Introduction to Programming
Elements of programming in C, C++, JAVA, or some other high-level
language; practical experience solving problems; coding and
executing programs. Does not fulfill the computer science
concentration requirements.
Prerequisite: permission required for non-computer
science majors.
|
| CSC
141 |
Foundations
of Computer Science I
Introduction to problem-solving methods and algorithm development.
Objective is to teach how to design, code, debug, and document
programs using techniques of good programming style. Three hours
lecture, three hours laboratory per week. |
| CSC
142 |
Foundations
of Computer Science II
The objectives of this course are to continue the development
of discipline in program design, style and expression, and debugging
and testing; to introduce algorithmic analysis; and to introduce
basic aspects of string processing, recursion, and simple data
structures. Three hours lecture, three hours laboratory per
week.
Prerequisite: Successful completion of CSC 141 or permission
of the department. |
| CSC
213 |
Assembly
Language and Computer Organization
The objectives of the course are to provide basic concepts
of computer systems; to introduce computer architecture; to
teach an assembly language; and to introduce the organization
and structuring of the major hardware components of computers.
Three hours lecture, three hours laboratory per week.
Prerequisite: CSC 141. |
| CSC
303 |
Software
Engineering (W)
Axiomatic bases of program and system design. Laboratory experience
designing systems software. Introduction to state-of-the-art
software for designing structured systems. Three hours lecture,
three hours laboratory per week.
Prerequisite: CSC 305 or permission of the department. |
| CSC
305 |
Algorithms
Analysis of data structures and algorithms for their manipulation.
Comparative efficiency of searching and sorting algorithms.
An objective of the course is to apply analysis and design techniques
to non-numeric algorithms which act on data structures.
Prerequisite: CSC 142. |
| CSC
306 |
Operating
Systems
Structure and implementation of multiprogrammed and time shared
computer systems. Sequential, interacting, and sharing processes.
Memory management, synchronization, protection, virtual memory,
monitors, kernels, and networks of operating systems modules.
Prerequisites: CSC 213 and CSC 305. |
| CSC
308 |
Programming
Languages
The objectives of this course are to develop an understanding
of the organization of programming languages, especially the
run-time behavior of programs, and to introduce the formal study
of programming language specification and analysis.
Prerequisite: CSC 142. |
| CSC
313 |
Data
Base Management
Theory, design, implementation, and use of database management
systems. Hierarchical, network, and relational models with a
description of the logical and data structure of the database
system.
Prerequisite: CSC 305. |
| CSC
372 |
Graphics
Development of computer graphics concepts, including point
plotting techniques, transformations, hidden edges, and surfaces.
Both two-dimensional and three-dimensional applications will
be presented. Students will be expected to develop programs
in a structure language and to use the OpenGL API.
Prerequisites: CSC 142 and MAT 307 or permission of the
department. |
| CSC
382 |
Computer
Science Internship
Application of computer science theory in a business, institution,
or government agency under the supervision of an on-site staff
member and a faculty sponsor. Reports and computer science projects
are required. This course does not fulfill CSC concentration
requirements. Students must obtain sponsorship and apply to
the computer science faculty no later than the first day of
the last month of the semester preceding the expected internship.
Quality/Nonquality only.
Prerequisite: Permission of computer science faculty. |
| CSC
391 |
Advanced
Topics in Computer Science
A different topic is presented each semester. Currently these
topics include object-oriented methodologies, expert systems,
artificial intelligence, advanced graphics concepts, and algorithm
analysis. It is designed to provide the serious student with
a challenging course in a topic that might not usually be developed
at the elementary or intermediate levels. The instructor will
provide a syllabus discussing the topics to be covered in the
semester prior to the actual offering of the course.
Prerequisite: CSC 305 and permission of the department.
|
| CSC
491 |
Seminar
Assigned readings, seminars, projects, and lectures in
areas of special interest. These areas include automata theory,
computability, formal languages, compiler writing, image processing,
and advanced UNIX concepts. Material in these courses should
be current and topical. The seminars present a strong challenge
to the computer science student. May be repeated with new topic.
Prerequisite: three 300 level computer science courses.
|
top of
page
|