Graduate School of Arts and Sciences Bulletin of Yale University
 
Introduction
Departments and Programs
Research Institutes
Policies and Regulations
Financing Graduate School
General Information
   

Computer Science

A. K. Watson Hall, 432.1246
M.S., M.Phil., Ph.D.

Chair
Paul Hudak

Director of Graduate Studies
Drew McDermott (508 AKW, 432.1283, drew.mcdermott@yale.edu)

Professors
Dana Angluin, Ronald Coifman (Mathematics), Julie Dorsey, Stanley Eisenstat, Joan Feigenbaum, Michael Fischer, David Gelernter, Paul Hudak, Ravindran Kannan, Drew McDermott, A. Stephen Morse (Electrical Engineering), Zhong Shao (on leave), Martin Schultz, Abraham Silberschatz, Steven Zucker

Associate Professor
James Aspnes (on leave)

Assistant Professors
Daniel Friendly (Electrical Engineering), Mark Gerstein (Molecular Biophysics & Biochemistry), Arvind Krishnamurthy, Yorgis Makris (Electrical Engineering), Brian Scassellati, Carsten Schürmann (on leave), Yang Richard Yang

Adjunct Professor
Willard Miranker

Lecturer
Robert Dunne

Fields of Study
Artificial intelligence (vision, robotics, planning, computational neuroscience, neural networks); programming languages and systems (functional programming, parallel languages and architectures, programming environments, formal semantics, software engineering, compilation techniques, modern computer architecture, theorem proving and proof assistants, type theory/systems, logical frameworks, and meta-programming); scientific computing (numerical linear and nonlinear algebra, numerical solution of partial differential equations, mathematical software, parallel algorithms); theory of computation (algorithms and data structures, complexity, distributive systems, learning, online algorithms, graph algorithms, geometric algorithms, fault tolerance, reliable communication, cryptography, security, and electronic commerce); and topics of discrete mathematics with application to computer science (combinatorics, graph theory, combinatorial optimization).

Research Facilities
The department operates a high-bandwidth, local-area computer network based mainly on distributed workstations and servers, with connections to worldwide networks. Workstations include Sun SPARCstations and Workstation PCs (NT and/or Linux). A vision laboratory contains specialized equipment for vision and robotics research. Various printers, including color printers, as well as image scanners, are also available. The primary educational facility consists of thirty-seven PC workstations supported by a large Intel PC server. This facility is used for courses and unsponsored research by computer science majors and first-year graduate students. Access to computing, through both the workstations and remote login facilities, is available to everyone in the department.

Special Admissions Requirements
Applicants for admission should have strong preparation in mathematics, engineering, or science. They should be competent in programming but need no computer science beyond that basic level. The GRE General Test and a pertinent Subject Test are required.

Special Requirements for the Ph.D. Degree
There is no foreign-language requirement. To be admitted to candidacy, a student must: (1) pass twelve courses (including CPSC 690 and CPSC 691) with at least two grades of Honors, the remainder at least High Pass, including three advanced courses in an area of specialization; (2) successfully complete a research project in CPSC 690, 691, and submit a written report on it to the faculty; (3) pass written comprehensive examinations covering basic material in the major subareas of computer science; (4) pass a qualifying examination in an area of specialization; (5) be accepted as a thesis student by a regular department faculty member; (6) serve as a teaching assistant for two terms; and (7) submit a written dissertation prospectus, with a tentative title for the dissertation. At least six courses and two parts of the comprehensive examination must be completed by the end of the first year, and the remainder of the first four requirements must normally be completed by the end of the second year. In order to gain teaching experience, all graduate students are required to serve as teaching assistants for two terms during their first three years of study. All requirements for admission to candidacy must be completed prior to the end of the third year.

Master's Degrees
M.Phil. See Graduate School requirements.

M.S. (en route to the Ph.D.). To qualify for the M.S., the student must pass eight courses at the 500 level or above from an approved list. An average grade of at least High Pass is required, with at least one grade of Honors.

Master's Degree Program. Students may also be admitted to a terminal master's degree program directly. The requirements are the same as for the M.S. en route to the Ph.D. This program is normally completed in one year, but a part-time program may be spread over as many as four years.

A brochure providing additional information about the department, faculty, courses, and facilities is available from the Graduate Coordinator, Department of Computer Science, Yale University, PO Box 208285, New Haven CT 06520-8285; e-mail, cs-admissions@cs.yale.edu.

Courses
CPSC 521au, 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.

CPSC 522bu, Operating Systems.  Arvind Krishnamurthy. MWF 1.30–2.20
The design and implementation of operating systems. Topics include synchronization, deadlocks, process management, storage management, file systems, security, protection, and networking.

[CPSC 524au, Parallel Programming Techniques.]  

CPSC 525au, Theory of Distributed Systems.  Arvind Krishnamurthy. MWF 11.30–12.20
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.

[CPSC 529au, Functional Programming.]  

CPSC 53oau, Formal Semantics.  Paul Hudak. TTh 1–2.15
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.

[CPSC 533b, Computer Networks.]  

CPSC 534bu, Mobile Computing and Wireless Networking.  Yang Richard Yang. MW 2.30–3.45
An introduction to the principles of mobile computing and its enabling technologies. Topics include principles of mobile computing; wireless systems; information management; location-independent and location-dependent computing models; disconnected and weakly connected operation models; human-computer interactions; mobile applications and services; security; power management; and sensor networks.

CPSC 537au, Introduction to Databases.  Abraham Silberschatz. MWF 10.30–11.20
An introduction to database systems. Data modeling. The relational model and the SQL query language. Relational database design, integrity constraints, functional dependencies, and natural forms. Object-oriented databases. Implementation of databases: file structures, indexing, query processing, transactions, concurrency control, recovery systems, and security.

CPSC 539bu, Computer Systems.  Staff. MW 2.30–3.45
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. Also ENAS 907bu.

CPSC 54obu, 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.

[CPSC 555bu, Economics and Computation.]  

CPSC 557au, Sensitive Information in a Wired World.  Joan Feigenbaum. TTh 2.30–3.45
An examination of issues of ownership, control, privacy, and accuracy of the huge amount of sensitive information about people and organizations that is collected, stored, and used by today’s ubiquitous information systems. Readings in research papers that explore both the power and the limitations of existing privacy-enhancing technologies such as encryption and “trusted platforms.”

CPSC 56obu, Theoretical Methods in Computer Science.  Ravindran Kannan.  TTh 1–2.15
Basic topics in theoretical computer science: machine models; fundamental algorithms and their design, implementation, and analysis; data structures; the complexity of computation, communication, and data storage.

CPSC 564bu, Quantum Computing.  Willard Miranker. TTh 11.30–12.45
A tutorial introduction to quantum mechanics and computer science in the context of quantum computation. Hardware (quantum gates and data representation) and algorithms (the quantum Fourier transform, the Shor factorization algorithm, and the Grover search algorithm) are described. Discussion of topics for research.

CPSC 521au, 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.

CPSC 522bu, Operating Systems.  Arvind Krishnamurthy. MWF 1.30–2.20
The design and implementation of operating systems. Topics include synchronization, deadlocks, process management, storage management, file systems, security, protection, and networking.

[CPSC 524au, Parallel Programming Techniques.]  

CPSC 525au, Theory of Distributed Systems.  Arvind Krishnamurthy. MWF 11.30–12.20
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.

[CPSC 529au, Functional Programming.]  

CPSC 53oau, Formal Semantics.  Paul Hudak. TTh 1–2.15
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.

[CPSC 533b, Computer Networks.]  

CPSC 534bu, Mobile Computing and Wireless Networking.  Yang Richard Yang. MW 2.30–3.45
An introduction to the principles of mobile computing and its enabling technologies. Topics include principles of mobile computing; wireless systems; information management; location-independent and location-dependent computing models; disconnected and weakly connected operation models; human-computer interactions; mobile applications and services; security; power management; and sensor networks.

CPSC 537au, Introduction to Databases.  Abraham Silberschatz. MWF 10.30–11.20
An introduction to database systems. Data modeling. The relational model and the SQL query language. Relational database design, integrity constraints, functional dependencies, and natural forms. Object-oriented databases. Implementation of databases: file structures, indexing, query processing, transactions, concurrency control, recovery systems, and security.

CPSC 539bu, Computer Systems.  Staff. MW 2.30–3.45
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. Also ENAS 907bu.

CPSC 54obu, 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.

[CPSC 555bu, Economics and Computation.]  

CPSC 557au, Sensitive Information in a Wired World.  Joan Feigenbaum. TTh 2.30–3.45
An examination of issues of ownership, control, privacy, and accuracy of the huge amount of sensitive information about people and organizations that is collected, stored, and used by today’s ubiquitous information systems. Readings in research papers that explore both the power and the limitations of existing privacy-enhancing technologies such as encryption and “trusted platforms.”

CPSC 56obu, Theoretical Methods in Computer Science.  Ravindran Kannan.  TTh 1–2.15
Basic topics in theoretical computer science: machine models; fundamental algorithms and their design, implementation, and analysis; data structures; the complexity of computation, communication, and data storage.

CPSC 564bu, Quantum Computing.  Willard Miranker. TTh 11.30–12.45
A tutorial introduction to quantum mechanics and computer science in the context of quantum computation. Hardware (quantum gates and data representation) and algorithms (the quantum Fourier transform, the Shor factorization algorithm, and the Grover search algorithm) are described. Discussion of topics for research.

Next: East Asian Languages and Literatures