Program in Computer Science and Applied Mathematics
The interdisciplinary combined major and
minor program in computer science and applied
mathematics is an integrated program
providing a strong background in the theory
and practice of computer science combined
with those courses in mathematics which are
most likely to be needed for advanced work in
computer science, either in graduate study or
industrial research and development.
The program provides excellent preparation
for the advanced Graduate Record Examination
in computer science and will provide an
attractive background for admission to high
quality graduate programs in computer
science. The mathematics portion of the
program, with the appropriate selection of
one or two electives, can provide a good
mathematical background for work in
operations research which is an important
area of computer application in business, or
for numerical computation in a variety of
areas related to the scientific and
engineering use of computers.
Degree Requirements for the Major in Computer Science and Applied Mathematics
General Program B.S. (combined major and
minor sequence): A minimum of 66 credits as
follows: A Mat 111 or 112 or 118, 113 or 119,
214, 220, 367; A Csi 201N, 210, 310, 311,
333, 401, 402, 403, 404, 409; 15 additional
credits, as advised, from the following list
of courses, including at least 9 credits in
mathematics: any course with an A Mat prefix
numbered 300 or above, any course with an
A Csi prefix numbered 300-450 or 500-550,
A Csi 499, A Phy 353, A Phy 454, A Phi 432.
Honors Program
The honors program is recommended for
students planning graduate study. To be
eligible for admission, the student must
declared one of the three Computer Science
majors and must have completed the following
courses: A Csi 201N, 210, 310, 333; A Mat 112
and 113. The student must have a GPA of at
least 3.5 in the above courses and an overall
GPA of at least 3.25. To complete the honors
program, the student must complete 12 credits
of course work designed to ensure a rigorous
mastery of the discipline, together with an
Honors seminar and an Honors project. Consult
the department for further information.
Combined B.S./M.A. and B.S./M.S. Programs
Two combined bachelor's/master's degree
programs are available with the undergraduate
major in computer science and applied
mathematics. The combined B.S./M.A. program
combines the undergraduate program in
computer science and applied mathematics with
the graduate program in mathematics. The
combined B.S./M.S. program combines the
undergraduate program in computer science and
applied mathematics with the graduate program
in computer science.
Both programs provide an opportunity for
students of recognized academic ability and
educational maturity to fulfill integrated
requirements of undergraduate and master's
degree programs from the beginning of the
junior year. A carefully designed program can
permit a student to earn the B.S. and M.S. or
the B.S. and M.A. degrees within nine or ten
semesters.
The combined programs require a minimum of
140 credits, of which at least 32 must be
graduate credits. In qualifying for the B.S.,
students must meet all University and college
requirements, including the requirements of
the undergraduate major described previously,
the minimum 60-credit liberal arts and
sciences requirement, general education
requirements, and residency requirements. In
qualifying for the M.S. or M.A., students
must meet all University and college
requirements as outlined in the Graduate
Bulletin, including completion of a minimum
of 32 graduate credits, and any other
conditions such as a research seminar,
thesis, comprehensive examination, or other
professional experience and residency
requirements. Up to 12 graduate credits may
be applied simultaneously to both the B.S.
and M.S. or the B.S. and M.A. programs.
Students are considered as undergraduates
until completion of 120 graduation credits
and satisfactory completion of all B.S.
requirements. Upon meeting B.S. requirements,
students are automatically considered as
graduate students.
Students may apply for admission to either
combined degree program at the beginning of
their junior year or after the successful
completion of 56 credits, but no later than
the accumulation of 100 credits. A cumulative
grade point average of 3.20 or higher and
three supportive letters of recommendation
from faculty are required for consideration,
but admission of a student who meets the
minimum requirements is not automatic.
Courses
A Csi 100 Computing and Disability (3)
The relation between people with disabilities
and computers. Lectures, tutorials, and
laboratory will deal with topics such as how
computers may be used by persons with
disabilities, assistive devices, software,
and applications such as word processing,
database inquiries, spreadsheets, and
telecommunications. For students with
disabilities and for professionals who teach
and assist people with disabilities.
A Csi 101N Elements of Computing (3)
General Education: NS
Introduction to the principles and practice
of computer programming through the use of
the general purpose high level programming
language BASIC. Concepts introduced include
algorithms, arrays, files, structured
programming, and top-down design. Course also
includes a brief introduction to computer
technology and computer architecture from
both a historical and modern perspective. May
not be taken for credit by students with
credit for A Csi 201N. Only one of A Csi 101N
and B Msi 215 may be taken for credit.
A Csi 102 Microcomputer Software (3)
Theory and practice of general purpose
microcomputer software systems such as
spreadsheet and relational database packages.
Query languages for database access. Word
processing with emphasis on spelling and
grammar checking. Normally offered spring
semester only.
A Csi 103 Topics in Computer Literacy (3)
Each offering of this course will address one
or more topics that are germane to the use of
computers in every day life. The main
emphasis of this course will be on the use of
available software packages.
A Csi 120N Computational Principles and Issues (3)
General Education: NS
Principles and issues arising in a variety of
computational situations. Discussion of
topics from computation theory, artificial
intelligence, and systems design. From
computation theory, an emphasis on
impediments to computation, such as
undecidability and NP-hardness. From
artificial intelligence, an emphasis on
knowledge representation. From systems, an
emphasis on computer design and on
synchronization problems.
A Csi 198 (formerly A Csi 298) Consulting Service (1-3)
Classroom instruction on the practical
aspects of computing on the campus personal,
network and mainframe computer environment,
including word processing, data
communications, networking and using various
operating systems. Training is followed by
continuing consulting work experience in the
public user rooms. Work schedules are
determined on an individual basis during the
first two weeks of class. Total credits for
A Csi 198, A Csi 490, A Csi 497 and the
former A Csi 298 and A Csi 498 may not exceed
nine. Prerequisite(s): permission of
instructor. S/U graded.
A Csi 201N Introduction to Computer Science (4)
General Education: NS
Computer algorithms and their representation.
The principle of information hiding and its
relation to program block structure. File
structure and access methods. The efficient
use of computational resources. Program
development and style. Normally offered fall
semester only.
A Csi 203 Data Processing Principles (3)
Introduction to systems analysis and
structured programming techniques using COBOL
(Common Business Oriented Language). Basic
COBOL, table handling, sorting, file
structures and maintenance, storage media,
and basic functions of a multi-programming
operating system. May not be taken for credit
by students with credit for A Csi 206 or
A Csi 306. Prerequisite(s): A Csi 101N or
201N or B Msi 215. Normally offered fall
semester only.
A Csi 204 Scientific Computing (3)
Programming in the scientific languages
Fortran 77 and APL. The effect of internal
storage representation on precision and
accuracy. Symbolic computation using Macsyma.
Elementary numerical methods and the
graphical presentation of scientific data.
Software libraries of interest to scientists.
Prerequisite(s): A Csi 101N or A Csi 201N or
B Msi 215, and A Mat 113 or 119. Normally
offered spring semester only.
A Csi 205 C Language Programming for Data Processing Applications (3)
Introduction to structured programming,
abstraction and system analysis techniques
using C. Basic C syntax and semantics,
structures, pointers and strings, header
files, separate compilations and linking, use
of standard libraries, introduction to memory
management, ANSI standards for C programs.
May not be taken for credit by students with
credit in A Csi 333. Prerequisite(s): B Msi
215 or A Csi 101N or 201N.
A Csi 210 Discrete Structures (4)
Proofs by induction; mathematical reasoning,
propositions, predicates and quantifiers;
sets; relations, graphs, and trees;
functions; counting, permutations and
combinations. Prerequisite(s) or corequisite:
A Csi 201N. Normally offered fall semester
only.
A Csi 221 (= A Mat 221) Introduction to Discrete Mathematics (3)
Topics chosen from sets, relations,
induction, binomial theorem, permutations and
combinations, counting, and related topics in
discrete mathematics. Only one of A Mat 221 &
A Csi 221 may be taken for credit.
Prerequisite(s) or corequisite: A Mat 113 or
119.
A Csi 300Z Social Implications of Computing (3)
General Education: WI
The ethical and moral implications of using
computers to affect the lives of individual
and collective members of human society. Data
banks vs. rights to privacy. The computer as
a dispenser of "expert" legal and medical
advice. Software piracy, unauthorized access,
and other computer crimes. Prerequisite(s):
A Csi 201N.
A Csi 310 Data Structures (3)
Commonly used abstract data structures and
their implementation. The use of pointers and
recursive programming. Stacks, queues, lists
and trees, and their application to such
problems as sorting and searching. Analysis
of algorithms for using these structures.
Prerequisite(s): A Csi 201N. Normally offered
spring semester only.
A Csi 311 Principles of Programming Languages (3)
Fundamental concepts and general principles
underlying programming languages and their
use as illustrated by Prolog and Lisp.
Analysis and implementation of run-time
environment including scope rules, binding,
and parameter passing mechanism. Introduction
to interpreters and compilers.
Prerequisite(s): A Csi 210 and 310. Normally
offered spring semester only.
A Csi 333 Programming at the Hardware Software Interface (4)
Instruction set architecture of contemporary
computers; boolean logic, memory, registers,
instructions and interrupts. Assembly
language programming; assembler passes,
symbols, macros, function linkage and
separate compilations. C language
programming; syntax, control, types,
abstractions, pointers and strings. dynamic
memory, standard and user written libraries.
ANSI and C++ standards. Instruction set
simulation. Note: This course may be
substituted for A Csi 202 for all students
who entered before 1994. Prerequisite(s):
A Csi 310. Normally offered fall semester
only.
A Csi 400 Operating Systems (3)
Historical overview; operating system
services; mass storage file organization;
memory management in multiprogrammed systems;
virtual memory; resource allocation;
concurrent processes; deadlock detection and
prevention; security; the design of
contemporary operating systems such as UNIX.
Prerequisite(s): A Csi 333.
A Csi 401 Numerical Methods for Digital Computers (3)
Study of practical methods for the numerical
solution of a variety of problems on a
digital computer. Topics covered will include
roots of equations, numerical interpolation,
numerical integration and differentiation;
the evaluation of mathematical functions,
least squares curve fitting; the solution of
simultaneous linear equations, matrix
inversion and linear programming.
Prerequisite(s): A Mat 220 and A Csi 310.
Normally offered fall semester only.
A Csi 402 Systems Programming (3)
Principles of operating systems and
compilers. Topics covered include storage
management, resource allocation, scheduling,
synchronization, lexical processing, parsing,
syntax-directed translation. Prerequisite(s):
A Csi 333. Completion of A Csi 404 prior to
402 is desirable, but not required. Normally
offered spring semester only.
A Csi 403 Algorithms and Data Structures (3)
Description of common data structures such as
lists, push-down stores, queues, trees, and
graphs. Definition of algorithm efficiency
and efficient algorithms for integer and
polynomial arithmetic, sorting, set
manipulation, shortest paths, pattern
matching, and Fourier transforms.
Prerequisite(s): A Csi 210 and 310. Normally
offered fall semester only.
A Csi 404 Computer Organization (3)
An introduction to the logical organization
of the hardware components of computing
systems. Topics include logic design from a
functional point of view, data representation
and processing, description of major
components such as the central processing
unit and memory, and control and
communication within the components and in
the system. Prerequisite(s): A Csi 333 and
210. Normally offered fall semester only.
A Csi 407 User Interfaces (3)
The C programming language. Event-driven
systems. Aspects of the UNIX operating system
that support simulation of multi-tasking in a
single processor environment. Window-oriented
user interfaces. Pop-up/pull-down menus.
Human factors in software engineering.
Prerequisite(s): A Csi 333. May not be
offered during 1999-2000.
A Csi 409 Automata and Formal Languages (3)
Introduction to the theory of computation.
Models of computation including Turing
machines and push-down automata will be
examined along with their formal language
counterparts such as context-free languages.
Additional topics include unsolvability,
computational complexity, and applications to
computer science. Prerequisite(s): A Csi 210.
Normally offered spring semester only.
A Csi 410 Database Management Systems (3)
Introduction to database management systems
(DBMS) with emphasis on the relational model.
Physical and logical database design,
rollback and recovery techniques, access
methods and query language concepts. The
design and use of microcomputer-based
relational systems and spreadsheets. The
hierarchical and network DBMS models.
Prerequisite(s): A Csi 310. Normally offered
fall semester only.
A Csi 416 Computer Communication Networks (3)
Introduction to computer communication
networks. Equal emphasis on all layers of the
ISO reference model and the TCP/IP protocol
suite. Topics include physical networks,
sliding window protocols, remote procedure
call, routing, naming and addressing,
security, authentication, performance, and
applications. Prerequisite(s): A Csi 402 and
A Mat 367.
A Csi 417 Compiler Construction (3)
Compilation vs. interpretation; lexical
analysis based on finite automata; parsing;
syntax-directed translation; symbol tables;
run-time storage allocation; error detection
and recovery; code generation and
optimization. Prerequisite(s): A Csi 333 and
409.
A Csi 418 Software Engineering (3)
Software engineering principles, the role of
abstraction in programming, abstract data
types, modularization and module interfaces,
specifications, and teamwork. Project work in
contemporary concurrent and object-oriented
languages. Prerequisite(s): A Csi 333.
Normally offered fall semester only.
A Csi 421 Discrete Mathematics with Applications (3)
A deeper coverage of the content of A Csi
210. Proofs by induction, recursive
definitions, and combinatorial analysis.
Introduction to recurrence equations, graph
theory, and abstract algebra. Applications to
proofs of correctness and analysis of
combinatorial and algebraic algorithms.
Prerequisite(s): A Csi 210. Normally offered
fall semester only. May not be offered during
1999-2000.
A Csi 422 (formerly A Csi 302) Introduction to Computer Graphics (3)
Mathematics, data structures, algorithms,
system architecture and programming projects
for implementing two and three dimensional
computer graphics software. Rastorization,
matrices, linear and projective
transformations; clipping, removal of hidden
lines and surfaces. Devices, event driven
user interaction, and an introduction to
window systems and visual programming tools.
Prerequisite(s): A Mat 113 and either A Csi
333 or permission of instructor. A Mat 220
(Linear Algebra) is desirable but not
required.
A Csi 435 Introduction to Artificial Intelligence (3)
An introduction to the broad spectrum of
approaches and techniques of Artificial
Intelligence. Emphasis on how to represent
knowledge in a computer and how to process
that knowledge to produce intelligent
behavior. Topics include expert systems,
heuristic search, natural language processing
and logic-based approaches. Programming
assignments using artificial intelligence
languages. Prerequisite(s): A Csi 311.
A Csi 445 Topics in Computer Science (3)
The contents of this course will vary from
semester to semester. Each offering will
cover an advanced senior-level topic in
Computer Science. Prerequisite(s): A Csi 333
(or A Csi 205 & 310) or permission of
instructor. May be repeated for credit when
content varies./
A Csi 487 Honors Seminar (3)
Each student is required to carry out
independent study under the supervision of a
faculty member and present a departmental
colloquium on the chosen topic. Students may
also be required to complete a theoretical or
an experimental project, write reports or
make short presentations. Only one of A Csi
487 and A Csi 487Z may be taken for credit.
Prerequisite(s): Admission to the honors
program.
A Csi 487Z Honors Seminar (3)
General Education: WI
Each student is required to carry out
independent study under the supervision of a
faculty member and present a departmental
colloquium on the chosen topic. Students may
also be required to complete a theoretical or
an experimental project, write reports or
make short presentations. Only one of A Csi
487 and A Csi 487Z may be taken for credit.
Prerequisite(s): Admission to the honors
program.
A Csi 488Z Honors Project (3-12)
General Education: WI
Students are required to pursue research
supervised by a faculty member and submit
final reports describing their research.
Outcomes of this research may include
software/hardware artifacts, data collected
through experiments, bibliographies or
research papers. Each student is evaluated by
a faculty committee during the second
semester of their senior year. Honors
students must complete at least 6 credits of
this course. Prerequisite(s): Admission to
the honors program.
A Csi 490 Internships in Computer Science (1-3)
Arrangements with external agencies or
companies requiring programming or design
assignments involving computer systems in a
practical environment. Interns are selected
by the department and are required to submit
a significant report upon completion of the
internship. Total credits for A Csi 198,
A Csi 490, and A Csi 497 and the former 298
and 498 may not exceed nine. Internships are
open only to qualified juniors and seniors
who have an overall grade point average of
2.50 or higher. Prerequisite(s): A Csi 203 or
310, and permission of department. S/U
graded. For majors only.
A Csi 497 Independent Study in Computer Science (1-3)
Independent study in computer science under
the guidance of faculty computer users.
Students should expect to spend approximately
three hours per week per credit solving real
computer-related problems and submit a
significant paper or report upon completion.
Total credits for A Csi 198, A Csi 490, and
A Csi 497 and the former 298 and 498 may not
exceed nine. Prerequisite(s): A Csi 203 or
310, and permission of department. S/U
graded.
A Csi 499 Senior Project in Computer Science (3)
Introduction to software engineering.
Students will participate in the design and
production of a large, modular program
typical of those encountered in business and
industry. Prerequisite(s): A Csi 333 or 311,
and permission of instructor.