(CPSC)
Professors J.Chen,
S.B.Childs, D.K.Friesen, R.Furuta, J. J. Leggett, W.M.Lively,
B. H. McCormick, P.Nelson,Jr., 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 N. M. Amato, 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, H. In, A. Kerne,
J. Keyser, A. Klappenecker, D. Li, D. Loguinov, V. Sarin, S.
Sze; Senior Lecturers W. C. Daugherity,
T. S. Leyk, Z. Leyk, J. McClain, W.F.Marti, L. C. Petersen, M.
J. Quick, L. Webster, G. S.Yurttas; Lecturers J.D.Hurley,
M. E. Thomadakis
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.
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.
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.