Last Update: 15 May 2007
Note:
or
material is highlighted

The course descriptions listed below were accurate when this
Handbook went to press. However,
course contents are subject to change, and new courses are added from
time to time. In addition, you should be aware
that some of these courses are only offered on an irregular basis.

501 Introduction to Graduate Study in Computer Science &
Engineering:
This course gives necessary information about graduate studies in CSE for
incoming students. Registration and attendance are required for all new
graduate
students. Topics include: academic integrity, the nature of research, good
teaching and TA skills, resources available for research, departmental
computer systems, relevant departmental, University, and U.S. regulations and
forms,and planning an academic program.
 503 Computer Science for NonMajors I:
This course introduces students to algorithm design and
implementation in a modern, highlevel, programming language (currently,
Java). It emphasizes
problemsolving by abstraction. There will also be a brief coverage of the
social and ethical aspects of computing. Topics include data types,
variables, expressions, basic imperative programming techniques including
assignment, input/output, subprograms, parameters, selection, iteration,
Boolean type, and expressions, and the use of aggregate data structures
including arrays and records. Students will also have an introduction to
the basics of abstract data types and objectoriented design, as well as
the mathematics of computer science such as Boolean algebra, basic number
theory, etc.
May not be counted toward the 30 hours for the M.S.
or the 72 hours for the Ph.D.
Prerequisite: Some previous experience with computers.
 504 Computer Science for NonMajors II:
This course is a continuation of CSE 503, in which heavy emphasis is placed
on abstract data types (ADTs) and objectoriented methodology, where the
student will be expected not only to understand ADTs, but
also to design and implement robust ADTs using a modern, objectoriented,
programming language. Topics such as encapsulation, polymorphism,
templates, and inheritance will be emphasized. Essential topics to be
integrated in this framework include the use of recursion; pointers;
dynamic memory management; linked structures including linked lists,
binary trees, stacks, queues, and other advanced data structures; and
algorithms, including advanced searching and sorting algorithms. The
analysis of algorithm complexity ("big O" notation) will be introduced.
May not be counted toward the 30 hours for the M.S. or the 72
hours for the Ph.D.
Prerequisite: An introductory computer science course, such as CSE 503 or
CSE113, or CSE115, that includes programming in a highlevel language such as
C++ or Java.
 505 Fundamentals of Programming Languages:
This course surveys concepts, constructs, and foundations of a variety
of programming languages. Main topics are lambdacalculi, type systems,
data and procedural abstraction, programming paradigms (objectoriented,
functional, and logic), and formal semantics (denotational, operational
and axiomatic). Languages of interest include C, C++, Java, Lisp, ML,
Smalltalk, and Prolog. Programming projects are designed to deepen
understanding of languages. Languagespecific details are covered
in the recitations which are closely coordinated with the lectures.
Prerequisite: Graduate standing in Computer Science and Engineering
or graduate standing with equivalent background, including working
knowledge of a modern highlevel language, data structures, recursive
programming techniques, and discrete mathematics.
 507 Object Oriented Applications and Systems Design (for nonMajors):
This course is designed to present to nonCSE graduate students concepts in
objectoriented programming, systems, and applications. Major topics
include: basic design and programming principles, control and data
abstraction, the notion of class and object, software reuse, inheritance and
composition, polymorphism, abstract class and virtual functions, component
programming, standard libraries, and migratory applications. The course will
include case studies of objectoriented applications which may be drawn from
a variety of disciplines. All the topics will be supported by practical
design and programming projects using objectoriented languages, such as C++
and Java, and also visual environments. This course may not be counted
towards the 30 hours for an M.S. in Computer Science or towards the 72 hours
for a Ph.D. in Computer Science.
(Offered irregularly.)
 510 Special Topics:
This course is used for newlydesigned courses which are being
developed by faculty members, usually in a new area of research.
The topics and prerequisites will be announced when this course
is offered.
 512 Operating Systems Internals:
This course uses an operating system (such as UNIX) as
an example to teach the internal workings of Operating Systems. The
material presented is more practical than the other Operating Systems
related classes. The laboratory component of this course provides
programming projects involving modifications to an operating system
kernel (such as UNIX) on computers dedicated to use for this course.
Topics covered include building the Operating System kernel, the system
call interface, process management, kernel services provided for
processes, the I/O system, the internal workings of the file system,
device drivers, and the kernel support of Interprocess Communications.
Prerequisite:
CSE421/521 or Permission of Instructor.
 515 Introduction to Parallel Computing:
General introduction to parallel computing, with an emphasis on different
approaches to programming a variety of sharedmemory, distributedmemory,
SIMD, and MIMD parallel machines. Fundamental issues about parallel
architectures, languages, and algorithms are included. The concepts will be
supported by programming projects.
Prerequisite: CSE 505 or equivalent.
 516 ECommerce Technology:
The course explains the main technologies that are used to design and
implement ecommerce applications. We address a wide variety of both
standard and emerging technologies such as: recommender systems, web
metrics, data mining for ecommerce, software agents, reputation
systems, digital design, cryptography and digital signatures, payment
mechanisms, auctions and negotiation, search engines, mobile ecommerce,
privacy, and security.
(Offered irregularly.)
Prerequisites: Java programming skills.
 519 ObjectOriented Techniques:
Objectoriented techniques present a new way of modeling, designing and
implementing software program. This course introduces the fundamental
concepts of objectoriented: objects, classes, associations, inheritance,
data abstraction, encapsulation and visibility. Students will learn to
apply the techniques to the entire software development life cycle. The
concept will be illustrated by programming projects.
(Offered irregularly.)
 520 Digital System Design and Analysis:
This course studies the fundamental issues in designing and analyzing modern
singleprocessor computer systems, in particular, the design philosophy of
RISC vs. CISC, cache architecture and instruction pipelining. Topics
include: performance and cost, instruction set design, processor
implementation techniques, computer arithmetic, cache memory design,
pipelining design and input/output.
 521 Introduction to Operating Systems:
Concepts of operating systems described in terms of function, structure, and
implementation; particular emphasis on multiprogramming. Example concepts
are: concurrent programming, virtual memory, scheduling policies for CPU and
secondary storage, deadlocks, file systems, and protection. Concepts will be
illustrated with examples from existing operating systems.
Prerequisite: Basic knowledge of assemblylanguage programming and computer
organization.
 522 Software Requirements Engineering:
Success of the software engineering paradigm is predicated on the
development of a quality software requirements document. This course reviews
the software life cycle and the role of the software requirements document
in the software engineering process. The components of a software
requirements document are defined, presented, reviewed and critiqued in
class. Students are provided the opportunity to engineer a requirements
document for a system defined in class or an actual system required by
business, industry or government.
(Offered irregularly.)
Prerequisite: consent of the instructor.
 523 Quality Software Design:
Production and maintenance of longterm, largescale programming projects.
Topics covered include analysis of software requirements for project
specifications, abstraction and modularity in software design, programming
style, software reliability and performance evaluation. Students will be
required to design, manage and implement a mediumsized project.
(Offered irregularly.)
Prerequisite: knowledge of at least one structured language.
 525 Software Testing
(Offered irregularly.)
 526 Image Processing:
Modern computer techniques for processing of images. Topics discussed are
related to image data compression for transmission of image data, image
restoration and enhancement and image analysis. The course demonstrates the
applications of computer techniques in this relatively new field.
 527 Modern Computer Systems:
Computer system architecture, architecture support of compilers,
computing system processor design of memory and peripherals,
operating system structures and hardware interfacing. C and assembly
language programming on SPARC RISC processors. Standard calling
conventions and stack frame usage. Operating system services.
Directly programmed interfaces, interrupt services interfaces
and data acquisition systems. Custom interface design for a
standard bus.
Prerequisite: CSE341 or CSE380.
 530 Computer Communications:
An introduction to communication networks for computer and telecommunication
applications. Review of stochastic processes and introductory queuing
theory. Local area networks (such as Ethernet, Token Ring, and FDDI), wide
area networks (such as SNA, and Internet), ISDN and SONET are considered.
Focus is on the data link control, network and transport layers of the OSI
protocol suite.
 531 Analysis of Algorithms:
The design and analysis of algorithms. Time and space complexity of algorithms.
BigO notation. Analysis of recursive procedures. Algorithms for solving
problems from graph theory, computational geometry. NPcompleteness.
Approximation algorithms. Parallel algorithms, etc.
Prerequisite: Data Structures (CSE250), Calculus II, and a course
that requires formal proofs.
 534 Multimedia Systems:
This is an overview course covering the various aspects
of Multimedia Systems. Topics include video representation, compression and
transmission, multimedia databases, synchronization, multimedia networks and
operating systems.
 536 Computational Biology:
This course is designed for CSE and
Bioinformatics graduate students.
Computational Biology studies the problems arising from Biology using
algorithmic techniques. Typical problems include: sequencing and
alignment of DNA and protein sequences; construction and comparison of
evolutionary trees. These problems are of central importance in
Biology. The course provides insights that will help students gain a
comprehensive understanding of computational problems in Biology, and
techniques for designing efficient algorithms for solving these
problems.
Prerequisite: Basic understanding of programming, or molecular biology
and genetics.
 537  538 Introduction to Numerical Analysis III:
Computer representation of numbers. Computer arithmetic and analysis of
rounding errors; real and complex arithmetic. Computer convergence and study
of algorithms. Solution of nonlinear equations, iterative methods for the
solution of linear systems. Illconditioned problems. Elementary
approximation theory. Interpolation, quadrature, ordinary and partial
differential equations, the eigen problem.
Prerequisite: 2 years of college mathematics, including linear algebra.
Currently only offered when
crosslisted with Math 537538.
 539 Software Engineering Tools and Building Blocks:
This course addresses the selection of the most effective operating system,
computer language tools and software building blocks to be incorporated into
a software engineering project. To facilitate this, operating system
concepts are reviewed and modern operating systems categorized in terms of
functional capabilities. The evolution of computer languages and associated
methodologies are analyzed in terms of cost effectiveness, software
productivity and quality. Actual software projects are discussed to
illustrate application of the concepts to real world situations. The student
is required to investigate and report on a modern methodology and/or real
world application.
(Offered irregularly.)
Prerequisite: graduate standing in engineering or computer science.
Experience in programming with at least one higherlevel
language such as FORTRAN, C, BASIC, COBOL., etc.
 541 Introduction to VLSI Systems:
Verylargescale integration involves the integration of a very large number
of components on a single semiconductor chip. This course will introduce the
basic concepts involved in the design of digital circuits using electronic
switches (FETs), logic design of the various components of a computing
system, design methodologies for system design, computeraided design tools
and the algorithms involved in their design. This course is not geared
towards the electronics of the fabrication technologies and device physics,
but will emphasize the algorithmic aspects relevant to the design of VLSI
systems.
Prerequisite: CSE 590.
 542 Software Engineering Concepts:
This course introduces the terminology and
concepts of software engineering. Following a discussion of how software
engineering evolved in response to early practices of the computer industry,
the concepts of wellengineered software, the software process and the
management process model are presented. Additional topics include software
requirements definition, software design, verification and validation, and
software management. Graduate students are required to investigate and
report on a topic relevant to the course. (Same as ECE 442).
Prerequisite: experience in writing computer programs in at least
one higher level language such as C/C++ and Java.
 543 Introduction to Language Processors:
Theory, design, and implementation of a translator for a highlevel
programming language will be discussed. Topics include: lexical analysis,
contextfree grammars, parsing,LRparsers, type checking, storage
allocation, code generation and optimization, and error recovery; compiler
construction tools LEX and YACC. These topics will be supported by
programming projects.
(Offered irregularly.)
Prerequisite: A working knowledge of C and a basic knowledge of
assemblylanguage programming and computer organization.
 547 High Performance Computing I:
The first semester of a two semester course sequence that will introduce
students to the fundamental concepts of scientific computing, with
particular attention given to algorithms that are wellsuited to
high performance computer architectures. The first semester will
concentrate on computational linear algebra, including iterative
and direct methods for solving linear systems and for eigenvalue
problems, and the use of BLAS and other public domain libraries.
Cross listed with COR 501/CE 620/MTH 667/MAE 609/PHY 515.
 548 High Performance Computing II:
The second semester of a two semester course sequence that will
introduce students to the fundamental concepts of scientific computing,
with particular attention given to algorithms that are wellsuited
to high performance computer architectures. The second semester
will concentrate on scientific computing in applications, including
stochastic methods, FFTs, and finite element and finite difference
methods.
Cross listed with COR 502/CE 621/MTH 668/MAE 610/PHY 516.
 551 Program Development and Verification:
Introduction to the simultaneous development and verification of correct
programs. The first part of the course will contain lectures in formal logic
and program semantics. The second part will involve actual examples of
program development. The emphasis is theoretical; there is little or no
actual running of programs.
(Offered irregularly.)
Prerequisite: Some familiarity with formal logic, preferably including
predicate logic.
 552 VLSI (Very Large Scale Integration) Testing:
A sequel to CSE 497/597, Introduction to VLSI Electronics, the project work
for this course includes testing of the chip fabricated in 497/597. Lectures
include MOS transistor fundamentals, automatic test pattern generation,
design for testability, builtin test techniques, design simulation at
switch and gate levels, fault simulation at behavioral levels, software
tools and equipment for testing, semicustom VLSI chips, wafer scale
integration, and analog circuit test and diagnosis.
Prerequisite: CSE497/597 or permission of instructor.
 553 Software Development Project Management:
Methods for managing technicallyoriented software development projects.
Topics covered include software organization, cost estimating, scheduling
and reporting, configuration management, quality assurance, productivity
tools, reviews, audits, testing, and documentation.
(Offered irregularly.)
 555 Introduction to Pattern Recognition:
Foundations of pattern recognition algorithms and machines, including statistical
and structural methods. Data structures for pattern representation, feature discovery
and selection, classification vs. description, parametric and nonparametric classification,
supervised and unsupervised learning, use of contextual evidence, clustering, recognition
with strings, and small samplesize problems. programming projects.
Prerequisite: 2 years of college mathematics, including probability theory.

560 Data Models and Query Languages:
The course focuses on the issues of data models and query languages
that are relevant for building presentday database applications.
The following topics are addressed: EntityRelationship
data model, relational data model, relational query languages, object
data models, constraints and triggers, XML and Web databases, the
basics of indexing and query optimization.
Prerequisite: Java programming skills, knowledge of
fundamental data
structures and algorithms, knowledge of discrete math concepts.
 561 Design and Performance Analysis of Computer Systems:
Introduces performance analysis techniques for the application of high
performance computer system design. Advanced topics in computer architecture
and computer communications are examined via simulation and analytical
modeling. Develops mathematical tools based on stochastic processes,
discrete mathematics, combinatorics and queuing theory to study the
behavior of computer systems.
 562 Database Systems:
The basic design principles of systems managing very large databases
will be discussed. Topics will include: database design, data models,
integrity constraints, query languages, database file organization,
indexing, query processing and optimization, transaction processing.
Students will implement their own prototype database system.
Prerequisites: Solid background in programming and data structures.
Significant programming experience in C, C++, or Java.
 563 Knowledge Representation:
An introduction to the issues and techniques of representing
knowledge and belief in a computer system; syntax
and semantics of various representational formalisms including
predicate logic, semantic networks, and frames. Classic
papers will be read and current research issues discussed.
Prerequisite: Knowledge of a highlevel programming language
(such as Lisp) and CSE 305:
Cross listed with CSE463.
 565 Computer Security:
This course is intended to give an indepth understanding of computer
system security. Security encomp asses hacker challenges, malicious
breakins and insider threats. Topics include: Basic Encryption and
Decryption  RivestShamirAdelman (RSA) Encryption, El Gamal and
Digital Signature Algorithms, Hash Algorithms, Kerberos; Program
Security  Virus, Trojan Horse, Malicious Code, Covert Channels; Design
of Trusted OS; Network Security  Firewalls, Tripwires; Intrusion
Detection  Audit TrailBased Schemes, Concurrent Intrusion Detection.
Prerequisite: CSE531; permission of instructor.
 567 Computational Linguistics:
Introduction to computational models of understanding
natural languages. Syntactic and semantic parsing,
generation, knowledgerepresentation techniques.
Prerequisite: Knowledge of a highlevel programming language
(such as Lisp) and CSE 305:
Cross listed with CSE467.
 573 Introduction to Computer Vision and Image Processing:
This course is an introduction to those areas of Artificial Intelligence
that deal with fundamental issues and techniques of computer vision and
image processing. The emphasis is on physical, mathematical, and
informationprocessing aspects of the vision. Topics to be covered include
image formation, edge detection and segmentation, convolution, image
enhancement techniques, extraction of features such as color, texture,
and shape, object detection, 3D vision, and computer vision system
architectures and applications.
Prerequisite: CSE 305 or permission of instructor.
Cross listed with CSE 473.
 574 Introduction to Machine Learning:
Involves teaching computer programs to improve their performance through guided training and unguided experience. Takes both symbolic and numerical approaches. Topics include concept learning, decision trees, neural nets, latent variable models, probabilistic inference, time series models, Bayesian learning, sampling methods, computational learning theory, support vector machines, and reinforcement learning.
Prerequisite: CSE 250 and any of EAS 305/308, STA 401/421, MTH 309; or permission of instructor.
 575 Introduction to Cognitive Science:
An introduction to cognitive science, an interdisciplinary approach to the
computational study of human cognition. Methodology, assumptions, and
research problems of cognitive science and such cognitivescience
disciplines as anthropology, artificial intelligence, linguistics,
neurosciences, philosophy, psychology, etc. Emphasis will be placed on joint
efforts of these disciplines in investigating issues in the nature of the
mind, intelligence, language, perception, memory, etc. Students will be
encouraged to participate in colloquia sponsored by the Center for Cognitive
Science.
Prerequisite: permission of instructor.
Cross listed with APY526, CDS575, LIN 575, PHI575, PSY575.
 576 Fault Diagnosis:
An introduction to modeling of digital computer reliability, availability
and maintainability. Fault diagnosis and detection of combinational and
sequential logic circuits. Totally selfchecking checkers. Design for
testability. Random testing and compressed data testing. Techniques for
system level fault diagnosis.
Prerequisite: ECE 476 or permission of instructor.
 586 Largescale Distributed Systems:
This course addresses some of the fundamental challenges in the design,
implementation and deployment of large scale distributed systems including
connection establishment, event handling, interprocess communication,
storage management, static and dynamic component configuration, concurrency
and synchronization. It will also cover issues related to distributed
objects such as mobility, security, naming, location, evolution, autonomy
and negotiations. Possible solutions will be analyzed and expressed using
objects, processes, services, components and frameworks at various levels
of granularity. This course focuses on practical solutions using the latest
serverside and middleware technology.
Prerequisites: CSE505/CSE305 or equivalent;
Good foundation in problem solving, design representation,
and objectoriented design methodology and application.
 588 Pattern Recognition and Scene Analysis:
Statistical pattern recognition: Bayes decision theory, parameter
estimation, nonparametric techniques, linear discriminant functions, and
clustering. Syntactic pattern recognition. Neural networks. Applications of
pattern recognition to remote sensing, seismic wave interpretation, visual
inspection, medical data analysis, and character and speech recognition.
Prerequisite: graduate standing.
 589 Modern Networking Concepts:
This course introduces basic elements of modern computer and
telecommunication networks. a hybrid fivelayer reference model resembling
the popular TCP/IP model and the OSI's seven layer model will be discussed.
In each layer, the stateoftheart hardware and software technologies are
introduced. These include, for example, fiberoptic and mobile/cellular
communications in the physical layer; wavelength/time division multiple
access protocols in the data link layer; traffic shaping and policing in the
network layer; ATM adaptation layer protocols in the transport layer, and
finally, network security and multimedia communications in the application
layer.
Prerequisite: CSE/MTH 192, CSE 250, and CSE 341.
 590 Computer Architecture:
This course will provide an indepth understanding of the inner
workings of modern digital computer systems and tradeoffs present at
the hardwaresoftware interface. Topics include: computer abstractions
and technology, cost and performance analysis, instruction set
architecture, computer arithmetic, datapath and controller design,
pipelining, memory systems, inputoutput systems, and interrupts and
exceptions. Projects requiring the use of software tools like the SPIM
simulator for MIPS R2000/R3000 RISC processors and the Verilog hardware
description language will be given to help crystallize concepts
presented in class.
Prerequisite: Introductory digital logic design.

593 Introduction to VLSI Electronics:
Very large scale integration (VLSI) design principles, CMOS gates, layout,
simulation, CAD tools, semicustom integrated circuit chip design, project
required.
Prerequisite: permission of instructor.
Crosslisted with CSE493.
 596 Introduction to the Theory of Computation:
Turing machines, RAMs, decidable and computably enumerable sets,
partial computable functions; ChurchTuring thesis; undecidable
problems, diagonalization, Recursion Theorem, Rice's Theorem,
Kleene Normal Form Theorem. Time and space complexity bounds,
complexity classes, Savitch's Theorem, NL = coNL. NPcompleteness,
CookLevin Theorem, polynomial hierarchy, complete problems for
other complexity classes.
Prerequisite: Discrete mathematics and/or courses in mathematics
that involve proofs of theorems. Undergraduate course in finite
automata theory is recommended.
 598 Graduate Internship:
For use by graduate students requiring academic credit for practical
training.
 600 Project Guidance:
MS degree project guidance. Credit Hours: 03.
Prerequisites: permission of instructor.

601 Data Mining and Bioinformatics:
This course focuses on data mining and data warehousing
techniques and their applications in bioinformatics.
The course explains the broad scope of bioinformatics,
discusses the theory and practice of computational methods and
software, and provides insight that will help students gain a
comprehensive understanding of the bioinformatics field.
Major topics include biological data storage, retrieval,
and modeling; data mining literature for biology;
distributed and parallel biological databases; visualization
tools for biological data analysis; statistical methods for gene
expression analysis; molecular sequence analysis; proteinprotein
interaction analysis; identification and classification of genes
and regulatory elements; and biological information integration,
interoperability, and bioontology.
 603 Parallel & Distributed Processing:
This course is meant for anyone interested in the design and use of
advanced computer systems of today and the future. The course will
cover principles of modern parallel and distributed systems embodied in
several current systems. There will be programming assignments
involving the use of these parallel systems for application problem
solving using one or more parallel programming environments (PVM, MPI,
Java). Course coverage includes: introduction to parallel computing,
basic communication operations, performance and scalability analysis of
parallel systems, parallel algorithms for dense matrix computations,
sorting, and searching, load balancing, applications of parallel processing
in different application domains, architectures of sharedmemory
multiprocessors and scalable multiprocessors, interconnection network
design, and fault tolerance in parallel systems.
Prerequisite: Introductory computer architecture and algorithms knowledge
useful.
 604 Fault Tolerant Computing:
Basic frameworks of fault tolerance, dynamic and hybrid redundancy.
Practical fault tolerant systems. Intermittent fault models, concurrent
testing, builtin testing, recovery block scheme and rollback recovery.
Fault tolerant multiprocessors. Performance evaluation of fault tolerant
systems.
Prerequisite: graduate standing and permission of instructor.
 605 Advanced Concepts in Programming Languages:
This course will discuss advanced concepts in the design and implementation
of programming languages. It is the second in a twocourse graduatelevel
sequence on programming languages  the first being CSE 505. Advanced
language concepts will be drawn from type systems, objectoriented,
functional, and logic programming languages. the course will also cover
integration of two or more programming paradigms as well as implementation
issues underlying these paradigms. Indepth understanding of these concepts
will be gained through programming projects.
Prerequisite: CSE 505 or equivalent.
 606 Parallel Architecture:
The organization of parallel computer systems. Different parallel
architectures, such as SIMD and MIMD parallel computers, sharedmemory and
distributedmemory computers, as well as dataflow architectures, will be
discussed. Concepts will be illustrated by discussing some existing systems.
Prerequisite: CSE 590 or equivalent, CSE 515.
 616 Multiagent Systems:
Multiagent systems is the study, construction, and application of
systems in which several interacting software (or software and human)
agents pursue some set of goals or some set of tasks. The course covers
agent architectures; multiagent problemsolving and planning; multiagent
commuication; multiagent search, multiagent learning; reasoning about
actions, plans, beliefs and knowledge; coordination; cooperation and
competition; teamwork; and multiagent decisionmaking. Application
examples are presented in ecommerce, scheduling, robotics, control,
information retrieval, manufacturing and logistics.
(Offered irregularly.)
Prerequisite: Introductory 500 level AI course.
 620 Advanced Network Concepts:
 622 Computer Systems Theory:
Theoretical results in performance evaluation of computer systems introduced
through synthetic and analytic models of system structure; techniques for
verifying properties of concurrent processes; issues in multiprogramming
operating system mechanism such as naming and binding, protection,
reliability, and recovery.
Prerequisite: CSE 590 and CSE 521.

626 Data Mining:
Introduction to data mining and knowledge discovery in databases: the
identification of valid, novel, potentially useful, and ultimately
understandable patterns in large data repositories. Studies
its principles, algorithms, implementations, and applications.
(Offered irregularly.)
Prerequisite: CSE 562.
 632 Analysis of Algorithms II:
This course is a continuation of CSE 531. Algorithms for solving problems in
graph theory, computational geometry; approximation algorithms etc.
Prerequisite: CSE 531.
 633 Parallel Algorithms:
The design and analysis of parallel algorithms. Time and space complexity of
problems from graph theory, computational geometry, combinatorial
algorithms, and image processing. Models of computation include pram, mesh,
pyramid, meshoftrees, hypercube, etc.
Prerequisite: CSE 531 and CSE 590.
 634 Advanced Topics in Multimedia Systems:
An introduction to 3D imaging and graphics, image understanding paradigms,
mathematical morphology, object representation and manipulation techniques
using hierarchical and heterarchical representations. Specialized
architectures for 3D image processing.
Prerequisite: permission of instructor.
 635 Multimedia Information Retrieval:
This course will cover both traditional, textbased information retrieval
(IR) techniques, as well as newer techniques for multimedia information
retrieval. Although textbased IR is a wellestablished field, the area of
multimedia IR is an emerging discipline. Techniques for automatically
analyzing/extracting content from other modalities such as images, video
and speech will be explored. In each case,
we will discuss contentanalysis techniques as well as indexing and
retrieval techniques will be examined. Various case studies will be
presented. The latter part of the course will focus on techniques for
combining information obtained from various media sources in both
the indexing and retrieval stages. This includes multimodal query formulation/
decomposition, relevance judgment/feedback, evaluation techniques, as well
as convenient user interfaces for multimedia querying.
Prerequisite: basic college mathematics (calculus, linear algebra, etc.).
a graduatelevel course in Artificial Intelligence; preliminary image
processing and/or computer vision knowledge (e.g. edge detection,
pixel grouping, etc.), and NLP basics (e.g., syntax, semantics) would
be helpful, but not essential.

636 Data Integration:
This course surveys selected theoretical and practical issues arising in
data integration.
Data integration has been recognized as a research topic of great practical
importance. The availability of integrated data from multiple, independent,
heterogenous, data sources is crucial for many applications. Data
integration
requires combining and matching information in different sources and
resolving a variety of conflicts. XML is becoming a de facto
dataintegration standard. With the number of data sources growing very
quickly,
data integration is bound to become even more important in the future.
Prerequisite: CSE 562 or equivalent.
 641 Algorithmic Aspects of VLSI:
Algorithms for a variety of computational problems that arise in the
physical design, synthesis, and logic design, simulation, and testing of
very large scale integrated (VLSI) circuits will be discussed. These
algorithms are used in the design of computer aided design (CAD) tools for
VLSI circuits.
Prerequisite: CSE 531 or permission of the instructor.
 642 Techniques of Artificial Intelligence:
A second graduate course in AI covering programming techniques for AI and
surveying AI topics not covered in other graduatelevel courses. Topics will
vary according to instructor and student interests.
(Offered irregularly.)
Prerequisite:
Depends on the topic; typically CSE 563 or 567 or 573 or 574.
 643 Parallel Compilers:
Implementation of programming languages on parallel machines: programming
constructs for implicit and explicit parallelism, dependency analysis,
partitioning, optimization, and code generation for parallel machines.
Prerequisite: CSE 515 and CSE 543.
 646 Computer Networks:
In Part I, we will discuss issues in pointtopoint communication where the
communicating devices are directly connected. In Part II, we assume that the
communicating devices may or may not be directly connected and are part of a
network of devices. We will discuss architectural issues in this context, as
well as issues pertaining to routing data, congestion control, communication
protocols involved, etc. In Part III, we assume that application programs
running on various devices are communicating among themselves. Protocol
design and architectural issues will be the primary focus of this part.
(Offered irregularly.)
 651 Semantics of Programming Languages:
This is an advanced course in the semantics of programming languages and the
mathematical theory of program correctness. Various program semantics,
notably operational and denotational, are studied and compared. Then formal
systems for a number of programming languages are studied and, on the basis
of the semantics, their soundness and completeness proved.
(Offered irregularly.)
Prerequisite: CSE 551 or a strong background in mathematics, including some
formal logic.
 655 Introduction to Pattern Recognition:
Foundations of pattern recognition algorithms and machines, including
statistical and structural methods. Data structures for pattern
representation, feature discovery and selection, classification vs.
description, parametric and nonparametric classification, supervised and
unsupervised learning, the use of contextual evidence, clustering, and small
samplesize problems. Programming projects will include handling of
pictorial and textual patterns.
Prerequisite: 2 years of college mathematics, including probability theory.
 661 Document Analysis and Recognition:
Application of techniques of pattern recognition, image analysis and
naturallanguage understanding to the task of automatic reading of text.
Topics: Reading theories, segmentation of text, character and word
recognition, string matching. Some examples of concentration areas:
machineprinted document analysis, recognition of offline (previously
recorded) text on paper.
Prerequisite: CSE 572 and CSE 655, or permission of instructor.
 663 Advanced Topics in Knowledge Representation:
A second graduate course in knowledge representation and
reasoning covering such topics as automated theorem proving,
semantic network implementation, etc., and surveying knowledge
representation and reasoning topics not covered
in other graduatelevel courses. Topics will vary
according to instructor and student interests.
Prerequisites: CSE563 or CSE572 or CSE/LIN 567
or permission of instructor; graduate standing.
 666 Introduction to Image Analysis:
Survey of techniques for computer processing and analysis of images produced
by modern scanning devices. Representation of 2 and 3dimensional images,
orthogonal transformations, boundary detection, segmentation, computational
geometry and topology, shape characterization, timevarying images,
description of spatial organization. Topics will be illustrated by
programming projects in computer vision and computed tomography.
Prerequisite: Linear algebra. CSE 655 will be helpful.
 667 Advanced Topics in Computational Linguistics:
A second graduate course in computational linguistics covering
such topics as parsing, computational semantics, discourse
processing, etc., and surveying computationallinguistics topics
not covered in other graduatelevel courses. Topics will vary
according to instructor and student interests.
Prerequisites: CSE/LIN 567 or permission of instructor;
graduate standing.
 668 Animate Vision Principles for 3D Image Sequences:
Conventional approaches to computer vision based on complete
reconstruction of the contents of arbitrary single images
have met with limited success. More recently, elements of
biological vision systems such as goaldirected sensing behaviors,
reliance on image sequences and motion, and the importance
of stereopsis have been applied to machine vision systems with
considerable success. In this course the design of computer
vision systems in light of animate vision principles is
developed.
Prerequisite: CSE573 Introduction to Computer Vision
and Image Processing.
 673 Computational Vision:
Examines the task of making computers ``see,'' including: image formation,
lowlevel processes for extracting the basic properties of images, image
analysis, computational theories of human/machine perception, geometric
reconstruction, scene analysis, and modelbased vision systems.
Prerequisite: None (CSE 573 is not required).
 674 Computer Learning and Human Information Processing:
Techniques of computer learning programs. Perception, the human visual and
auditory systems, neural information processing, pattern recognition and
attention, memory, representation of knowledge, language, learning and
cognitive development, problem solving and decision making, and the
processes of thought.
(Offered irregularly.)
Prerequisite: CSE 574.

course number:
680 Computational Geometry:
This course introduces students to the essentials of Computational
Geometry and presents an indepth study of the fundamental techniques
used in this field. Topics to be covered include geometric searching,
convex hulls, proximity computations, intersections, graph drawing,
and other special topics. Applications to problems from other fields
such as Computer Graphics, Computer Vision, Software Engineering,
Databases, Robotics, and Geographical Information Systems will also be
discussed. (Formerly, CSE 581.)
Prerequisite:
CSE 531, or instructor's permission
 681  682 Formal Languages III:
Languages and their representation; regular, contextfree,
contextsensitive, and type0 grammars; characterization by automata used as
recognizers; complexity issues in formal languages; decision problems; LR(k)
grammars; biologically motivated formal language theory.
(Offered irregularly.)
Prerequisite: CSE 596.
 691 Advanced VLSI Design:
Advanced techniques in VLSI design, design for
performance, physical design automation, synthesis, analog and mixedmode
design techniques, field programmable gate arrays, technology and
architectural issues in VLSI, special purpose VLSI design.
Prerequisite: CSE 497/597 or equivalent.

course number:
694 Graph and Combinatorial Algorithms:
Basic topics in graph and combinatorial theory. Design and analysis of
serial and parallel algorithms in these areas. Enumeration, generating
functions, inclusionexclusion partitions, connectivity and distance,
planarity, sorting, tree construction and searching, network flow matching
problems, NPcompleteness, etc. (Formerly, CSE 594.)
Prerequisite: CSE 531.
 695 Theory of Computation:
Models of computation, basic recursive function theory, general
computational complexity theory, models of feasible computation,
exponentially and superexponentially difficult problems, complete problems
including NPcomplete problems, polynomial time reduction of problems.
(Offered irregularly.)
Prerequisite: CSE 596.

696 Computational Complexity:
Modes of computation; complexity classes and complexity measures;
compression, speedup, relations between standard classes, hierarchy results;
nondeterminism and NPcompleteness; relative computability, polynomial
hierarchy, NPhardness; parallel and circuit complexity; probabilistic
complexity.
Prerequisite: CSE 596.
 697  698 Recursive Function Theory III:
Models of algorithms, universal programming systems, abstract program
structure, algorithmic unsolvability, recursively enumerable sets (creative,
simple, hypersimple, maximal), reducibility and degrees of unsolvability,
Post's Problem, arithmetical hierarchy, limiting recursion, recursive
operators, recursion theorems and selfreference in machines, priority
arguments, abstract dynamic complexity measures, ordinary and operator
speedup theorems, union and honesty theorems, abstract program size
measures, tradeoffs between complexity and size of programs, subrecursive
programming systems, learning and inductive inference machines, research
topics.
Prerequisite: CSE 596 or permission of the instructor.
 699 Supervised Teaching:
May not be counted toward the 30 hours for the M.S. or the 72 hours for the
Ph.D.
Prerequisite: Assignment as Teaching Assistant.
 700 Independent Study (13 credits):
Prerequisite: Permission of instructor.
 701  798 Computer Science Seminars:
Prerequisite: Permission of instructor.
 799 Supervised Research (13 credits):
Prerequisite: Permission of instructor.
 800 Thesis Guidance (112 credits):
Prerequisite: Permission of instructor.
