Computer Science
A $42 per semeter fee for computer facilities will be assessed for one or more CS, STAT and MATH 310, 460 and 660 courses. This fee is in addition to any lab/materials fees.
CS 101 3 Credits
Computers and Society
Computer literacy for everyone. Overview of computing machines
and automatic data processing. Interaction between social institutions
and automated decision making. Introduction to business applications
software and electronic mail. Some programming for understanding, not
for skill development. Also available via Independent Learning. (Prerequisite:
Two years of high school mathematics, including at least one year of
algebra.) (3 + 0) Offered Fall, Spring
CS 102 3 Credits
Introduction to Computer Science
Introduction to computer science including a discussion of binary
numbers, data representation, hardware, software, programming layers,
operating systems, applications and networks. This web-based course
is offered though the Center for Distance Education. (Prerequisite:
Two years of high school mathematics, including at least one year of
algebra.) (3 + 0) Offered Fall, Spring
CS 103 3 Credits
Introduction to Computer Programming
Programming for non-majors and for those computer science students
without the background for CS 201. Concepts of object-oriented programming
and algorithm design within the syntax of the JAVA programming language.
(Prerequisite: MATH 107X or 131X or 161X.) (3 + 0) Offered
Fall, Spring
CS 201 3 Credits
CS 202 3 Credits
Computer Science I and II
The discipline of computer science including problem solving, algorithm
development, structured programming, top-down design, good programming
style, object oriented programming and elementary data structures.
Concepts implemented with extensive programming experience in a structured
language and with a group programming project. (Prerequisites: For
CS 201: one year high school level programming or CS 103 and mathematics
placement at the 200-level. For CS 202: CS 201.) (3 + 0)
Both Offered Fall and Spring
CS 205 3 Credits
Intermediate Programming
A second high-level programming (such as C, Fortran, Java or Perl)
for students with some experience in other programming languages such
as Basic, Pascal or Fortran. (Prerequisites: One year high school programming,
CS 103, 201, or ES 201. Next offered: 2004-05.) (3 + 0) Offered
Alternate Spring
CS 221 3 Credits
Introduction to LINUX
Introduction to the LINUX operating system, including system features,
scripting, shell instructions, controlling user processes, maintaining
and administering a LINUX system. (3 + 0) Offered Alternate
Fall
CS 290 1-3 Credits
Student Internship
Computer science project under the joint direction of a faculty member and
participating industry or governmental agency. (Prerequisite: Acceptance in
an approved internship program.)
CS 301 3 Credits
Assembly Language Programming
Organization of computer registers, I/O and control. Digital representation
of data. Symbolic coding, instructions, addressing modes, program segmentation,
linkage, macros and subroutines. (Prerequisite: CS 201.) (3 + 0)
Offered Fall
CS 302 3 Credits
Systems Security and Administration
Advanced systems programming including privileged instructions, system services,
authentication technologies, host-based and network-based security issues.
Applications to asynchronous I/O, process control and communication, device
drivers and file management. (Prerequisite: CS 301.) (3 + 0) Offered
Alternate Spring
CS 311 3 Credits
Data Structures and Algorithms
Data structures and the algorithms for their manipulation. Object-oriented
programming, arrays, tables, stacks, queues, trees, linked lists, sorting,
searching and hashing. (Prerequisite: CS 202.) (3 + 0) Offered
Fall, Spring
CS 321 3 Credits
Operating Systems
Functions of files and operating systems. Review of required architectural
features. The PROCESS concept. Storage management, access methods and control,
interrupt processing, scheduling algorithms, file organization and management,
and resource accounting. (Prerequisite: CS 301.) (3 + 0) Offered
Spring
CS 331 3 Credits
Programming Languages
Syntax and semantics of widely differing programming languages.
Syntax specification, block structure, binding, data structures, operators
and control structures. Comparison of several languages such as ALGOL,
LISP, SNOBOL and APL. (Prerequisite: CS 311.) (3 + 0) Offered
Spring
CS 381 3 Credits
Computer Graphics
Creation of 3-D computer-generated images using object-oriented
programming. Graphics data structures, visual interfaces, 3-D geometric
transformations, hidden surface techniques, color theory, lighting
and shading algorithms, curve and surface representations, visual modeling
of physical phenomena. (Prerequisites: CS 202 and MATH 314) (3 + 0)
Offered Fall
CS 402W,O 3 Credits
Senior Project and Professional Practice
Students work on group projects in a real computer industry environment
and produce appropriate documentation and reports. Nature, ethics and
legal considerations of the computer science profession are discussed
with an emphasis on ethics. Additional topics include project management,
design methodologies, technical presentation, human-machine interface
and programming team interactions. (Prerequisites: CS 471; COMM 131X
or 141X; ENGL 111X.) (3 + 0) Offered Spring
CS 405 3 Credits
Introduction to Artificial Intelligence
Examine diverse branches of Al placing Al in larger context of
computer science and software engineering. Knowledge representation
formalism and search technology. Programming methodologies; procedural
systems such as expert systems and blackboard systems and non-procedural
systems such as neural networks. Software engineering aspects of problem
selection, knowledge acquisition, verification and validation. Individual
projects. (Prerequisite: CS 311 or permission of instructor. Next offered:
2005-06.) (3 + 0) Offered Alternate Spring
CS 411 3 Credits
Analysis of Algorithms
Analysis of classic algorithms, their implementation and efficiency.
Topics from combinatorics (sets, graphs), algebra (integer arithmetic,
primes, polynomial arithmetic, GCD, Diophantine equations, encryption),
systems (parsing searching, sorting) and theory (recursion, Turing
machines). The complexity classes P, NP and NP complete. (Prerequisites:
MATH 307, CS 311.) (3 + 0) Offered Fall
CS 421W 3 Credits
Distributed Operating Systems
Detail level study of distributed operating system algorithms,
functions and associated implementation. Distributed operating system
tuning methods and security. Role of distributed operating systems
in net-centric computing. Programming, documentation and evaluation
of distributed operating system segments as projects. (Prerequisites:
CS 321; ENGL 111X; ENGL 211X or ENGL 213X or permission of the instructor.
Next offered: 2004-05.) (3 + 0) Offered Alternate Fall
CS 425 3 Credits
Database Systems
Data independence, modeling, relationships and organization. Hierarchical,
network and relational data models; canonical schema. Data description
languages, SQL, query facilities, functional dependencies, normalization,
data integrity and reliability. Review of current database software
packages. (Prerequisites: CS 311, 321. Next offered: 2004-05.) (3 + 0)
Offered Alternate Spring
CS 431W 3 Credits
Programming Language Implementation
Design and implementation of major phases of high level language
translators including scanning, parsing, translation, code generation
and optimization. Students develop a compiler for a language in a group
project which emphasizes good software engineering practices in structured
design, testing and documentation. (Prerequisites: CS 331; ENGL 111X;
ENGL 211X or ENGL 213X or permission of instructor.) (3 + 0)
Offered As Demand Warrants
CS 441 3 Credits
System Architecture
Computer design fundamentals, performance and cost, pipelining,
instruction-level parallelism, memory hierarchy design, storage systems
and vector processing. (Prerequisites: CS 321 and EE 341. (3 + 0)
Offered Fall
CS 442 3 Credits
Computer Communication and Networks
Study of computer networks using the ISO/OSI layered model as
a framework. Design issues and trade-offs, protocols and selected standards.
Emphasis on ISO/OSI Layers 1–4 (Physical, Data Link, Network
and Transport Layers), plus medium access sublayers (LAN’s, etc.).
(Prerequisite: CS 321. Next offered: 2004-05.) (3 + 0) Offered
Alternate Fall
CS 451 3 Credits
Automata and Formal Languages
Finite automata, regular languages, phrase structured grammars,
context free language, push down automata, deterministic context free
languages, recursive and recursively enumerable languages, Turing machines,
decision problems, and undecidability. (Prerequisites: MATH 307, CS
201.) (3 + 0) Offered Alternate Spring
CS 471W 3 Credits
Software Engineering
(Cross-listed with SWE 471W)
Introduction to basic software engineering principles, techniques, methods
and standards as applied to the engineering of complex software systems. Topics
from software system development process models, multiple view system modeling
and specification using UML, classification of software systems, project management
and legal issues. (Prerequisites: CS 311; ENGL 111X; ENGL 211X or ENGL 213X;
or permission of instructor.) (3 + 0) Offered Fall
CS 480 3 Credits
Topics in Computer Science
Topics in computer science. Topics include, but are not limited
to, computational linear algebra, cryptography, parallel algorithm
development and analysis. (Course may be repeated when topics change.)
(3 + 0) Offered As Demand Warrants
CS 481 3 Credits
Topics in Computer Graphics
Hardware, software and techniques used in computer graphics taken
from topics such as volume rendering, particle systems, shading, image
processing, computer aided design, video effects, animation and virtual
environments. (Prerequisites: CS 381.) (3 + 0) Offered Spring
CS 490 1–3 Credits
Student Internship
Students work on computer science project under the joint direction
of a faculty member and participating industry or governmental agency.
(Prerequisites: Junior standing and acceptance in an approved internship
program.)
CS 602 3 Credits
Software Project Management
Work in a simulated computer industry environment to produce appropriate
documentation and reports. Nature, ethics and legal considerations
of the computer science profession are discussed. Includes project
management, design methodologies, technical presentation, human-machine
interface and programming team interactions. (Prerequisites: CS 471
and acceptance into the computer science or software engineering graduate
program.) (3 + 0) Offered Spring
CS 605 3 Credits
Artificial Intelligence
Study and writing of AI programs: expert systems, expert system
shells, blackboard systems, neural networks. Representation of knowledge,
pattern analysis, inference networks, neural network training. Study
of software engineering aspects of AI software. (Prerequisite: Permission
of CS graduate advisor. Next offered 2005-06.) (3 + 0) Offered
Alternate Spring
CS 611 3 Credits
Complexity of Algorithms
Theoretical analysis of various algorithms: topics include sorting,
searching, selection, polynomial evaluation, NP completeness, decidability.
(Prerequisites: CS 411.) (3 + 0) Offered Spring
CS 621 3 Credits
Advanced Systems Programming
Multiprogramming and multiprocessing systems. File and program
security. Scheduling optimization and system tuning, I/O processing,
archiving and system recovery, and initialization. Study of current
systems. (Prerequisites: CS 311 and CS 321. Next offered 2005-06.)
(3 + 0) Offered Alternate Fall
CS 622 3 Credits
Performance Evaluation
A survey of techniques of modeling and testing concurrent processes
and the resources they share. Includes levels and types of system simulation,
performance prediction, benchmarking and synthetic loading, hardware
and software monitors. (Prerequisites: CS 321 or permission of computer
science graduate advisor.) (3 + 0) Offered As Demand Warrants
CS 625 3 Credits
Database Systems Design
The design and analysis of database systems including data independence,
relationships and organization. Focus on data models, file organization
and security, index organization, data integrity and reliability. Review
of current database software packages. Design and implementation of
a database application project. (Prerequisites: CS 311.) (3 + 0)
Offered Fall
CS 631 3 Credits
Programming Language Implementation
Formal treatment of programming language translation and compiler
design. Parsing context free languages, translation specifications,
machine independent code, NBF, scanners, symbol tables, parsers and
recursive descent. Programming of compiler or interpreter segments
as projects. (Prerequisite: CS 331.) (3 + 0) Offered Fall
CS 641 3 Credits
Advanced Systems Architecture
A study of advanced single processor systems. Detailed study of
multiprocessor architectures, such as vector architectures, massively
parallel processors and shared-memory multi-processors. (Prerequisites:
CS 441 or permission of Computer Science graduate advisor.) (3 + 0)
Offered Spring
CS 642 3 Credits
Advanced Computer Networks
A study of networks of interacting computers. The problems, rationales,
and possible solutions for both distributed processing and distributed
databases will be examined. Major national and international protocols
will be presented. (Prerequisite: Permission of CS graduate advisor.
Next offered 2005-06.) (3 + 0) Offered Alternate Fall
CS 651 3 Credits
The Theory of Computation
Languages and formal models of algorithms: Turing machines, phrase
structured grammars and recursive functions. Undecidability, the halting
problem, Rice’s Theorem. (Prerequisite: CS 451.) (3 + 0)
Offered Alternate Spring
CS 661 3 Credits
Optimization
(Cross-listed with MATH 661)
Linear and nonlinear programming, simplex method, duality and dual simplex
method, post-optimal analysis, constrained and unconstrained nonlinear programming,
Kuhn-Tucker condition. Applications to management, physical and life sciences.
Computational work with the computer. (Prerequisites: Knowledge of calculus,
linear algebra, and computer programming. Next offered: 2004-05.) (3 + 0)
Offered Alternate Fall
CS 670 3 Credits
Computer Science for Software Engineers
(Cross-listed with SWE 670)
An overview and survey of the theoretical underpinnings of computer science.
Topics are taken from the areas of algorithms and data structures; computer
architecture; computer networks, communications and operating systems; computability
and formal languages; languages and compilation. (Prerequisite: admission to
the Master of Software Engineering degree program. Not required for students
with a B.S. degree in Computer Science.) (3 + 0) Offered Fall, Spring
CS 671 3 Credits
Advanced Software Engineering
(Cross-listed with SWE 671)
Advanced software development as an engineering discipline. Includes investigation
of current tools, standards, foundation and trends in software engineering
from component-ware, software system composition, e-systems, software architecture
and CASE tools. (Prerequisites: CS 471 and acceptance into the Master of Software
Engineering degree program; or permission of instructor.) (3 + 0)
Offered Spring
CS 672 3 Credits
Software Process Improvement
(Cross-listed with SWE 672)
Commonly applied methods for improving the software development process. Emphasis
on the Software Engineering Institute’s Capability Maturity Model (CMM),
and specifically on the key process areas of Level 2 and Level 3 of that model.
These include software configuration management, software quality assurance
and software standards. (Prerequisites: CS 671 or permission of instructor.
Next offered 2004-05.) (3 + 0) Offered Alternate Spring
CS 673 3 Credits
Software Requirements Engineering
(Cross-listed with SWE 673)
Focus on the requirements analysis phase of the software development life cycle.
Study ways to obtain, analyze, and specify complete and correct sets of requirements.
Critique of selected requirements analysis models. Study of current large scale
software developments that have failed or are failing. Development of software
requirements specifications for large and real software systems via team efforts.
(Prerequisites: CS 671 or permission of instructor.) (3 + 0) Offered
As Demand Warrants
CS 674 3 Credits
Software Architecture
(Cross-listed with SWE 674)
Software architectural styles are introduced and defined as structural descriptions
of software systems. Methods for constructing and binding software systems
are introduced and specified as operational views. The architectural approach,
as a classical engineering method for describing structure and behavior of
technical artifacts, will be applied for the composition of software systems.
(Prerequisite: CS 671.) (3 + 0) Offered Spring
CS 680 1-4 Credits
Topics in Computer Science
Topics in computer science. Example topics include, but are not
limited to, software requirements engineering, cryptography, parallel
algorithm development and analysis. (Prerequisite: Varies with each
topic. Recommended: Varies with each topic. May be repeated for credit
with change of topic.) Offered As Demand Warrants
CS 681 3 Credits
Topics in Computer Graphics
Hardware, software and techniques used in computer graphics taken
from topics such as refresh, storage, raster scan technology, volume
rendering, particle systems, shading, image processing, computer aided
design, video effects, animation and virtual environments. (Prerequisite:
CS 481 and MATH 314.) (3 + 0) Offered Spring
CS 690 3 Credits
CS 691 3 Credits
Graduate Seminar and Project
(Cross-listed with SWE 690/691)
A two-semester seminar in which students will, individually or in teams, work
on and present the results of major programming or literature survey projects
in computer science or software engineering. Written and oral reports will
be required. (Prerequisites: 12 credits in graduate computer science or software
engineering courses; or permission of Computer Science or Software Engineering
graduate advisor.) (3 + 0) Offered Fall–Spring