next up previous contents
Next: 7.2 Related Courses in Up: 7. Courses Previous: 7. Courses

7.1 Graduate Courses

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:

After Computer Science 365b.

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


next up previous contents
Next: 7.2 Related Courses in Up: 7. Courses Previous: 7. Courses Drew McDermott
2000-01-18