Computer Science

Academic Year 2023 – 2024

General Information

Address
Computer Science Building, 35 Olden Street
Phone

Program Offerings:

  • Ph.D.
  • M.S.E.

Graduate Program Administrator:

Director of Graduate Studies:

Overview

The Department of Computer Science accepts both beginning and advanced graduate students for study and research leading to the degree of Master of Science in Engineering (M.S.E.) and Doctor of Philosophy (Ph.D.). These degree programs are sufficiently flexible to adapt to individual plans of study and research.

Apply

Application deadline
December 15, 11:59 p.m. Eastern Standard Time (This deadline is for applications for enrollment beginning in fall 2024)
Program length
Ph.D. 5 years, M.S.E. 2 years
Fee
$75
GRE
General Test - not accepted

Additional departmental requirements

Applicants are required to select up to two areas of research interest when applying.

M.S.E.: Two supplemental essays are required.

  1.  Please describe any teaching experience you have had, in any subject, at any grade level. This can include but is not limited to experience as a teaching assistant, lab assistant, grader, tutor, or any other role in which you interacted with students or mentored your peers. 250 words max.
  2.  For those with teaching experience, describe a specific instance when you helped your student/students overcome a misunderstanding or understand a difficult concept. If you do not have any teaching experience, please describe an oral presentation or talk you gave that explains a particularly difficult concept. 250 words max.

M.S.E.: If  TOEFL is required, a minimum of 28 on the speaking subsection is required.

Program Offerings

Program Offering: Ph.D.

Program description

The doctoral program in computer science combines coursework and participation in original research. Most students enter the program with an undergraduate degree in computer science, mathematics, or a related discipline. Some entering students may have a master’s degree, but that is not necessary for success in the program. Every admitted Ph.D. student is given financial support in the form of a first-year fellowship. In addition, all admitted Ph.D. students are automatically considered for the prestigious Wu and Upton Fellowships.

Courses

In preparation for the general examination, the doctoral candidate, in consultation with a faculty adviser, develops an integrated program of study in one of the departmental areas of research. Such preparation usually requires two academic years for students entering with a bachelor’s degree, and one year for students entering with a master’s. Students are required to stand for the general examination at the end of the second year.

A total of 6 courses are required. Three courses must be taken to satisfy the core breadth requirement, with one course from each of three main areas of computer science: Systems, Artificial Intelligence (AI), and Theory.  All students must fulfill the core breadth requirements plus one additional course by the end of the second year, demonstrating minimum competence in three main areas. The remaining three courses can be any 400- or 500-level course from any department in the University. Courses taken outside the Department of Computer Science require approval from the student’s academic adviser and the Director of Graduate Studies.

All courses must be taken for a grade. A grade of B+ or higher is required to get credit towards course requirements, although at most one B will be accepted for a course that does not satisfy the core breadth requirements. Individual research areas may request additional courses in excess of departmental requirements or may require students in that subfield to complete specific required courses in fulfillment of course requirements.

Breadth requirement core course list:

Systems

  • 475 Computer Architecture (See ELE 475)
  • 518 Advanced Computer Systems
  • 561 Advanced Computer Networks
  • 563 Wireless Networks

Artificial Intelligence

  • 511 Theoretical Machine Learning
  • 513 Foundations of Probabilistic Modeling
  • 524 Fundamentals of Machine Learning
  • 529 Advanced Computer Vision
  • 584 Advanced Natural Language Processing

Theory

  • 510 Program Languages
  • 516 Automated Reasoning About Software
  • 521 Advanced Algorithm Design
  • 522 Computational Complexity
  • 585 Information Theory and Applications

General exam

The general examination consists of a research seminar prepared under the supervision of a faculty member, followed by an in-depth oral examination on the contents of the seminar and the associated general area of research. The oral examination tests the student's knowledge in a number of topics relevant to the student's research area. These topics are specified beforehand by an examining committee in consultation with the student. The seminar is open to the public, and at least three computer science faculty members must attend. Two are invited by the student; the adviser chooses a  third faculty member who could be in any area of Computer Science or related fields.  The examining committee and the student agree upon a reading list for the exam. This document is to be made available to anyone present in the oral examination, and only questions pertaining to either the material described in the document or presented during the research seminar can be asked during the oral examination.

Original research results do not have to be presented, but problems whose solution may lead to a thesis should be discussed. In many cases, the student’s thesis is in the same area as the research seminar, but this is not required.

Qualifying for the M.A.

The Master of Arts (M.A.) degree is normally an incidental degree on the way to full Ph.D. candidacy once a student has successfully completed the general examination. The M.A. may also be awarded to students who, for various reasons, leave the Ph.D. program, provided the student has successfully completed the six required courses from the Breadth Requirement. Please note, students admitted to the Ph.D. program who do not wish to complete the program may be considered for an M.S.E. degree with approval from the department and the Graduate School. Ph.D. students who have already been awarded the incidental M.A. are not eligible to earn an M.S.E.

For students who entered the Ph.D. Program before Fall 2018: The Master of Arts degree can be awarded after successfully completing all the year 2 requirements -- 3 core courses, one additional course, and passing the general exam.  

For students who entered the Ph.D. Program Fall 2018 and after: The Master of Arts degree can be awarded after successfully completing the 6 required courses from the Breadth Requirements.

Teaching

Teaching experience is considered to be a significant part of graduate education. All Ph.D. candidates are therefore required to assist with course instruction for the equivalent of two terms.

Post-Generals requirements

Pre-FPO

The preliminary FPO is a research talk given to the anticipated FPO committee approximately six months before the FPO date. The pre-FPO covers results to date and planned research, and serves as a preliminary critique of the proposed dissertation. 

Graduate students will present a public talk followed by a private meeting with the committee.  The outcome of the pre-FPO is not graded. Graduate students are provided with valuable feedback to the committee expects will guide any final work and will be incorporated into the dissertation.

FPO Committee must be identical to the Pre-FPO committee; any subsequent changes to the committee require approval from the DGS.

Dissertation and FPO

The Ph.D. is awarded after the acceptance of the dissertation and completion of the final public oral.

Program Offering: M.S.E.

Program description

The Master's degree at Princeton is a two year, full-time program. All admitted students will initially be enrolled in the Master of Science in Engineering (M.S.E.), thesis-required track. In the spring of year 1, as part of readmission, all students will be given the option to switch to the Master of Engineering (M.Eng.), non-thesis track. Students opting to remain on the M.S.E. track must have a confirmed research adviser and should also have a preliminary thesis proposal. Switching from the M.S.E. track to the M.Eng track will be permitted through January of Year 2.

All coursework must be taken for a grade. A minimum of 4 courses must be taken in year 1. If, due to scheduling conflicts,this is not possible, approval by the Director of Graduate Studies is required. In no event will time to degree be extended beyond two years.

Funding is normally in the form of teaching assistantships covering the four semesters of the program. Summer funding for M.S.E. candidates in the form of a research assistantship may be offered at the adviser's discretion.

Students wishing to continue on for a Ph.D. should apply through the normal application process during the fall of their second year of study.

Undergraduate senior thesis and undergraduate independent work courses are not included in this policy.

The M.S.E. program is a two year, full-time program of coursework plus submission of an original thesis. Candidates choose a subarea of computer science on which to focus by taking appropriate courses, and writing a thesis under the direction of an adviser. Course requirements are fulfilled by taking six courses for a grade, at least three of which must be 500-level courses. The other eligible courses are 318, 320, 324, 326, 343, 352, 375, or any 400-level course, or 500-level COS course, including COS 597 and 598. You may view a list of approved courses outside of the department here.  Relevant courses from outside the department may be taken with Director of Graduate Studies consent. Candidates must maintain a B average, with no more than one C allowed. In order to be readmitted for a second year, candidates must have a confirmed thesis adviser and preliminary thesis proposal by the end of the first year.

In addition to satisfactory completion of coursework, candidates must prepare and submit an original thesis as well as present a public seminar on the research. The thesis will be reviewed and graded by your adviser plus one additional reader from the Princeton faculty. If the reader is from outside the Computer Science Department, approval by the Director of Graduate Studies is required. The public seminar is an ungraded 20-minute talk, followed by a 10-minute question session, given in the spring of year 2. This will allow your adviser and reader to give preliminary feedback prior to submission of the final thesis.

The written thesis should be a research paper of "scholarly quality" -- making a novel contribution to scholarship in the field. The thesis should motivate the chosen research problem, evaluate the proposed solution (e.g., via analysis, measurement, simulation, or prototype implementation), and compare the approach to the related work in the field. While there is no specific length requirement, a reasonable target is a typical conference paper (e.g., 10-15 pages in two-column format or 20-40 pages in single-column, double spaced format).

Thesis Requirement

Candidates choose a subarea of computer science on which to focus by taking appropriate courses, and writing a thesis under the direction of an advisor.

In order to be readmitted for a second year, candidates must have a confirmed thesis advisor and preliminary thesis proposal by the end of the first year. Students remaining in the MSE program should identify a thesis advisor and submit a 350-500 word thesis proposal abstract (approved by the thesis advisor) by the re-enrollment deadline.

Candidates must prepare and submit an original thesis as well as present a public seminar on the research. The thesis will be reviewed and graded by your adviser plus one additional reader from the Princeton faculty. If the reader is from outside the Computer Science Department, approval by the Director of Graduate Studies is required. The public seminar is an ungraded 20 minute talk, followed by a 10 minute question session, given in the spring of Year 2. This will allow your adviser and reader to give preliminary feedback prior to submission of the final thesis.

The written thesis should be a research paper of "scholarly quality" -- making a novel contribution to scholarship in the field. The thesis should motivate the chosen research problem, evaluate the proposed solution (e.g., via analysis, measurement, simulation, or prototype implementation), and compare the approach to the related work in the field. While there is no specific length requirement, a reasonable target is a typical conference paper (e.g., 10-15 pages in two-column format or 20-40 pages in single-column, double spaced format). 
Students may resubmit their thesis with revisions for final archiving by Dean's Date.  After being graded, one bound copy of the final version must be submitted to Mudd Library and a PDF file is due to the Graduate Coordinator.  Click here to review Mudd Library Thesis formatting guidelines.

Course Requirements

MSE course requirements are fulfilled by completion of six courses: three Core courses and three Elective courses.

Candidates must maintain a B average, with no more than one C allowed. All courses must be taken for a letter grade.

  • Core Courses
    • Three COS courses from the following list:
      • COS 475 (ELE 475), 510, 511, 513, 514, 516, 518, 521, 522, 524, 525, 526, 527, 528, 529, 533, 534, 551 (MOL 551), 557 (MOL 557), 561, 563, 583, 584, 597*, 598*
        • *For students who have entered the program prior to Fall 2023
  • Elective Courses
    • Three courses, each of which must satisfy one of the following criteria:
      • COS 318, 320, 324, 326, 343, 352, 375, 597**, 598**
        • **For students entering the program in Fall 2023 and later
      • Any 400-level COS course
      • An additional course that satisfies the Core Course criteria.
      • A non-COS elective from the list here.
        • Relevant non-COS courses not on this list may be added with the Director of Graduate Studies’ consent.

Candidates electing to switch to the M.Eng. degree track are not required to submit a thesis: the following Course Requirements suffice for the degree.

Course Requirements

MEng course requirements are fulfilled by completion of eight courses over two years: three Core courses and five Elective courses.

Candidates must maintain a B average, with no more than one C allowed.  All courses must be taken for a letter grade.

  • Core Courses
    • Three COS courses from the following list:
      • COS 475 (ELE 475), 510, 511, 513, 514, 516, 518, 521, 522, 524, 525, 526, 527, 528, 529, 533, 534, 551 (MOL 551), 557 (MOL 557), 561, 563, 583, 584, 597*, 598*
        • *For students who have entered the program prior to Fall 2023
  • Elective Courses
    • Five courses, each of which must satisfy one of the following criteria:
      • COS 318, 320, 324, 326, 343, 352, 375, 597**, 598**
        • **For students entering the program in Fall 2023 and later
      • Any 400-level COS course
      • An additional course that satisfies the Core Course criteria.
      • A non-COS elective from the list here.
        • Relevant non-COS courses not on this list may be added with the Director of Graduate Studies’ consent.

Acceleration of the M.Eng. (non-thesis track). Students in excellent academic standing who intend to transition to the M.Eng. track may request the department accelerate their two-year program by either one semester or one year, provided all the applicable following conditions are met:

1. Satisfactory performance in all past, current, and future Teaching Assistantship assignments at the University, as evaluated by the Instructor of Record of the course the student is assigned to;
2. The request must be made in writing to the department before the Faculty Deadline for Submission of Graduate Course Grades at the end of the first semester of study;
3. For one-semester acceleration requests: Three courses completed in the first semester, with all A grades (one A- permitted).
4. For one-year acceleration requests: Four courses completed in the first semester, with all A grades (one A- permitted).

The department will cancel the request if the student later chooses to remain on the M.S.E. track during their Year 1 reenrollment. Students who accelerate may choose to revert their program of study to its original
length by communicating this request in writing to the department.

For Princeton undergraduates interested in continuing at Princeton for a Master's Degree:  There is now a special policy that allows current Princeton students to count up to two courses taken as an undergraduate towards a Master's degree in Computer Science at Princeton. Those two courses must be upper-level COS courses that fulfill requirements of the Master's degree and have been taken in excess of the COS requirements for the undergraduate degree. For example, if you take ten COS departmentals as an undergraduate at Princeton, and two of them are advanced classes that satisfy requirements of the Master's program, then you can count both towards a Master's degree if you are accepted into the program.  This is a way to reduce your expected time to completion by approximately one semester.

Teaching

The master’s program is fully funded by teaching assistantships. Master's students are required to hold a full teaching assistantship each semester that they are enrolled.

Thesis

Candidates for the M.S.E. must prepare and submit an original thesis as well as present a public seminar on the research. The thesis will be reviewed and graded by the student’s adviser plus one additional reader from the Princeton faculty. If the reader is from outside the Department of Computer Science, approval by the director of graduate studies is required. The public seminar is an ungraded 20-minute talk, followed by a 10-minute question session, given in the spring of year 2. This will allow the student’s adviser and reader to give preliminary feedback prior to submission of the final thesis.

The written thesis should be a research paper of scholarly quality, making a novel contribution to scholarship in the field. The thesis should motivate the chosen research problem, evaluate the proposed solution (e.g., via analysis, measurement, simulation, or prototype implementation), and compare the approach to the related work in the field. While there is no specific length requirement, a reasonable target is a typical conference paper (e.g., 10-15 pages in two-column format or 20-40 pages in single-column, double-spaced format).  Thesis is due to the adviser, reader, and department prior to Deans Date. Students may resubmit their thesis with revisions for final archiving by Dean's Date.  After being graded, a .pdf file is due to the Graduate Coordinator and should be uploaded to ProQuest.  Click here to review Mudd Library Thesis formatting guidelines.  

Faculty

  • Chair

    • Szymon M. Rusinkiewicz
  • Associate Chair

    • Ryan P. Adams
    • Wyatt A. Lloyd
  • Director of Graduate Studies

    • Michael J. Freedman (co-director)
    • Elad Hazan (co-director)
  • Director of Undergraduate Studies

    • Andrew W. Appel (co-director) (spring)
    • Brian W. Kernighan (co-director)
    • David P. Walker (co-director) (fall)
    • Kevin Wayne (co-director)
  • Professor

    • Ryan P. Adams
    • Andrew W. Appel
    • Sanjeev Arora
    • David I. August
    • Mark Braverman
    • Bernard Chazelle
    • Zeev Dvir
    • Adam Finkelstein
    • Michael J. Freedman
    • Tom Griffiths
    • Aarti Gupta
    • Elad Hazan
    • Kyle A. Jamieson
    • Brian W. Kernighan
    • Kai Li
    • Margaret R. Martonosi
    • Radhika Nagpal
    • Arvind Narayanan
    • Ben Raphael
    • Ran Raz
    • Szymon M. Rusinkiewicz
    • H. Sebastian Seung
    • Jaswinder P. Singh
    • Mona Singh
    • Robert E. Tarjan
    • Olga G. Troyanskaya
    • David P. Walker
  • Associate Professor

    • Jia Deng
    • Zachary Kincaid
    • Gillat Kol
    • Wyatt A. Lloyd
    • Olga Russakovsky
    • Matt Weinberg
  • Assistant Professor

    • Parastoo Abtahi
    • Danqi Chen
    • Adji Bousso Dieng
    • Benjamin Eysenbach
    • Felix Heide
    • Aleksandra Korolova
    • Amit A. Levy
    • Alex Lombardi
    • Jonathan Mayer
    • Andrés Monroy-Hernández
    • Karthik Narasimhan
    • Ravi A. Netravali
    • Yuri Pritykin
    • Huacheng Yu
    • Ellen Zhong
  • Associated Faculty

    • Amir Ali Ahmadi, Oper Res and Financial Eng
    • Christine Allen-Blanchette, Mechanical & Aerospace Eng
    • Maria Apostolaki, Electrical Engineering
    • Jianqing Fan, Oper Res and Financial Eng
    • Jaime Fernandez Fisac, Electrical Engineering
    • Yasaman Ghasempour, Electrical Engineering
    • Chi Jin, Electrical Engineering
    • Jason D. Lee, Electrical Engineering
    • Anirudha Majumdar, Mechanical & Aerospace Eng
    • Prateek Mittal, Electrical Engineering
    • Paul Seymour, Mathematics
    • John D. Storey, Integrative Genomics
    • Daniel L. Trueman, Music
    • Robert J. Vanderbei, Oper Res and Financial Eng
    • Janet A. Vertesi, Sociology
    • Pramod Viswanath, Electrical Engineering
    • Mengdi Wang, Electrical Engineering
    • David Wentzlaff, Electrical Engineering
  • University Lecturer

    • Kevin Wayne
  • Senior Lecturer

    • Robert M. Dondero
    • Alan Kaplan
    • Xiaoyan Li
    • Christopher M. Moretti
  • Lecturer

    • Sebastian Caldas
    • Marcel Dall'Agnol
    • Robert S. Fish
    • Ruth C. Fong
    • Donna S. Gabai
    • Mihir E. Kshirsagar
    • Dan Leyzberg
    • Pedro Paredes
    • Iasonas Petras
    • Vikram V. Ramaswamy
  • Visiting Associate Professor

    • Rotem Oshman
  • Visiting Lecturer

    • Edo Liberty

For a full list of faculty members and fellows please visit the department or program website.

Permanent Courses

Courses listed below are graduate-level courses that have been approved by the program’s faculty as well as the Curriculum Subcommittee of the Faculty Committee on the Graduate School as permanent course offerings. Permanent courses may be offered by the department or program on an ongoing basis, depending on curricular needs, scheduling requirements, and student interest. Not listed below are undergraduate courses and one-time-only graduate courses, which may be found for a specific term through the Registrar’s website. Also not listed are graduate-level independent reading and research courses, which may be approved by the Graduate School for individual students.

COS 510 - Programming Languages

Fundamental concepts underlying all programming languages; semantic aspects, including binding times, visibility, retention, storage management, abstraction mechanisms and extensibility; operational and denotational semantic specifications; and design and implementation issues, particularly for very high-level languages, including data representations, control regimes, code representations, and portability. Prerequisites: 226 and 320.

COS 511 - Theoretical Machine Learning

Course introduces the mathematical foundations of machine learning, including theoretical models of machine learning, and the design and analysis of learning algorithms. Topics include: bounds on the number of random examples needed to learn; learning from non-random examples in the on-line learning model (i.e., for investment portfolio selection); how to boost the accuracy of a weak learning algorithm; learning with queries; Fourier-based algorithms and support-vector machines.

COS 513 - Foundations of Probabilistic Modeling (also SML 513)

A study of the essential tools for analyzing the vast amount of data that have become available in modern scientific research. Mathematical foundations of the field will be studied, along with the methods underlying the current state of the art. Probabilisitc graphical models and a unifying formalism for descrtibing and extending previous methods from statistics and engineering will be considered. Prerequisites COS402 or COS424. Undergraduates by permission only.

COS 514 - Fundamentals of Deep Learning

This course is a mathematical and conceptual introduction to Deep Learning: basic concepts, model classes, paradigms, and attempts at analysis. It covers some ML theory (learning rate, SGD, generalization, etc.) and some advanced topics: Normalization, Implicit Bias, Generative Models, Recurrent Nets, Contrastive Learning, Self-Supervised Learning, Transformers, Diffusion Models, Private Learning, Interpretability, Fine-tuning of Large Pretrained Models, etc. (Varies year to year.)

COS 516 - Automated Reasoning about Software (also ECE 516)

An introduction to algorithmic techniques for reasoning about software. Basic concepts in logic-based techniques including model checking, invariant generation, symbolic execution, and syntax-guided synthesis; automatic decision procedures in modern solvers for Boolean Satisfiability (SAT) and Satisfiability Modulo Theory (SMT); and their applications in automated verification, analysis, and synthesis of software. Emphasis on algorithms and automatic tools.

COS 518 - Advanced Computer Systems

Survey of operating systems covering: early systems, virtual memory, protection, synchronization, process management, scheduling, input/output, file systems, virtual machines, performance analysis, software engineering, user interfaces, distributed systems, networks, current operating systems, case studies. Survey of research papers from classic literature through contemporary research. Prerequisite: COS 318 or equivalent.

COS 521 - Advanced Algorithm Design

Advanced methods of algorithmic design and analysis: data structures, network flows, and linear programming. Solution of linear programs: Karmarkar and Ellipsoid algorithms. Probabilistic techniques. A selection of topics from on-line computation, approximation algorithms for NP-hard problems, number theoretic algorithms, geometric algorithms, and parallel computation.

COS 522 - Computational Complexity (also MAT 578)

Introduction to research in computational complexity theory. Computational models: nondeterministic, alternating, and probabilistic machines. Boolean circuits. Complexity classes associated with these models: NP, Polynomial hierarchy, BPP, P/poly, etc. Complete problems. Interactive proof systems and probabilistically checkable proofs: IP=PSPACE and NP=PCP (log n, 1). Definitions of randomness. Pseudorandomness and derandomizations. Lower bounds for concrete models such as algebraic decision trees, bounded-depth circuits, and monotone circuits.

COS 524 - Fundamentals of Machine Learning

Computers have made it possible to collect vast amounts of data from a variety of sources. It is not always clear, however, how to use those data, and how to extract useful information from them. This course focuses on some of the most useful approaches to the problem of analyzing large complex data sets, exploring both theoretical foundations and practical applications of machine learning. Course covers classification, regression, clustering, dimension reduction, and time series models. Students gain experience analyzing a variety of data. Prerequisites are introductory linear algebra and statistics.

COS 526 - Neural Rendering (also ECE 576)

Advanced topics in computer graphics, with focus on learning recent methods in rendering, modeling, and animation. Appropriate for students who have taken COS426 (or equivalent) and who would like further exposure to computer graphics.

COS 528 - Data Structures and Graph Algorithms

Data structures and algorithms for graph and network problems, including disjoint set union, heaps, search trees, search on graphs, minimum spanning trees, shortest paths, network flows, and matchings. The intent of the course is to examine the most efficient algorithms known for a variety of combinatorial problems and to discover the principles underlying the design and analysis of these algorithms. The emphasis is on asymptotic worst-case and amortized analysis. Prerequisite: 423 or the equivalent.

COS 529 - Advanced Computer Vision

Advanced topics in computer vision, with a focus ~n recent methods and current research. Topics include 3D vision, recognition, and the intersection of computer vision and other fields. Appropriate for students who have taken COS 429 or equivalent and would like further exposure to computer vision.

COS 532 - Computer Graphics: Modeling

Advanced topics in geometric modeling. Topics to be covered include methods for describing geometric primitives such as implicit surfaces and parametric patches, solid modeling and constructive solid geometry, boundary representations and topological representations, procedural models, and models appropriate for natural and biological shapes. Prerequisite: 426 or the equivalent.

COS 533 - Advanced Cryptography

This course covers a selection of advanced topics in cryptography, including some or all of the following: fully homomorphic encryption, zero knowledge proofs, traitor tracing, identity-based encryption, private information retrieval, garbled circuits, secret sharing, multiparty computation, lattice-based cryptography, and elliptic curve-based cryptography.

COS 534 - Fairness in Machine Learning

The course covers: sources of bias in machine learning; methods for detecting, measuring, and mitigating bias; individual fairness, group fairness, and the tension between them; data modeling versus algorithmic modeling;connections between fairness and privacy; bias in algorithmic decision making; bias in unsupervised machine learning; interpretability in ML and its connection to fairness. The syllabus is predominantly technical, supplemented by a few readings from social science, law, and public policy. Students take on hands-on empirical projects of their choosing.

COS 551 - Introduction to Genomics and Computational Molecular Biology (also MOL 551/QCB 551)

Introduction to basic computational and genomic methods for analysis of biological systems. Topics include: sequence similarity and alignment, phylogenic inference, gene recognition, gene expression analysis, transcriptional networks, structure prediction, functional genomics and proteomics. This is primarily a graduate-level course; interested undergraduates will require permission from instructors.

COS 557 - Artificial Intelligence for Precision Health (also QCB 557)

Introduces students to the promise and challenges of AI and machine learning methods, including large language models, in precision health. Topics covered will include analysis of genomes, omics, and clinical data, as well as learning from multiple data sources. No prior knowledge of biology or medicine is required; an introduction to these topics and the nature of biological data will be provided. In depth knowledge of AI is not required, but students should have basic familiarity with coding and computer science.

COS 561 - Advanced Computer Networks

Survey of computer networks covering end-to-end principle, multiplexing, virtualization, packet switching vs. circuit switching, router design, network protocols, congestion control, internet routing architecture, network measurement, network management, and overlay networks. Survey of research papers from classic literature through contemporary research.

COS 563 - Wireless Networks

This course is a graduate-level class that explores recent developments in wireless networks and wireless sensing systems. The class aims to develop students' taste in research: what constitutes a good research problem, and what constitutes convincing scientific evidence that a design solves a problem. Students conduct a semester-long project that reproduces research or creates new research, and read/discuss papers in small groups. Topics include abstracting underlying and overlying hardware/layers in the networking stack, integration with overlying applications, and concurrency, performance, and resource allocation in wireless networks.

COS 583 - Great Moments in Computing (also ECE 583)

Course covers pivotal developments in computing, including hardware, software, and theory. Material will be covered by reading seminal papers, patents, and descriptions of highly-influential architectures. Course emphasizes a deep understanding of the discoveries and inventions that brought computer systems to where they are today, and class is discussion-oriented. Final project or paper required. Graduate students and advanced undergraduates from ELE, COS, and related fields welcome.

COS 584 - Advanced Natural Language Processing

Natural Language Processing (NLP) is witnessing exciting developments in core technologies and applications to a wide variety of domains. This graduate-level course focuses on an advanced study of frameworks, algorithms and methods in NLP -- including state-of-the-art techniques for problems such as language modeling, text classification, machine translation, and question answering. The course contains multiple programming assignments, paper readings, a mid-term and a final project. Students are expected to have taken at least one introductory course in machine learning prior to this class, and be comfortable with programming in Python.

COS 585 - Information Theory and Applications

The notions of entropy and information, originated in statistical physics and electrical engineering, have become central in almost all branches of modern science. The course gives an introduction to information theory and its applications, from the perspective of math, computer science and theoretical computer science.The course is intended for students from all areas of computer science, as well as math, physics, bio-informatics and electrical engineering. A basic knowledge in probability theory and linear algebra is required.

COS 589 - Extramural Summer Research Project

Summer research project designed in conjunction with the student's advisor and an industrial, NGO, or government sponsor that will provide practical experience relevant to the student's research area. Start date no earlier than June 1. A final paper is required.

COS 590 - Extramural Research Internship

One-term full time research internship at a host institution to perform scholarly research directly relevant to a student's dissertation work. Research objectives will be determined by the student's advisor in consultation with the outside host. Monthly progress reports and a final paper are required. Enrollment is limited to post-generals students. Students will be permitted to enroll in this one-semester course at most twice. Participation will be considered exceptional.

COS 597A - Advanced Topics in Computer Science

Topics involving current research in computer science and applications in other fields.

COS 597B - Advanced Topics in Computer Science

Topics involving current research in computer science and applications in other fields.

COS 597C - Advanced Topics in Computer Science

Topics involving current research in computer science and applications in other fields.

COS 597D - Advanced Topics in Computer Science

Topics involving current research in computer science and applications in other fields.

COS 597E - Advanced Topics in Computer Science

Topics involving current research in computer science and applications in other fields.

COS 597F - Advanced Topics in Computer Science

Topics involving current research in computer science and applications in other fields.

COS 597G - Advanced Topics in Computer Science

Topics involving current research in computer science and applications in other fields.

COS 597I - Advanced Topics in Computer Science

An in-depth study of compiler backend techniques for modern computer architectures. The course includes coverage of the fundamentals and a survey of current research. Students work together on a research project. Familiarity with both computer architecture and compilers is recommended.

COS 597J - Advanced Topics in Computer Science

This seminar prepares computer science graduate students and advanced undergraduate students to effectively engage on matters of public policy and law. The core of the course is a survey of computer science research that has successfully influenced government decision making or commercial practices. Topics include consumer privacy, data security, net neutrality, government surveillance, artificial intelligence fairness, election integrity, and cryptocurrencies. Assignments challenge participants to develop their own research interests into deliverables for public policy and law audiences.

COS 597M - Advanced Topics in Computer Science

Topics involving current research in computer science and applications in other fields.

COS 597N - Advanced Topics in Computer Science

Topics involving current research in computer science and applications in other fields.

COS 597O - Advanced Topics in Computer Science

Topics involving current research in computer science and applications in other fields.

COS 597Q - Advanced Topics in Computer Science

What existential and social risks do modern AI systems and methods pose? How can we mitigate these risks and ensure that AI systems are safe and aligned with the intention of their builder? What is currently being done to ensure that AI systems are safe? Are current safeguards sufficient and if not how can we improve upon them? These are the questions we consider in this advanced seminar. Topics include algorithms and optimization-based methods for alignment, reinforcement learning from human feedback, the mind-body problem as applied to AI, accountability and the free choice problem, and more.

COS 597R - Advanced Topics in Computer Science

Reinforcement learning (RL) is about using machine learning to not just mimic past predictions, but instead to determine which decisions will lead to good, long-term outcomes. While RL is typically viewed and taught from the perspectives of control theory and stochastic optimization, this course will study RL through the lens of probabilistic inference. This perspective will provide new ways of thinking about RL methods and suggest how to build new RL methods using techniques from other areas of machine learning (e.g., self-supervised learning). The course will be split between interactive lectures and discussions of recent papers.

COS 598 - Advanced Topics in Computer Science

Topics involving current research in computer science and applications in other fields.

COS 598A - Advanced Topics in Computer Science

Topics involving current research in computer science and applications in other fields.

COS 598B - Advanced Topics in Computer Science

Topics involving current research in computer science and applications in other fields.

COS 598C - Advanced Topics in Computer Science

Topics involving current research in computer science and applications in other fields.

COS 598D - Advanced Topics in Computer Science

Topics involving current research in computer science and applications in other fields.

COS 598E - Advanced Topics in Computer Science

Topics involving current research in computer science and applications in other fields.

COS 598F - Advanced Topics in Computer Science

Topics involving current research in computer science and applications in other fields.

COS 598G - Advanced Topics in Computer Science

Topics involving current research in computer science and applications in other fields.

COS 598H - Advanced Topics in Computer Science

This seminar reviews the latest developments in the theory of natural algorithms with a focus on biology. The course covers a number of topics from theoretical computer science, dynamical systems, statistical mechanics, machine learning, and evolutionary biology. No prerequisites are assumed except for a solid, general mathematical background.

COS 598I - Advanced Topics in Computer Science

What responsibilities, and for whom? This course addresses the theoretical and sociotechnical foundations of responsible AI. We survey current approaches, as well as the philosophical, ethical, and legal principles shaping AI in societal deployments. Methodological aspects include: data choice, problem formulation, prediction modeling limits, interventions/causal inference, measuring/mitigating algorithmic biases, algorithmic fairness limits, and impact evaluation via experimental design. We emphasize understanding broader impacts, relating to social justice, via case studies from education, healthcare, financial and social services.

ECE 532 - Safety-Critical Robotic Systems (also COS 572/MAE 572)

The course covers the mathematical foundations of dynamical system safety analysis and modern algorithmic approaches for robotic decision making in safety-critical contexts. The focus is on safe robot learning, multiagent systems, and interaction with humans, paying special attention to uncertainty and the reality gap between mathematical models and the physical world.

ECE 539 - Special Topics in Data and Information Science (also COS 512)

Advanced studies in selected areas in signal processing, communication and information theory, decision and control, and system theory. Emphasis on recent developments and current literature. Content varies from year to year according to the instructor's and students' interests.

ECE 539B - Special Topics in Information Sciences and Systems (also COS 597P)

Advanced studies in selected areas in signal processing, communication and information theory, decision and control, and system theory. Emphasis on recent developments and current literature. Content varies from year to year according to the instructor's and students' interests.

SOC 555 - Limits to Prediction (also COS 598J)

Is everything predictable given enough data and powerful algorithms? This seminar explores that question through social science and computer science research in many domains including life trajectories of individuals, geopolitical events, weather, disease outbreaks, social media and, somewhat speculatively, artificial general intelligence. We aim to identify fundamental limits, learn about common pitfalls, and explore policy implications. Coursework is a mix of reading and empirical work tailored to students' backgrounds. The course is designed to facilitate publishable student research in both social science and computer science.

SPI 586F - Topics in STEP (also COS 586)

Currently unavailable