Computer Science
PhD
In New Haven (USA)
Description
-
Type
PhD
-
Location
New haven (USA)
Professors Dana Angluin, James Aspnes, Dirk Bergemann,* Ronald Coifman,* Julie Dorsey, Stanley Eisenstat, Joan Feigenbaum, Michael Fischer, David Gelernter, Mark Gerstein,* John Lafferty,* Rajit Manohar,* Drew McDermott (Emeritus), Dragomir Radev, Vladimir Rokhlin,† Holly Rushmeier, Brian Scassellati, Martin Schultz (Emeritus), Zhong Shao, Avi Silberschatz, Daniel Spielman, Leandros Tassiulas,* Y. Richard Yang, Steven Zucker†
Facilities
Location
Start date
Start date
About this course
Algorithms and computational complexity, artificial intelligence, data networking, databases, graphics, machine learning, programming languages, robotics, scientific computing, security and privacy, and systems.
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 is required.There is no foreign language requirement . To be admitted to candidacy, a student must (1) pass ten 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) take six advanced courses in areas of general computer science; (3) successfully complete a...
Reviews
Subjects
- Computational
- Music
- Programming
- Engineering
- Systems
- Project
- Graphics
- Sound
- Algebra
- Calculus
- Design
- Biology
- Algorithms
- Operating Systems
- Internet
- Object-oriented training
- Networks
- Computing
- Networking
- Evaluation
Course programme
Courses
CPSC 522a, Operating Systems Zhong Shao
The design and implementation of operating systems. Topics include synchronization, deadlocks, process management, storage management, file systems, security, protection, and networking.
MW 2:30pm-3:45pm
CPSC 523b, Principles of Operating Systems Abraham Silberschatz
A survey of the underlying principles of modern operating systems. Topics include process management, memory management, storage management, protection and security, distributed systems, and virtual machines. Emphasis on fundamental concepts rather than implementation.
TTh 9am-10:15am
CPSC 524a, Parallel Programming Techniques Andrew Sherman
Practical introduction to parallel programming, emphasizing techniques and algorithms suitable for scientific and engineering computations. Aspects of processor and machine architecture. Techniques such as multithreading, message passing, and data parallel computing using graphics processing units. Performance measurement, tuning, and debugging of parallel programs. Parallel file systems and I/O.
MW 9am-10:15am
CPSC 527a or b, Object-Oriented Programming Staff
Object-oriented programming as a means to efficient, reliable, modular, reusable code. Use of classes, derivation, templates, name-hiding, exceptions, polymorphic functions, and other features of C++.
HTBA
CPSC 529b, Introduction to Human-Computer Interaction Marynel Vazquez
This course introduces students to the interdisciplinary field of human-computer interaction (HCI), with particular focus on human-robot interaction (HRI). The first part of the course covers principles and techniques in the design, development, and evaluation of interactive systems. It provides students with an introduction to UX design and user-centered research. The second part focuses on the emergent field of HRI and several other nontraditional interfaces, e.g., AR/VR, tangibles, crowdsourcing. The course is organized as a series of lectures, presentations, a midterm exam, and a term-long group project on designing a new interactive system. After CPSC 201 and 202 or equivalents. Students who do not fit this profile may be allowed to enroll with the permission of the instructor.
MW 2:30pm-3:45pm
CPSC 531a, Computer Music: Algorithmic and Heuristic Composition Scott Petersen
Study of the theoretical and practical fundamentals of computer-generated music. Music and sound representations, acoustics and sound synthesis, scales and tuning systems, algorithmic and heuristic composition, and programming languages for computer music. Theoretical concepts are supplemented with pragmatic issues expressed in a high-level programming language.
TTh 11:35am-12:50pm
CPSC 532b, Computer Music: Sound Representation and Synthesis Scott Petersen
Study of the theoretical and practical fundamentals of computer-generated music, with a focus on low-level sound representation, acoustics and sound synthesis, scales and tuning systems, and programming languages for computer music generation. Theoretical concepts are supplemented with pragmatic issues expressed in a high-level programming language. Prerequisite: ability to read music.
MW 11:35am-12:50pm
CPSC 533a, Computer Networks Yang Yang
An introduction to the design, implementation, analysis, and evaluation of computer networks and their protocols. Topics include layered network architectures, applications, transport, congestion, routing, data link protocols, local area networks, performance analysis, multimedia networking, network security, and network management. Emphasis on protocols used in the Internet.
TTh 1pm-2:15pm
CPSC 534b, Topics in Networked Systems Yang Yang
Study of networked systems such as the Internet and mobile networks which provide the major infrastructure components of an information-based society. Topics include the design principles, implementation, and practical evaluation of such systems in new settings, including cloud computing, software-defined networking, 5G, Internet of things, and vehicular networking.
MW 4pm-5:15pm
CPSC 537a, Introduction to Database Systems Abraham Silberschatz
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.
TTh 9am-10:15am
CPSC 539b, Software Engineering Ruzica Piskac
Introduction to building a large software system in a team. Learning how to collect requirements and write a specification. Project planning and system design. Increasing software reliability: debugging, automatic test generation. Introduction to type systems, static analysis, and model checking.
MW 11:35am-12:50pm
CPSC 546b, Data and Information Visualization Holly Rushmeier
Visualization is a powerful tool for understanding data and concepts. This course provides an introduction to the concepts needed to build new visualization systems, rather than to use existing visualization software. Major topics are abstracting visualization tasks, using visual channels, spatial arrangements of data, navigation in visualization systems, using multiple views, and filtering and aggregating data. Case studies to be considered include a wide range of visualization types and applications in humanities, engineering, science, and social science. Prerequisite: CPSC 223.
TTh 9am-10:15am
CPSC 551b, The User Interface David Gelernter
The user interface (UI) in the context of modern design, where tech has been a strong and consistent influence from the Bauhaus and U.S. industrial design of the 1920s and 1930s through the IBM-Eames design project of the 1950s to 1970s. The UI in the context of the windows-menus-mouse desktop, as developed by Alan Kay and Xerox in the 1970s and refined by Apple in the early 1980s. Students develop a detailed design and simple implementation for a UI.
TTh 11:35am-12:50pm
CPSC 553a / CB&B 555a / GENE 555a, Machine Learning for Biology Smita Krishnaswamy
This course introduces biology as a systems and data science through open computational problems in biology, the types of high-throughput data that are being produced by modern biological technologies, and computational approaches that may be used to tackle such problems. We cover applications of machine-learning methods in the analysis of high-throughput biological data, especially focusing on genomic and proteomic data, including denoising data; nonlinear dimensionality reduction for visualization and progression analysis; unsupervised clustering; and information theoretic analysis of gene regulatory and signaling networks. Students’ grades are based on programming assignments, a midterm, a paper presentation, and a final project.
TTh 11:35am-12:50pm
CPSC 554a, Software Analysis and Verification Ruzica Piskac
Introduction to concepts, tools, and techniques used in the formal verification of software. State-of-the-art tools used for program verification; detailed insights into algorithms and paradigms on which those tools are based, including model checking, abstract interpretation, decision procedures, and SMT solvers.
MW 11:35am-12:50pm
CPSC 556b / ENAS 951b, Wireless Technologies and the Internet of Things Wenjun Hu
Fundamental theory of wireless communications and its application explored against the backdrop of everyday wireless technologies such as WiFi and cellular networks. Channel fading, MIMO communication, space-time coding, opportunistic communication, OFDM and CDMA, and the evolution and improvement of technologies over time. Emphasis on the interplay between concepts and their implementation in real systems. The labs and homework assignments require Linux and MATLAB skills and simple statistical and matrix analysis (using built-in MATLAB functions).
MW 2:30pm-3:45pm
CPSC 565b, Theory of Distributed Systems James Aspnes
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.
MW 1pm-2:15pm
CPSC 567a, Cryptography and Computer Security Staff
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. Focus on technology, with consideration of 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.
TTh 2:30pm-3:45pm
CPSC 568a, Computational Complexity Joan Feigenbaum
Introduction to the theory of computational complexity. Basic complexity classes, including polynomial time, nondeterministic polynomial time, probabilistic polynomial time, polynomial space, logarithmic space, and nondeterministic logarithmic space. The roles of reductions, completeness, randomness, and interaction in the formal study of computation.
TTh 1pm-2:15pm
CPSC 570b, Artificial Intelligence Brian Scassellati
Introduction to artificial intelligence research, focusing on reasoning and perception. Topics include knowledge representation, predicate calculus, temporal reasoning, vision, robotics, planning, and learning.
MWF 10:30am-11:20am
CPSC 573a, Intelligent Robotics Laboratory Brian Scassellati
Students work in small teams to construct novel research projects using one of a variety of robot architectures. Project topics may include human-robot interaction, adaptive intelligent behavior, active perception, humanoid robotics, and socially assistive robotics.
MWF 10:30am-11:20am
CPSC 574a, Computational Intelligence for Games James Glenn
TTh 4pm-5:15pm
CPSC 575a / ENAS 575a, Computational Vision and Biological Perception Steven Zucker
An overview of computational vision with a biological emphasis. 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.
MW 2:30pm-3:45pm
CPSC 576b / AMTH 667b / ENAS 576b, Advanced Computational Vision Steven Zucker
Advanced view of vision from a mathematical, computational, and neurophysiological perspective. Emphasis on differential geometry, machine learning, visual psychophysics, and advanced neurophysiology. Topics include perceptual organization, shading, color, and texture.
TTh 2:30pm-3:45pm
CPSC 577b, Natural Language Processing Dragomir Radev
Linguistic, mathematical, and computational fundamentals of natural language processing (NLP). Topics include part of speech tagging, Hidden Markov models, syntax and parsing, lexical semantics, compositional semantics, machine translation, text classification, discourse, and dialogue processing. Additional topics such as sentiment analysis, text generation, and deep learning for NLP.
TTh 1pm-2:15pm
CPSC 578a, Computer Graphics Holly Rushmeier
Introduction to the basic concepts of two- and three-dimensional computer graphics. Topics include affine and projective transformations, clipping and windowing, visual perception, scene modeling and animation, algorithms for visible surface determination, reflection models, illumination algorithms, and color theory.
TTh 9am-10:15am
CPSC 579b, Advanced Topics in Computer Graphics Julie Dorsey
An in-depth study of advanced algorithms and systems for rendering, modeling, and animation in computer graphics. Topics vary and may include reflectance modeling, global illumination, subdivision surfaces, NURBS, physically based fluids systems, and character animation.
M 9:25am-11:15am
CPSC 635b, Topics on the Hardware/Software Interface Abhishek Bhattacharjee
This course focuses on advanced topics in computer systems, particularly at the intersection of architecture and systems software (i.e., operating systems, firmware, device drivers, etc.). The goal is to give students exposure to building hardware and low-level software support for emerging high-performance server systems used in data centers. Key topics include the virtual memory abstraction, cache coherence, and memory consistency, particularly in the context of performance and energy efficiency. We study the impact of hardware heterogeneity on these trends; and the emergence of hardware accelerators (i.e., GPUs, FPGAs, fixed-function accelerators, etc.) and novel memory technologies (i.e., high-bandwidth die-stacked memory) introduces many system performance and programmability challenges. The course prepares students to understand these challenges and provides the background to architecture systems that embrace extreme heterogeneity. Prerequisites: the course is aimed at Computer Science graduate students with a background in systems programming; solid undergraduate exposure to systems programming (CPSC 323) and operating systems (CPSC 422 and/or CPSC 423) is assumed; exposure to other systems classes (e.g., CPSC 424, CPSC 437) is useful but not required. Students who do not fit this profile may be allowed to enroll with permission of the instructor.
MW 4pm-5:15pm
CPSC 640b, Topics in Numerical Computation Vladimir Rokhlin
This course discusses several areas of numerical computing that often cause difficulties to non-numericists, from the ever-present issue of condition numbers and ill-posedness to the algorithms of numerical linear algebra to the reliability of numerical software. The course also provides a brief introduction to “fast” algorithms and their interactions with modern hardware environments. The course is addressed to Computer Science graduate students who do not necessarily specialize in numerical computation; it assumes the understanding of calculus and linear algebra and familiarity with (or willingness to learn) either C or FORTRAN. Its purpose is to prepare students for using elementary numerical techniques when and if the need arises.
MW 2:30pm-3:45pm
CPSC 645b, Topics in Theoretical Machine Learning Nisheeth Vishnoi
This course focuses on important topics in machine learning where a theoretical understanding is currently lacking or under development. Representative topics include: physics-inspired algorithms for optimization and sampling, algorithms beyond worst case, symmetry in learning and optimization, algorithmic fairness and interpretability, stability, generalization, and deep learning. The format is a mix of lectures and seminars in which students read research papers and present their key conceptual/technical contributions along with their shortcomings. Class projects aim to address some of these identified shortcomings. The focus of a project is on building a principled understanding of the topics above via a mix of modeling, proofs, and empirical evaluation. The projects are intended to serve as a starting point for a subsequent publication in a machine-learning conference. Enrollment limited to fifteen. If fewer than fifteen graduate students enroll, Yale College undergraduates will be allowed to enroll with permission of the instructor. Prerequisites: solid background in calculus, linear algebra, stochastic processes, and programming; algorithms at the level of CPSC 365 or 366. Students who do not fit this profile may be allowed to enroll with permission of the instructor.
M 1:30pm-3:20pm
CPSC 659a, Building Interactive Machines Marynel Vazquez
This course brings together methods from machine learning, computer vision, robotics, and human-computer interaction to enable interactive machines to perceive and act in dynamic environments. Part of the course examines approaches for perception with a variety of devices and algorithms; the other part focuses on methods for decision-making. The course is a combination of lectures, reviews of state-of-the-art papers, discussions, coding homework, and a final team project. Prerequisites: a basic understanding of probability, calculus, and algorithms is expected, as well as proficiency in Python and high-level familiarity with C++. Students who do not fit this profile may be allowed to enroll with permission of the instructor.
MW 1pm-2:15pm
CPSC 662a / AMTH 561a, Spectral Graph Theory Daniel Spielman
An applied approach to spectral graph theory. The combinatorial meaning of the eigenvalues and eigenvectors of matrices associated with graphs. Applications to optimization, numerical linear algebra, error-correcting codes, computational biology, and the discovery of graph structure.
MW 2:30pm-3:45pm
CPSC 663b / AMTH 663b, Deep Learning Theory and Applications Smita Krishnaswamy
Deep neural networks have gained immense popularity in the past decade due to their outstanding success in many important machine-learning tasks such as image recognition, speech recognition, and natural language processing. This course provides a principled and hands-on approach to deep learning with neural networks. Students master the principles and practices underlying neural networks, including modern methods of deep learning, and apply deep learning methods to real-world problems including image recognition, natural language processing, and biomedical applications. Course work includes homework and a final project—either group or individual, depending on the total number enrolled—with both a written and oral (i.e., presentation) component.
TTh 4pm-5:15pm
Computer Science