N. M. Amato, R. Bettati,
J. Chen, S. B. Childs, Y. Choe, C. K. T. Chui, D. K. Friesen,
R.Furuta, R. Gutierrez-Osuna, H. In, T. R. Ioerger, A. Kerne,
J. Keyser, A. Klappenecker, J. J. Leggett, D. Li, J. S. Liu,
W. M. Lively, D. Loguinov, R. Mahapatra, B. H.McCormick, P.
Nelson, Jr., M. S. Pilant, U. W.Pooch, L. Rauchwerger, W. Rundell,
V. Sarin, F. M. Shipman, D. B.Simmons, P. F. Stiller, B. Stroustrup,
S. Sze, V. E. Taylor (Head), R. A. Volz, D.H.M.Walker, J. L.
Welch, G. N. Williams, W. Zhao
The Department of Computer Science
offers graduate studies leading to the degrees of Master of Computer
Science, Master of Science in computer science and Doctor of
Philosophy. In computer engineering, the Departments of Computer
Science and Electrical Engineering offer a joint program leading
to the degrees of Master of Engineering, Master of Science and
Doctor of Philosophy.
Advanced study in computer science
is designed to provide the skills to design and utilize modern
computer systems. The field of computer science is rapidly changing
and expanding, generating a need for computer scientists in the
burgeoning industry. The Department of Computer Science is meeting
these needs with advanced study in computer science.
Areas of study in computer science
include theoretical computer science, artificial intelligence
and cognitive modelling, computer vision, graphics and robotics,
computational mathematics and simulation, computer systems and
networks, software systems, and VLSI design automation.
Special laboratory facilities are
available to graduate students in artificial intelligence, software
engineering, graphics, robotics, computer vision, distributed
processing, real time computing, computer architecture, hypertext
and databases. The department houses several super minicomputers
and a network of microcomputer systems and workstations for individual
student use.
There is no foreign language requirement
for the PhD program in computer science.
(CPSC)
601. Programming with C
and Java. (3-0). Credit 3.
Survey of the C and Java programming
languages, including principles of procedural and object-oriented
languages; multi-disciplinary applications including business,
Internet and engineering problems. Prerequisite: Graduate
classification.
602. Object-Oriented Programming,
Development and Software Engineering. (3-0). Credit 3.
Teaches students Object-Oriented
Programming in C++; software engineering techniques presented
to teach how to build high quality software; semester project
gives quasi-real-world experience with issues such as requirements
capture and object-orient development. Prerequisites: CPSC
601 or approval of instructor; graduate classification.
603. Database Systems and
Applications. (3-0). Credit 3.
Introduction to the concepts
and design methodologies of database systems for non-computer
science majors; emphasis on E. F. Codd's relational model
with hands-on design application. Prerequisites: CPSC 601;
graduate classification. Credit will not be given for both
CPSC 310 and 603.
605. Compiler Design. (3-0).
Credit 3.
Advanced topics in compiler
writing; parser generators and compiler-compilers; dynamic
storage and scope resolution; data flow analysis and code
optimization. Prerequisite: CPSC 434.
606. Software Engineering.
(3-0). Credit 3.
Development of advanced concepts
in software engineering; software development environments
as a mechanism for enhancing productivity and software quality;
the classification, evaluation and selection of methodologies
for environments; rapid prototyping and reusability concepts;
artificial intelligence techniques applied to software engineering.
Prerequisite: CPSC 431 or approval of instructor.
607. Software Models and
Metrics. (3-0). Credit 3.
Software models and metrics;
productivity predicting techniques; complexity measures;
software reliability models; cost estimation models. Prerequisite:
CPSC 431.
608. Database Systems. (3-0).
Credit 3.
Database modeling techniques;
expressiveness in query languages including knowledge representation;
manipulation languages data models; physical data organization;
relational database design theory; query processing; transaction
management and recovery; distributed data management. Prerequisite:
CPSC 310 or 603.
609. Artificial Intelligence
Approaches to Software Engineering. (3-0). Credit 3.
Artificial Intelligence techniques
and approaches to software engineering; revolutionary paradigms
and automatic programming; the knowledge-based assistant
in management, specification capture, prototyping and maintenance;
transformational systems and reusable library systems; AI
tools for software development; graphical approaches to software
engineering. Prerequisites: CPSC 606 and 625.
610. Hypertext/Hypermedia
Systems. (3-0). Credit 3.
Comprehensive coverage of Hypertext/Hypermedia;
basic concepts and definitions; fundamental components, architectures
and models; problems and current solutions; design and implementation
issues; and research issues. Prerequisites: CPSC 310 and
410.
611. Operating Systems and
Applications. (3-0). Credit 3.
Review of computer architecture
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;
quality-of-services of operating systems and their impact
on applications. Prerequisites: CPSC 311; graduate classification.
Credit will not be given for both CPSC 410 and 611.
612. Applied Networks and
Distributed Processing. (3-0). Credit 3.
Fundamentals, including network
design and protocol analysis, in the context of computer
communications; the course mixes fundamentals with both programming
and pragmatic views of engineering issues; it includes network
architecture as well as principles of network engineering;
focus is on applying principles of layered architecture to
analyzing real networks; lab exercises focus on protocol
understanding and programming; knowledge of UNIX and C programming
helpful, but not required. Prerequisite: Graduate classification.
Credit will not be given for both CPSC 463 and 612.
613. Operating Systems.
(3-0). Credit 3.
Analysis of algorithms in computer
operating systems; sequencing and control algorithms supporting
concurrent processes; scheduling algorithms to minimize execution
times and mean flow times; algorithms for allocating tasks
to processors; allocation of memory (virtual and real); direct
access device schedules; auxiliary and buffer storage models.
Prerequisite: CPSC 410.
614. Computer Architecture.
(3-0). Credit 3.
Reviews of von Neumann architecture
and its limitations; parallel computer structures and concurrent
computation; pipeline computers and vectorization methods;
array processors, multiprocessor architectures and programming;
dataflow computers. Prerequisite: CPSC 321.
615. Distributed Component
Architecture. (3-0). Credit 3.
Introduce general techniques
and approaches of software architecture (e.g., architecture
style, ADL, ADME, UML, DSSA, distributed component and middleware);
software life cycles; investigate distributed component architecture
(COBRA, COM/DOM, JavaBeans) as specific examples of architecture
for in-depth knowledge. Prerequisites: Knowledge of at least
one object-oriented language (e.g., C++, Java); graduate
classification.
618. Resilient Computer
Systems. (3-0). Credit 3.
Impact of reliability on computer
and network system design; stochastic models of reliability
and availability in fault-tolerant systems; hardware, software
and system interaction, system design for testability, isolation
and recovery. Prerequisite: CPSC 321 or410. Cross-listed
with ELEN 618.
619. Networks and Distributed
Computing. (3-0). Credit 3.
Computer network concepts including
network architecture, layering, protocols, packet switching
and virtual circuits; performance evaluation and design considerations
for local area networks; packet distributed networks; satellite
networks. Prerequisite: CPSC 463.
620. Computational Geometry.
(3-0). Credit 3.
Design and analysis of algorithms
for solving geometrical problems; includes convex hull problems,
Voronoi diagrams, range searching and proximity problems.
Prerequisite: CPSC 311. Cross-listed with VIZA 670.
623. Parallel Geometric
Computing. (3-0). Credit 3.
Parallel computer architectures
and algorithms for solving geometric problems raised in VLSI
design, pattern recognition and graphics; advanced research
results in computational geometry including convexity, proximity,
intersection, geometric searching and optimization problems.
Prerequisite: CPSC 311 or ELEN 350. Cross-listed with ELEN
623.
625. Artificial Intelligence.
(3-0). Credit 3.
Basic concepts and methods of
artificial intelligence; Heuristic search procedures for
general graphs; game playing strategies; resolution and rule
based deduction systems; knowledge representation; reasoning
with uncertainty. Prerequisite: CPSC 311.
626. Parallel Algorithm
Design and Analysis. (3-0). Credit 3.
Design of algorithms for use
on highly parallel machines; area-time complexity of problems
and general lower bound theory; application (of these concepts)
to artificial intelligence, computer vision and VLSI design
automation. Prerequisite: CPSC 629.
627. Theory of Computability.
(3-0). Credit 3.
Formal models of computation
such as pushdown automata; Turing machines and recursive
functions; unsolvability results; complexity of solvable
results. Prerequisite: CPSC 433.
629. Analysis of Algorithms.
(3-0). Credit 3.
Concrete algorithm design and
analysis; abstract models to analyze the complexity of problems;
NP-Completeness; approximation and probabilistic algorithms.
Prerequisite: CPSC 311.
631. Programming Environments
for Artificial Intelligence. (3-0). Credit 3.
Languages
used in artificial intelligence with emphasis on LISP and
PROLOG; environments for programming in these languages;
practice using these environments in the solution of artificial
intelligence problems. Prerequisite: CPSC 320 or 625.
632. Expert Systems. (3-0).
Credit 3.
Basic concepts for building
expert systems; inference strategies; applications and case
studies; techniques for knowledge acquisition; use of existing
tools for building expert systems. Prerequisite: CPSC 320
or 625.
633. Machine Learning. (3-0).
Credit 3.
Machine learning is the study
of self-modifying computer systems that can acquire new knowledge
and improve their own performance; survey machine learning
techniques, which include induction from examples, conceptual
clustering, explanation-based learning, exemplar learning
and analogy, discovery and genetic algorithms. Prerequisite:
CPSC 320 or 625.
634. Intelligent User Interfaces.
(3-0). Credit 3.
Intersection of artificial intelligence
and computer-human interaction: emphasis on designing and
evaluating systems that learn about and adapt to their users,
tasks, and environments. Prerequisites: Graduate classification
and approval of instructor.
636. Neural Networks. (3-0).
Credit 3.
Basic concepts in neural computing;
functional equivalence and convergence properties of neural
network models; associative memory models; associative, competitive
and adaptive resonance models of adaptation and learning;
selective applications of neural networks to vision, speech,
motor control and planning; neural network modeling environments.
Prerequisites: MATH 304 and 308 or approval of instructor.
637. Complexity Theory.
(3-0). Credit 3.
Deterministic, non-deterministic,
alternating and probabilistic computations; reducibilities;
P, NP and other complexity classes; abstract complexity;
time, space and parallel complexity; and relativized computation.
Prerequisite: CPSC 627 or approval of instructor.
639. Fuzzy Logic and Intelligent
Systems. (3-0). Credit 3.
Introduces the basics of fuzzy
logic and its role in developing intelligent systems; topics
include fuzzy set theory, fuzzy rule inference, fuzzy logic
in control, fuzzy pattern recognition, neural fuzzy systems
and fuzzy model identification using genetic algorithms.
Prerequisite: CPSC 625 or approval of instructor. Cross-listed
with MEEN 676.
641. Computer Graphics.
(3-0). Credit 3.
Representations of 3-dimensional
objects, including polyhedral objects, curved surfaces, volumetric
representations and CSG models; techniques for hidden surface/edge
removal and volume rendering; illumination and shading; anti-aliasing;
ray tracing; radiosity; animation; practical experience with
state-of-the-art graphics hardware and software. Prerequisite:
CPSC 441. Cross-listed with VIZA 671.
644. Cortical Networks.
(3-0). Credit 3.
The architecture of the mammalian
cerebral cortex; its modular organization and its network
for distributed and parallel processing; cortical networks
in perception and memory; neuronal microstructure and dynamical
simulation of cortical networks; the cortical network as
a proven paradigm for the design of cognitive machines. Prerequisites:
CPSC 420 or CPSC 625 and 636 and graduate classification
645. Geometric Modeling.
(3-0). Credit 3.
Geometric and solid modeling
concepts. Freeform curves and surfaces (splines and Bezier)
with their relational, intersectional and global mathematical
properties. Parametric representation of solids, topology
of closed curved surfaces, boundary concepts and Boolean/Euler
operators. Construction and display of curves and surfaces,
and solid models. Prerequisites: CPSC 441 and 442 or equivalent.
Cross-listed with VIZA 675.
646. The Digital Image.
(3-2). Credit 4.
Tools and techniques for generation,
handling and analysis of two dimensional digital images;
image representation and storage; display, media conversion,
painting and drawing; warping; color space operations, enhancement,
filtering and manipulation. Prerequisite: VIZA 653 or approval
of instructor. Cross-listed with VIZA 654.
647. Image Synthesis. (3-2).
Credit 4.
Principles
of image synthesis from 3-D scene descriptions; includes
local and global illumination, shading, shadow determination,
hidden surface elimination, texturing, raster graphics
algorithms, transformations and projects. Prerequisite:
VIZA 653 or approval of instructor. Cross-listed with VIZA
656.
648. Computer Aided Sculpting.
(3-2). Credit 3.
Mathematical
and artistic principles of 3-D modeling and sculpting;
includes proportions, skeletal foundation, expression and
posture, line of action; curves, surfaces and volumes,
interpolation and approximation, parametric and rational
parametric polynomials, constructive solid geometry, and
implicit representations. Prerequisite: Approval of instructor.
Cross-listed with VIZA 657.
649. Physically-Based Modeling.
(2-2). Credit 3.
Physical simulation as used
in choreography, geometric modeling, and the creation of
special effects in computer graphics: a variety of problems
and techniques explored which may include particle-methods,
modeling and simulation of flexible materials, kinematics
and constraint systems. Prerequisite: Approval of instructor.
Cross-listed with VIZA 659.
651. Simulation I. (3-0).
Credit 3.
Introduction to simulation and
comparison with other problem-solving techniques; simulation
methodology including generation of random numbers and variates,
time flow mechanisms, sampling considerations, and validation
and analysis of simulation models and results; survey of
discrete simulation languages; applications of simulation,
including operating systems and networks. Prerequisites:
Graduate classification and knowledge of a minimum of three
programming languages.
653. Computer Methods in
Applied Sciences. (3-0). Credit 3.
Classical and modern techniques
for the computational solution of problems of the type that
traditionally arise in the natural sciences and engineering;
introductions to number representation and errors, locating
roots of equations, interpolation, numerical integration,
linear algebraic systems, spline approximations, initial-value
problems for ordinary differential equations and finite-difference
methods for partial differential equations. Prerequisite:
CPSC 442 or MATH 417.
654. Supercomputing. (3-0).
Credit 3.
Principles of high-performance
scientific computing systems, vectorization, advanced FORTRAN
programming on supercomputers, numerical methods for supercomputers,
performance measuring of supercomputers, multitasking. Prerequisites:
Knowledge of FORTRAN; CPSC 442 or MATH 417 or equivalent.
659. Parallel/Distributed
Numerical Algorithms and Applications. (3-0). Credit 3.
A unified treatment of parallel
and distributed numerical algorithms; parallel and distributed
computation models, parallel computation of arithmetic expressions;
fast algorithms for numerical linear algebra, partial differential
equations and nonlinear optimization. Prerequisites: CPSC
653; MATH 304. Cross-listed with ELEN 659.
660. Computational Linear
Algebra. (3-0). Credit 3.
Techniques in matrix computation:
elimination methods, matrix decomposition, generalized inverses,
orthogonalization and least-squares, eigenvalue problems
and singular value decomposition, iterative methods and error
analysis. Prerequisite: CPSC 442 or equivalent or MATH 417
or equivalent. Cross-listed with MATH 660.
661. Integrated Systems
Design Automation. (3-0). Credit 3.
VLSI design systems and their
levels of abstracting; algorithms for general VLSI design
and implementation; computer aided design tools and principles;
physical and logical models. Prerequisite: Graduate classification.
662. Distributed Processing
Systems. (3-0). Credit 3.
Principles and practices of
distributed processing; protocols, remote procedure calls;
file sharing; reliable system design; load balancing; distributed
database systems; protection and security; implementation.
Prerequisite: CPSC 410 or 463.
663. Real-Time Systems.
(3-0). Credit 3.
Taxonomy of real-time computer
systems; scheduling algorithms for static and dynamic real-time
tasks; hard real-time communications protocols; programming
languages and environments for real-time systems; case studies
of real-time operating systems. Prerequisites: CPSC 410 and
456 or approval of instructor.
665. Advanced Networking
and Security. (3-0). Credit 3.
Security aspects of various
network protocols including investigation and tool development
using "live" machines and networks. Prerequisites:
Graduate classification and approval of instructor.
668. Distributed Algorithms
and Systems. (3-0). Credit 3.
Introduction to fundamental
algorithmic results in distributed computing systems; leader
election, mutual exclusion, consensus, logical time and causality,
distributed snapshots, algorithmic fault tolerance, shared
memory, clock synchronization. Prerequisites: CPSC 629 or
equivalent; approval of instructor.
669. Computational Optimization.
(3-0). Credit 3.
Combinatorial theory of polytopes
as a tool for the solution of combinatorial optimization
problems; applications to max flow, matching and matroids;
geometric interpretation of the results indicating the profound
role that polyhedral combinatorics play in the design and
complexity of approximation algorithms. Prerequisite: CPSC
629.
670. Information Storage
and Retrieval. (3-0). Credit 3.
Representation, storage, and
access to very large multimedia document collections; fundamental
data structures and algorithms of information storage and
retrieval systems; techniques to design and evaluate complete
retrieval systems, including cover of algorithms for indexing,
compressing, and querying very large collections. Prerequisites:
CPSC 310 or approval of instructor; graduate classification.
671. Computer-Human Interaction.
(3-0). Credit 3.
Comprehensive coverage of Computer-human
Interaction (CHI) including history, importance, design theories
and future direction; modeling computer users and interfaces,
empirical techniques for task analysis and interface design,
and styles of interaction. Prerequisite: Graduate classification.
672. Computer Supported
Collaborative Work. (3-0). Credit 3.
Covers design, implementation
and use of technical systems that support people working
cooperatively; draws from the research area of Computer Supported
Cooperative Work (CSCW) and includes current theoretical,
practical, technical and social issues in CSCW and future
directions of the field. Prerequisite: CPSC 671 or 610 or
approval of instructor.
673. Information, Secrecy
and Authentication I. (3-0) Credit 3.
Preliminaries; probability,
information, entropy, signals, channels; group-theoretic
view of messages; contemporary secrecy and digital signature
systems; one-time pads, DES, RSA, DSS, wheels, LFSR-based
systems; analog scramblers; key exchange, key management,
secret sharing, access structures; measures of security.
Prerequisites: Graduate classification and approval of instructor.
Cross-listed with MATH 673.
674. Information, Secrecy
and Authentication II. (3-0). Credit 3.
Classical and recent attacks;
login, compression, error control and genetic codes; finite
and infinite codes; matrices, graphs, duals, groups, morphisms,
composites, products, rates and classification of codes;
the confusion/diffusion/arithmetic/calculus extension of
Shannon's two design primitives. Prerequisites: MATH 673;
graduate classification or approval of instructor. Cross-listed
with MATH 674.
675. Digital Libraries.
(3-0). Credit 3.
Surveys current research and
practice in Digital Libraries, which seek to provide intellectual
access to large-scale, distributed digital information repositories;
current readings from the research literature which covers
the breadth of this interdisciplinary area of study. Prerequisite:
Graduate classification in computer science.
677. Switching Theory. (3-0).
Credit 3.
Digital systems design; introduction
to switching algebras, overview of integrated circuit technologies,
analysis and synthesis of combinational circuits, special
properties of selected switching functions, sequential circuits,
fundamental mode analysis, pulse mode analysis, and sequential
circuit synthesis. Prerequisite: Graduate classification.
Cross-listed with ELEN 652.
680. Testing and Diagnosis
of Digital Systems. (3-0). Credit 3.
The theory and techniques of
testing VLSI-based circuits and systems, and design for testability.
Prerequisites: CPSC 321 or ELEN 350 or equivalent; ELEN 220
or 248 or equivalent. Cross-listed with ELEN 680.
681. Seminar. (1-0). Credit
1.
Reports and discussion of current
research and of selected published technical articles. May
not be taken for credit more than once in master's degree
program nor twice in PhD program.
685. Directed Studies. Credit
1 to 12.
Research problems of limited
scope designed primarily to develop research technique.
689. 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.
691. Research. Credit 1
or more.
Research for thesis or dissertation.