CS 521a Compilers and Interpreters Zhong Shao
MWF 1:30-2:20
Compiler organization and implementation: lexical analysis, formal syntax
specification, parsing techniques, execution environment, storage
management, code generation and optimization, procedure linkage and
address binding. The effect of language-design decisions on compiler
construction.
After Computer Science 323a.
CS 522b Operating Systems Zhong Shao
MWF 1:30-2:20
The design and implementation of operating systems. Topics include
synchronization, deadlock, process management, storage management, file
systems, security, protection, and networking.
After Computer Science 323a.
CS 524a Parallel Programming Techniques David Gelernter
(Not taught in 1999-2000)
Software structures, architectures and algorithms for parallel and
distributed applications, focusing on coordination frameworks for
asynchronous concurrency (on the code, that is, that creates and manages
multiple processes and performs the inter-process communication necessary
to create integrated ensembles). Coordination languages and
program-development environments. The fast-changing WAN-software
picture. Parallel and distributed programming exercises on LANs.
After Computer Science 323a.
Taught in alternate years.
CS 525a Theory of Distributed Systems Arvind Krishnamurthy
TTh 1:00-2:15
Models of asynchronous distributed computing systems. Fundamental concepts
of concurrency and synchronization, communication, reliability, topological
and geometric constraints, time and space complexity, and distributed
algorithms.
After Computer Science 323b and 365b.
Taught in alternate years.
CS 529b Functional Programming Tim Sheard
(Not taught in 1999-2000)
Methods for synthesizing functional programs from formal specifications and
verifying correctness properties of programs. Topics include higher order
functions, pattern-matching, abstract algebraic datatypes, polymorphic types,
advanced typing issues such as type classes and higher-order modules,
lazy/eager evaluation, equational reasoning, and realization of effects via
continuations and monads. The functional languages Haskell and/or ML are
used in the course.
After Computer Science 201a or b and 223b.
Taught in alternate years.
CS 530b Formal Semantics Valery Trifonov
MWF 10:30-12:20
Introduction to formal approaches to programming language design and
implementation. Topics include the lambda-calculus, type theory, denotational
semantics, type-directed compilation, higher-order modules, and application of
formal methods to systems software and internet programming.
After Computer Science 202a and 323a.
Taught in alternate years.
CS 537b Introduction to Database Systems Michael Fischer
MWF 11:30-12:20
An introduction to database systems. Data modeling. The relational model
and the SQL query language. Relational database design, integrity
constraints, functional dependencies, and normal forms. Object-oriented
databases. Implementation of databases: file structures, indexing, query
processing, transactions, concurrency control, recovery systems, and
security.
After or concurrent with Computer Science 323a and 365b.
CS 539b/E&AS 907b Computer Systems Dana Henry
MWF 11:30-12:20, lab HTBA
The organization of computer systems as hardware and software systems.
Instruction-set architecture, assembly programming, computer arithmetic,
data-path architecture and control, pipelining, memory hierarchy. Concepts
illustrated by exploration of an instructional RISC microprocessor.
After Computer Science 338a/Electrical Engineering 348a
or Computer Science 323a.
CS 540a Numerical Computation I Vladimir Rokhlin
TTh 2:30-3:45
Algorithms for numerical problems in the physical, biological, and social
sciences: solution of linear and nonlinear systems of equations,
interpolation and approximation of functions, numerical differentiation and
integration, optimization.
After Computer Science 112a or b or an equivalent
introductory programming course; Mathematics 120a or b;
and Mathematics 222b or 225a or b, or Computer
Science 202a.
CS 560b Theoretical Methods in Computer Science René Peralta
TTh 2:30-3:45
The course offers an introduction to the main areas of theoretical computer
science. Its goal is to provide a theoretical background for doing research
in computer science.
The topics to be covered can be divided into three main areas:
CS 563a Computational Geometry Katalin Vesztergombi
(Not taught in 1999-2000)
An introduction to the mathematical and computational background for
efficient geometric computation, and to basic algorithms for the most
important tasks in computational geometry, with applications in image
processing and computer graphics.
Prerequisites: linear algebra (Mathematics 222a or b, Mathematics 225a
or b, or equivalent), discrete mathematics (Computer Science 202a or
Mathematics 244b), and data structures (Computer Science 223b).
CS 567a Cryptography and Computer Security Michael Fischer
MWF 10:30-11:20
A survey of such private and public key cryptographic techniques as
DES, RSA,
and zero-knowledge proofs, and their application to problems of maintaining
privacy and security in computer networks. The main focus is on technology,
but the course will also consider such societal issues as balancing
individual privacy concerns against the needs of law enforcement,
vulnerability of societal institutions to electronic attack, export
regulations and international competitiveness, and development of secure
information systems.
Some programming may be required. After Computer Science 202a
and 223a.
CS 568b Algorithmic Techniques for Bio-Informatics Ming Yang Kao
MWF 2:30-3:20
A genome is a set of DNA molecules that encode the entire genetic
information of a species. A major goal of bio-informatics is to determine
the structure of the human genome and those of other species. This
interdisciplinary course focuses on basic problems that arise from
sequencing and comparing DNA at various levels. As new technologies of
processing DNA become available, different problems will take the center
stage. For this reason, this course emphasizes fundamental algorithmic
techniques instead of problems. These techniques have proven useful for
many current problems and are chosen to provide a foundation upon which
further techniques can be developed to tackle future problems.
After Computer Science 365b or with permission of instructor.
CS 569a Randomized Algorithms René Peralta
MWF 11:30-12:20
Beginning with an introduction to tools from probability theory including
some inequalities like Chernoff bounds, the course will cover randomized
algorithms from several areas: graph algorithms, algorithms in algebra,
approximate counting, probabilistically checkable proofs, and matrix
algorithms.
After Computer Science 365b; Computer Science 460b or
solid background in computer science and mathematics desirable.
CS 570a Artificial Intelligence Drew McDermott
MWF 2:30-3:20
An introduction to artificial intelligence research, focusing on reasoning
and perception. Topics include knowledge representation, predicate calculus,
temporal reasoning, vision, robotics, planning, and learning.
After Computer Science 201a or b and 202a.
CS 574b Autonomous Systems Greg Hager
(Not taught in 1999-2000)
The goal of this course is to acquaint students with the basic principles of
building a purposeful autonomous robotic system. Lectures will cover the
theory and practice of control systems, sensors, representation of the
environment, and planning. Students will construct a simulated autonomous
system, and also be given the opportunity to work with a real mobile robot.
After Computer Science 323a or equivalent.
Taught in alternate years.
CS 575b Computational Vision and Biological Perception Steven Zucker
TTh 1:00-2:15
We provide an overview of computational vision with a biological emphasis.
The course is suitable as an introduction to biological perception for
computer science and engineering students, as well as an introduction to
computational vision for mathematics, psychology, and physiology students.
After Mathematics 120a or b and Computer Science
112a or b, or with permission of instructor.
CS 576b/E&AS 914b Computer Vision Peter Belhumeur
TTh 9:00-10:15
Computational accounts of visual perception: image formation, image
transformations, line and curve extraction, segmentation, shape, stereo,
motion, texture, and model-based object recognition. A review of relevant
mathematical tools, algorithms, and results from studies of human vision.
For juniors and seniors majoring in one of the engineering
sciences or in computer science. Linear algebra and one higher-level
programming language required.
CS 577b Neural Networks for Computing Will Miranker
TTh 11:30-12:45
Artificial neural networks as a computational paradigm studied with
application to problems in associative memory, learning, pattern
recognition, perception, robotics, and other areas. Models for the
dynamics of neurons and methods such as learning for designing neural
networks will be developed. Concepts, designs, and methods compared and
tested in software simulation. Brain and consciousness studies are
optional topics. Programming required.
Knowledge of linear algebra and calculus required. After Computer Science
223b or with permission of the instructor.
CS 660b Number-theoretic Foundations of Cryptography René Peralta
HTBA
Review of basic concepts of abstract algebra and computational complexity.
Basic number-theoretic algorithms. Intractability assumptions vs.
concrete complexity. Zero-knowledge protocols, discrete proofs. Elliptic
curve cryptography. Applications.
After Computer Science 467a.
CS 690a or b Independent Project By arrangement with faculty
CS 691a or b Independent Project By arrangement with faculty
CS 692a or b Independent Project By arrangement with faculty
Individual research for students in the M.S. program. Requires a faculty
supervisor and the permission of the Director of Graduate Studies.
CS 820a or b Directed Readings in Programming Languages and Systems By arrangement with faculty
CS 840a or b Directed Readings in Numerical Analysis By arrangement with faculty
CS 860a or b Directed Readings in Theory By arrangement with faculty
CS 870a or b Directed Readings in Artificial Intelligence By arrangement with faculty