COMPUTER SCIENCE (CS)




CS 1100. Discrete Mathematics/(3).F;S.


A study of discrete mathematics with special
emphasis on topics applicable to computer science.
Concepts covered in the course include number
systems, models, combinatorics, graphs, recursion,
networks, and analysis of algorithms.
Prerequisite: MAT 1020 or MAT 1025 or equivalent
with a grade of C- or higher.




CS 1400. FORTRAN Programming/(3).F;S.


A first course in FORTRAN programming intended for
any student having a need for computer assistance.
The course uses flowcharts and FORTRAN IV language
for a set of programs introducing commonly
encountered applications. (COMPUTER)




CS 1410. Introduction to Computer
Applications/(2).F;S.


THIS COURSE DOES NOT FULFILL REQUIREMENTS FOR
COMPUTER SCIENCE MAJORS. Students in the course
use both microcomputers and the University's
central computing facility. Topics include e-mail,
editing, wordprocessing, spreadsheets, an overview
of computer hardware, and an introduction to
operating system use. A variety of packages and
utilities will be used. Prerequisite: Must pass
mathematics placement test or MAT 0010. (COMPUTER)




CS 1425. Overview of Computer Science/(3).F;S.


This course will provide an overview of the entire
computing milieu. Topics include algorithms,
digital circuits, assembly language, high-level
programming languages, system software, data
organization, applications of computing, and
social issues. Corequisite: MAT 1020, MAT 1025 or
equivalent. (COMPUTER)




CS 1440. Computer Science I/(4).F;S.


This course will provide an introduction to
problem solving and programming using a modern
computer language. It is the first required course
for computer majors. Topics include data types,
expressions, conditional statements, loops,
classes and instantiation, file I/O, arrays and
strings. Lecture three hours, laboratory two
hours. Prerequisite: MAT 1020 or MAT 1025 or
equivalent with a grade of C- or higher. Students
with doubts about their mathematics and computing
background should consider taking CS 1425 first.
(COMPUTER)




CS 1530-1531. Selected Topics/(1-4).On Demand.




CS 2440. Computer Science II/(4).F;S.


This course follows CS 1440. This course will
introduce students to some advanced programming
topics including classes, templates, pointers,
dynamic memory allocation and inheritance. Various
software engineering topics related to writing
larger programs (up to 1000 lines of code), like
style, design, and testing, will be emphasized in
programming assignments. The course will place
emphasis on the implementation of various
algorithms and data structures. Also, the course
will discuss the social implications of computing.
Lecture three hours, laboratory two hours.
Prerequisite: CS 1440 with a grade of C or better.
Corequisite: CS 1100. (COMPUTER)




CS 2450. Assembly Language and Machine
Operation/(3).F;S.


This course includes data representation in the
computer, computer logic, and a brief look at
circuits, hexadecimal and binary numerals and
arithmetic with emphasis on the study and practice
of assembly language programming. Prerequisite: CS
2440. (COMPUTER)




CS 2490. Introduction to Theoretical Computer
Science/(3).F;S.


Introduction to such topics as Boolean algebra,
digital logic, coding theory, finite-state
machines, Turing machines, and formal languages.
Prerequisite: CS 2440.




CS 3430. Introduction to Database Systems/(3).F.


A study of current database systems. Topics
include data modeling, relational databases,
queries, normal forms, and database system
development. Prerequisite: CS 2490. (COMPUTER)




CS 3440. Graphical User Interfaces/(3).F.Odd-
numbered years.


A study of the construction and manipulation of
graphical user interfaces using object-oriented
techniques. Topics include class libraries,
graphics, graphical controls, event handling,
exception handling, multithreading, multimedia and
networking. A major individual project is
required. Corequisite: CS 3460. (COMPUTER)




CS 3460. Data Structures/(3).F;S.


The use and implementation of various information
structures are studied, including arrays, records,
stacks, queues, linked lists, and trees.
Prerequisite: CS 2440. (COMPUTER)




CS 3463. Simulation/(3).F.Even-numbered years.


Digital simulation of discrete systems. Simulation
design. Statistical analysis and interpretation of
simulation output. Simulation of computer and
physical systems. Simulation languages.
Prerequisites: CS 3460 and either STT 2810 or STT
4250. (COMPUTER)




CS 3470. Current Computer Use/(1-6).On Demand.


Work experience which contributes to the student's
background in the computing field, such as working
as a programmer for a faculty member engaged in
research or working in a computer installation for
a period of time. The responsibility for arranging
such work rests with the student with final
approval given by the department chairperson.
Graded on an S/U basis.




CS 3481. Computer Systems I/(3).F;S.


The hardware and software components of computer
systems are studied. Included are processors,
memories, input/output devices, interrupts,
microprogramming, suitable description languages,
and the elements and structures of multiprogrammed
operating systems. Significant projects are
undertaken by each student. Lecture two hours,
laboratory three hours. Prerequisite: CS 2450 and
2490. Corequisite: CS 3460. (WRITING; COMPUTER)




CS 3482. Computer Systems II/(3).F;S.


Continuation of CS 3481. Lecture two hours,
laboratory three hours. Prerequisites: CS 3481 and
3460. Corequisite: CS 3490. (COMPUTER)




CS 3490. Programming Languages/(3).F;S.


Comparison of user and implementation aspects of
several programming languages, e.g., ALGOL 60,
SNOBOL, list processing languages and extensible
languages. The concept of metalanguage is
included. Prerequisite: CS 2490 and 3460.
(COMPUTER)




CS 3500. Independent Study in Computer
Science/(1-3).On Demand.


This course helps the student advance, through
study under the direction of a faculty member, in
the area(s) of special interest in computer
science. It may be taken only after a minor in
computer science is completed.




CS 3520. Instructional Assistance/(1).F;S.


A supervised experience in the instructional
process on the university level through direct
participation in a classroom situation. Grading
will be on a satisfactory/unsatisfactory basis
only. Prerequisite: Junior or senior standing. May
be repeated for a total credit of three semester
hours.




CS 3530-3549. Selected Topics/(1-4).On Demand.




CS 4100. Senior Seminar in Computer
Science/(1).F;S.


An examination of various current topics in
computer science. Research skills and oral and
written presentation of research results are
emphasized. Prerequisite: Senior standing in
computer science or permission of instructor.
(WRITING; SPEAKING)




CS 4440. Artificial Intelligence/(3).S.


Includes artificial intelligence goals; problem
solving; representations, manipulations, and
storage of knowledge; knowledge representation in
contrast to natural language and mathematical
notation; heuristic programming; significant
techniques such as expert systems. Prerequisite:
CS 3460. (COMPUTER)




CS 4450. Data Communications and
Networking/(3).F.Odd-numbered years. 


Introduction to data transmission concepts and
techniques; channel characteristics; encoding
methods; line control and error
detection/correction protocols; circuit, message,
and packet switching; layered network
architectures and protocols; addressing, routing
and flow control strategies; access methods;
performance criteria and tradeoffs. Prerequisite:
CS 3481. (COMPUTER)




CS 4465. Computer Graphics/(3).S.Even-numbered
years. 


Fundamental concepts of computer graphics. Topics
include hardware and software systems, scan
conversion of graphics primitives, color and color
perception, modeling of curves and surfaces,
clipping, antialiasing, model-view and projection
transformations, light and shading, and hidden
surface removal. Prerequisites: CS 3460 and MAT
2240. (COMPUTER)




CS 4520. Operating Systems/(4).S.


Study in depth of the various parts of operating
systems including schedulers, memory management,
interrupt handling and time sharing. Lecture three
hours, laboratory three hours. Prerequisite: CS
3482, STT 2810 or STT 4250. (COMPUTER)
[Dual-listed with CS 5520.]




CS 4525. Database
Implementation/(3).S.Odd-numbered years.


An advanced database course covering topics
related to database implementation. Topics include
disk organization, file structures, file indexing
structures such as B-trees, query operations and
optimization, transaction processing, concurrency
control, recovery techniques, and security.
Prerequisites: CS 3430 and CS 3460. (COMPUTER)
[Dual-listed with CS 5525.]




CS 4550. Theoretical Computer Science/(3).S.Even-
numbered years. 


A rigorous treatment of theoretical aspects of
computer science, including formal definition of
the notion of an algorithm, abstract machines, and
formal grammars. Prerequisite: CS 2490.
[Dual-listed with CS 5550.]




CS 4570. Human-Computer
Interfaces/(3).S.Even-numbered years.


This course covers topics from psychology and
computer science related to the design and
evaluation of human-computer interfaces (HCI).
Topics include: understanding the user audience,
HCI architectures, design issues related to
various interface components, measuring HCI
usability, incorporating HCI design into system
development, and social issues. Students are
required to complete a group project in HCI
presented in written form and orally to the class.
Prerequisite: permission of the instructor.
(CROSS-DISCIPLINARY) [Dual-listed with CS 5569.]




CS 4620. Real-time Systems/(4).S.Odd-numbered
years.
          
Real-time hardware and software. Data acquisition
and data reduction. Real-time algorithms and data
structures. Advanced programming topics including
buffering, input-output, and interrupts. Lecture
three hours, laboratory three hours. Prerequisite:
CS 3482. (COMPUTER) [Dual-listed with CS 5620.]




CS 4630. Programming Language Translation/(4).F.


Techniques for the translation of programming
languages into machine or assembly language. Each
student will participate in the writing of a
compiler. Lecture three hours, laboratory three
hours. Prerequisites: CS 3482 and 3490. (COMPUTER)
[Dual-listed with CS 5630.]




CS 4667. Software Engineering/(3).F;S.


Methodical development of large software systems.
Topics include: models, project life cycle,
requirements and specification, structure charts
and design criteria, incremental implementation,
software metrics. Use of module and source code
management, symbolic debugging, and project
planning software. Students will participate in
the realization of both group and individual
software systems. Prerequisite: CS 3481.
(COMPUTER) [Dual-listed with CS 5666.]




CS 4730. Object-Oriented Design and
Programming/(3).S.Even-numbered years.


A study of the factors involved in creating
object-oriented programs, including object
structure, behavior and implementation. Comparison
of contemporary object-oriented programming
languages. Prerequisite: CS 3460. [Dual-listed
with CS 5730.]




CS 4990. Numerical Linear Algebra/(3).On Demand.


Methods for solving systems of linear equations
with an emphasis on large, sparse systems. LU
factorization including storage schemes, graph
theory, ordering algorithms, and block
factorization. Iterative methods including Jacobi,
SOR, and conjugage gradient. Eigenvalue methods
including power method, QR factorization, and
Lanczos methods. Parallel matrix computations.
Prerequisite: MAT 4310. (Same as MAT 4990/5390.)
[Dual-listed with CS 5990.]