Professors N. M. Amato, J.Chen, S.B.Childs, D.K.Friesen,
R.Furuta, J. J. Leggett, W.M.Lively, B. H. McCormick, M. S.
Pilant, U.W.Pooch, W. Rundell, D.B.Simmons, P. F. Stiller,
B. Stroustrup, V. E. Taylor (Head), R.A.Volz, J.L.Welch, G.
N. Williams, W. Zhao; Associate
Professors R. Bettati, T. R.
Ioerger, J.S.Liu, R. Mahapatra, L. Rauchwerger, F. M. Shipman,
D.M.H.Walker; Assistant Professors Y. Choe, R. Gutierrez-Osuna,
A. Kerne, J. Keyser, E. J. Kim, A. Klappenecker, D. Li, D.
Loguinov, V. Sarin, S. Sze; Senior
Lecturers W. C. Daugherity,
J.D.Hurley, T. S. Leyk, Z. Leyk, W.F.Marti, L. C. Petersen,
M. J. Quick, L. Webster, G. S.Yurttas
110. Programming I. (3-2).
Credit 4. I, II, S
Basic concepts, nomenclature and historical perspective
of computers and computing; internal representation of data;
software design principles and practices; structured programming
in Pascal; use of terminals, operation of editors and execution
of student-written programs.
111. Introduction to Computer
Science Concepts and Programming. (3-2). Credit 4.
Basic concepts, nomenclature, and historical perspective
of computers and computing; problem solving and software
design principles, including abstraction, modularity, data
representation, documentation, portability, structured and
object oriented programming; software engineering concepts
including requirements definition, testing, and maintenance
considerations; development and execution of student written
programs. Prerequisite: Course in Pascal or C (high school
or college) or approval of instructor.
203. Introduction to Computing.
(3-0). Credit 3. I, II, S
Algorithms, programs and computers; basic programming and
program structure; data representation; computer solution
of numerical and non-numerical problems using a high-level
programming language, FORTRAN.
206. Structured Programming
in C. (3-2). Credit 4.
Basic concepts, nomenclature and historical perspective
of computers and computing; internal representation of data;
software design principles and practice; structured and object-oriented
programming in C; use of terminals, operation of editors
and executions of student-written programs.
210. Data Structures. (3-0).
Credit 3. I, II, S
Methods for organizing data; design of algorithms for efficient
implementation and manipulation of data structures.
211. Data Structures and
Their Implementations. (3-2). Credit 4.
Specification and implementation of basic data structures
and abstract data types--linked lists, stacks, queues, trees
and tables; performance tradeoffs of different implementations;
asymptotic analysis of running time and memory usage; compares
and contrasts object-oriented language (typically, Java)
and non-object-oriented languages (typically, C); emphasis
on adherence to good software engineering principles. Prerequisite:
CPSC 111 or approval of instructor.
285. Directed Studies. Credit
1 to 4.
Special project in computer science. Project must be approved
by the department. Prerequisite: Approval of department head.
289. Special Topics in...
Credit 1 to 4.
Selected topics in an identified area of computer science.
May be repeated for credit. Prerequisite: Approval of instructor.
310. Database Systems. (3-0).
Credit 3. I, II, S
File structures and access methods; database modelling,
design and user interface; components of database management
systems; information storage and retrieval, query languages,
high-level language interface with database systems. Prerequisite:
CPSC 210 or 211.
311. Analysis of Algorithms.
(3-0). Credit 3. I, II, S
Design of computer algorithms for numeric and non-numeric
problems; relation of data structures to algorithms; analysis
of time and space requirements of algorithms; complexity
and correctness of algorithms. Prerequisites: CPSC 210 or
211; MATH 302.
321. Computer Architecture.
(3-2). Credit 4. I, II, S
Basic hardware/software components, assembly language,
and functional architecture design of computers; syntax and
semantics of a typical microprocessor assembly language;
instruction sets, construction and execution of an assembly
program; the design of I/O modules, memory, control unit
and arithmetic unit. Prerequisite: ELEN 220 or 248.
332. Programming Language
Design. (3-0). Credit 3. I, II
Design of high-level languages; criteria for language selection;
specification techniques for syntax and semantics; trends
in high-level language design and introduction to programming
in LISP. Prerequisite: CPSC 211.
410. Operating Systems.
(3-0). Credit 3. I, II, S
Hardware/software evolution leading to contemporary operating
systems; basic operating systems concepts; methods of operating
systems design and construction: algorithms for CPU scheduling,
memory and general resource allocation, process coordination
and management; case studies of several operating systems.
Prerequisite: CPSC 321.
420. Artificial Intelligence.
(3-0). Credit 3. I, II, S
Fundamental concepts and techniques of intelligent systems;
representation and interpretation of knowledge on a computer;
search strategies and control; active research areas and
applications such as notational systems, natural language
understanding, vision systems, planning algorithms, intelligent
agents and expert systems. Prerequisite: CPSC 311.
431. Software Engineering.
(2-2). Credit 3. I, II, S
Application of engineering approach to computer software
design and development; life cycle models, software requirements
and specification; conceptual model design; detailed design;
validation and verification; design quality assurance; software
design/development environments and project management. Prerequisite:
CPSC 311.
433. Formal Languages and
Automata. (3-0). Credit 3. I
Basic types of abstract languages and their acceptors;
the Chomsky hierarchy; solvability and recursive function
theory; application of theoretical results to practical problems.
Prerequisite: CPSC 311.
434. Compiler Design. (3-0).
Credit 3. II
Programming language translation: functions and general
organization of compiler design and interpreters; theoretical
and implementation aspects of lexical scanners; parsing of
context free languages; code generation and optimization;
error recovery. Prerequisite: CPSC 311.
435. Structured Programming
in Ada. (3-0). Credit 3.
The Ada programming language; history and motivation; scalar
and composite types; type and object attributes; control
constructs; subprograms; packages and abstract types; numeric
types; I/O; program structure; overloading and visibility;
tasking; generics; programming style using Ada, Ada Programming
Support Environments; bindings to common utilities, including
GKS, SQL. Prerequisite: CPSC 210 or 211 or approval of instructor.
436. Computer-Human Interaction.
(3-0). Credit 3.
Comprehensive study of the Computer-Human Interaction (CHI)
area; includes history and importance of CHI; CHI design
theories; modeling of computer users and interfaces; empirical
techniques for task analysis and interface design; styles
of interaction and future directions of CHI including hypermedia
and computer-supported collaborative work. Prerequisites:
CPSC 310, 320, 321.
438. Distributed Objects
Programming. (3-0). Credit 3.
Principles of distributed computing and programming with
current paradigms, protocols, and application programming
interfaces including Sockets, RMI, CORBA, IDL, Servlets,
Web Services; security issues with public/private keys, digital
signatures, forms and GUI based applications with multi-tier
components, database connectivity and storing/streaming data
structured using XML. Prerequisites: CPSC 332 or approval
of instructor; junior or senior classification.
440. Quantum Algorithms.
(3-0). Credit 3.
Introduction to the design and analysis of quantum algorithms;
basic principles of the quantum circuit model; gives a gentle
introduction to basic quantum algorithms; reviews recent
results in quantum information processing. Prerequisites:
Junior or senior classification and MATH 302.
441. Computer Graphics.
(3-0). Credit 3. I, II, S
Principles of interactive computer graphics; systems organization
and device technologies for raster and vector displays; 2-D
and 3-D viewing, clipping, segmentation and interaction handling;
3-D geometrical transformations, projections and hierarchical
data structures for graphics modeling. Prerequisites: CPSC
210 or 211; junior classification.
442. Scientific Programming.
(3-0). Credit 3. II
Introduction to numerical algorithms fundamental to scientific
and engineering applications of computers; elementary discussion
of error; algorithms, efficiency; polynomial approximations,
quadrature and systems of algebraic and differential equations.
Prerequisites: CPSC 206; MATH 308.
452. Robotics and Spatial
Intelligence. (3-0). Credit 3. II
Algorithms for executing spatial tasks; path planning and
obstacle avoidance in two- and three-dimensional robots--configuration
space, potential field, free-space decomposition methods;
stable grasping and manipulation; dealing with uncertainty;
knowledge representation for planning--geometric and symbolic
models of the environment; task-level programming; learning.
Prerequisite: CPSC 320.
456. Real-Time Computing.
(3-3). Credit 4.
Introduction to principles and applications of real-time
computing; system architecture; D/A and A/D conversion; synchronous
data acquisition and analysis; computers in real-time control;
asynchronous monitoring and control; resource scheduling;
interfacing issues; lectures and laboratory. Prerequisites:
ELEN 220 or 248; MATH 251; knowledge of C or Ada, or approval
of instructor.
462. Microcomputer Systems.
(2-2). Credit 3. II
Microcomputers as components of systems; VLSI processor
and coprocessor architectures, addressing and instruction
sets; I/O interfaces and supervisory control; VLSI architectures
for signal processing; integrating special purpose processors
into a system. Prerequisite: CPSC 410 or concurrent enrollment.
463. Networks and Distributed
Processing. (3-0). Credit 3. I, II
Basic hardware/software, architectural components for computer
communications; computer networks, switching, routing, protocols
and security; multiprocessing and distributed processing;
interfacing operating systems and networks; case studies
of existing networks and network architectures. Prerequisite:
CPSC 410.
469. Advanced Computer Architecture.
(3-0). Credit 3.
Introduction to advanced computer architectures including
memory designs, pipeline techniques, and parallel structures
such as vector computers and multiprocessors. Prerequisite:
CPSC 321 or ELEN350. Cross-listed with ELEN469.
470. Information Storage
and Retrieval. (3-0). Credit 3.
Representation of, storage of and access to very large
multimedia document collections; fundamental data structures
and algorithms of current information storage and retrieval
systems and relates various techniques to design and evaluation
of complete retrieval systems. Prerequisites: CPSC 310 and
311; junior or senior classification.
481. Seminar. (0-2). Credit
1. I, II, S
Investigation and report by students on topics of current
interest in computer science. Prerequisite: Senior classification.
483. Computer Systems Design.
(1-6). Credit 3.
Engineering design; working as a design-team member, conceptual
design methodology, design evaluations, total project planning
and management techniques, design optimization, systems manufacturing
costs considerations; emphasis placed upon students' activities
as design professionals. Prerequisites: CPSC 431 and 462;
senior classification.
485. Directed Studies. Credit
1 to 6. I, II, S
Permits work on special project in computer science. Project
must be approved by the department. Prerequisite: Senior
classification.
489. Special Topics in...
Credit 1 to 4.
Special topics in computer science that are new or unique
that are not covered in existing courses.