Bulletin

Interested in attending Stanford?
Visit Undergraduate Admissions opens in a new tab or Graduate Admissions opens in a new tab.

Resources

  • About Stanford
  • About Bulletin
  • Academic Calendar opens in a new tab
  • Bulletin Archive
  • Enrollment Overview opens in a new tab
  • Enrollment Deadlines opens in a new tab
  • Degrees at a Glance

Schools

  • Doerr School of Sustainability opens in a new tab
  • Graduate School of Business opens in a new tab
  • Graduate School of Education opens in a new tab
  • School of Engineering opens in a new tab
  • School of Humanities and Science opens in a new tab
  • School of Law opens in a new tab
  • School of Medicine opens in a new tab
Give Feedback

Stanford University is accredited by the Accrediting Commission of Senior Colleges and Universities of the Western Association of Schools and Colleges opens in a new tab.

Give Feedback
Stanford
University
  • Stanford Home
  • Maps & Directions
  • Search Stanford
  • Emergency Info
  • Terms of Use
  • Privacy
  • Copyright
  • Trademarks
  • Non-Discrimination
  • Accessibility
© Stanford University.  Stanford, California 94305.
Skip to main content
Stanford University
Bulletin
Computer Science
School of Engineering
  • MS
  • PhD
  • PhD Minor
  • Coterm
  • Joint Degree
Program Info
  • About the Program
  • Master of Science
    • Admissions
    • Advising
    • Policies
    • Learning Outcomes
  • Doctor of Philosophy
  • PhD Minor
  • Courses
  • Contact Us
Loading program
  1. Home
  2. Programs
  3. Graduate
  4. Computer Science
  5. Master of Science

Master of Science

MSCotermJoint Degree
  • Computer Science opens in a new tab
Program Minimum Units
45 Units
University Minimum Units
45 Units
Program Length
2 Years
Interests
Technology, Business & Entrepreneurship
Academic Areas
Engineering & Computer Science

Overview

The MS in Computer Science is intended as a terminal professional degree and does not lead to the PhD. Most students planning to obtain a PhD degree should apply directly for admission to the PhD program. Some students, however, may wish to complete the master’s program before deciding whether to pursue a PhD. To give such students a more significant opportunity to become familiar with research, the department has a program leading to a master’s degree with distinction in research. This program is described in more detail below.

Requirements

Program Requirements

Requirements Overview

A candidate is required to complete a program of 45 units. At least 36 of these must be graded units, passed with a grade point average (GPA) of 3.0 (B) or better. (Courses taken for a CR or S grade from Spring 2019-20 through Summer 2020-21 satisfy MS-CS requirements as if taken for a letter grade.) The 45 units may include no more than ten units of courses from those listed below in the Foundations Requirement. Thus, students needing to take more than two of the courses listed in Foundations complete more than 45 units of coursework in the program. Only well-prepared students may expect to finish the program in one year; most students complete the program in six quarters. Students hoping to complete the program with 45 units should already have a substantial background in computer science, including coursework or experience equivalent to all of Foundations and some prior coursework related to their specialization area.

Foundations

You must satisfy the requirements listed in each of the following areas; all courses taken elsewhere must be approved by the program administrator via the foundation course waiver form on GIN. Do not enter anything in the “Units” column for courses taken elsewhere or for Stanford courses counted towards your undergraduate degree (total units used to satisfy foundations requirement may not exceed 10):

Complete all of the following requirements:
Logic, Automata, and Computability
Complete all of the following course(s):
CS 103

Mathematical Foundations of Computing

3-5 Units
and
Probability
Complete any of the following course(s):
CS 109

Introduction to Probability for Computer Scientists

3-5 Units
CS 221

Artificial Intelligence: Principles and Techniques

3-4 Units
or
CS 229

Machine Learning

3-4 Units
CME 106

Introduction to Probability and Statistics for Engineers

4 Units
EE 178

Probabilistic Systems Analysis

3-4 Units
MS&E 220

Probabilistic Analysis

3 Units
STATS 117

Introduction to Probability Theory

3-4 Units

Students who do not take CS109 can satisfy the Probability Foundation requirement with a two-course combination of (1) CS221 or CS229 and (2) STATS117, CME106, MS&E220, EE178.

and
Algorithmic Analysis
Complete all of the following course(s):
CS 161

Design and Analysis of Algorithms

3-5 Units
and
Computer Organization and Systems
Complete at least 1 of the following courses:
CS 107

Computer Organization and Systems

3-5 Units
CS 107E

Computer Systems from the Ground Up

3-5 Units
and
Principles of Computer Systems
Complete all of the following course(s):
CS 111

Operating Systems Principles

3-5 Units

Significant Software Implementation

Complete at least 1 of the following courses:
CS 140E

Operating systems design and implementation

3-4 Units
CS 143

Compilers

3-4 Units
CS 144

Introduction to Computer Networking

3-4 Units
CS 145

Intro to Modern Data Systems

3-4 Units
CS 149

Parallel Computing

3-4 Units
CS 151

Logic Programming

3 Units
CS 190

Software Design Studio

3-4 Units
CS 210B

Industry Innovation Lab

3-4 Units
CS 212

Operating Systems and Systems Programming

3-5 Units
or
CS 112

Operating systems kernel implementation project

3 Units
or
CS 140

Operating Systems and Systems Programming

3-5 Units
CS 224N

Natural Language Processing with Deep Learning

3-4 Units
CS 224R

Deep Reinforcement Learning

3 Units
CS 227B

General Game Playing

3 Units
CS 231N

Deep Learning for Computer Vision

3-4 Units
CS 239

Advanced Topics in Sequential Decision Making

3-4 Units
CS 243

Program Analysis and Optimizations

3-4 Units
CS 248A

Computer Graphics: Rendering, Geometry, and Image Manipulation

3-4 Units
CS 248B

Fundamentals of Computer Graphics: Animation and Simulation

3 Units
CS 251

Cryptocurrencies and blockchain technologies

3 Units
CS 330

Deep Multi-task and Meta Learning

3 Units
CS 336

Language Modeling from Scratch

3-5 Units

Students must complete at least one course designated as having a significant software implementation component.

Electives

This requirement is relevant to the following subplans:

  • Artificial Intelligence

  • Computational Biology

  • Computer and Network Security

  • Human-Computer Interaction

  • Information Management and Analytics

  • Software Theory

  • Systems

  • Theoretical Computer Science

  • Visual Computing

Additional elective units must be technical courses, numbered above 101, related to the degree program and approved by the advisor and MS program administrator. All CS courses numbered above 111, except  CS161A, CS196, CS198, CS390A, CS390B, and CS390C, taken for three or more units, are pre-approved as elective courses. Additionally, up to a maximum of three units of one to two-unit seminars offered in the School of Engineering may be counted as electives. Units of elective credit are capped at 5 units per quarter per course (does not apply to CS399). Elective courses that satisfy a Breadth requirement must be taken for a letter grade. Otherwise, elective courses may be taken on a satisfactory/no credit basis provided that a minimum of 36 graded units is presented within the 45-unit program. (Courses taken for a CR or S grade from Spring 2019-20 through Summer 2020-21 satisfy MS-CS requirements as if taken for a letter grade.)

*CS 129 may not be counted toward the MS if CS 229 is being counted toward any BS or MS requirements.

Breadth in Discipline

Breadth Requirement Overview

Students must complete at least three courses, each chosen from a different Breadth area A, B, C, or D. Breadth courses may not be waived, must be taken for at least three units each, and must be completed for a letter grade. (Courses taken for a CR or S grade from spring 2019-20 through summer 2020-21 satisfy MS-CS requirements as if taken for a letter grade.) Each of the three Breadth courses must be from different Areas:

Breadth Areas

All Breadth courses must be taken for a minimum of 3 units and a letter grade.

Cross-listed versions of these courses are also acceptable.

Complete at least 3 of the following:
Breadth Area A: Formal Foundations
Complete at least 1 of the following courses:
APPPHYS 229

Statistical Mechanics of Learning and Computation

3 Units
CS 154

Introduction to the Theory of Computation

3-4 Units
CS 157

Computational Logic

3 Units
CS 166

Advanced Data Structures

3-4 Units
CS 168

The Modern Algorithmic Toolbox

3-4 Units
CS 205L

Continuous Mathematical Methods with an Emphasis on Machine Learning

3 Units
CS 225

Machine Learning for Discrete Optimization

3 Units
CS 229M

Machine Learning Theory

3 Units
CS 250

Algebraic Error Correcting Codes

3 Units
CS 254

Computational Complexity

3 Units
CS 254B

Computational Complexity II

3 Units
CS 255

Introduction to Cryptography

3 Units
CS 256

Algorithmic Fairness

3 Units
CS 257

Introduction to Automated Reasoning

3 Units
CS 258

Quantum Cryptography

3 Units
CS 259Q

Quantum Computing

3 Units
CS 261

Combinatorial Optimization

3 Units
CS 263

Counting and Sampling

3 Units
CS 264

Beyond Worst-Case Analysis

3 Units
CS 265

Randomized Algorithms and Probabilistic Analysis

3 Units
CS 269I

Incentives in Computer Science

3 Units
CS 328

Foundations of Causal Machine Learning

3 Units
CS 354

Topics in Intractability: Unfulfilled Algorithmic Fantasies

3 Units
CS 355

Advanced Topics in Cryptography

3 Units
CS 357S

Formal Methods for Computer Systems

3 Units
CS 359D

Quantum Complexity Theory

3 Units
CS 369O

Optimization Algorithms

3 Units
EE 276

Information Theory

3 Units
EE 364A

Convex Optimization I

3 Units
EE 364B

Convex Optimization II

3 Units
EE 377

Information Theory and Statistics

3 Units
PHIL 251

Metalogic

4 Units
STATS 311

Information Theory and Statistics

3 Units
or
Breadth Area B: Learning and Modeling
Complete at least 1 of the following courses:
CS 173A

Foundations of Computational Human Genomics

3-4 Units
CS 205L

Continuous Mathematical Methods with an Emphasis on Machine Learning

3 Units
CS 221

Artificial Intelligence: Principles and Techniques

3-4 Units
CS 223A

Introduction to Robotics

3 Units
CS 224N

Natural Language Processing with Deep Learning

3-4 Units
CS 224R

Deep Reinforcement Learning

3 Units
CS 224S

Spoken Language Processing

2-4 Units
CS 224U

Natural Language Understanding

3-4 Units
CS 224V

Agentic AI

3-4 Units
CS 224W

Machine Learning with Graphs

3-4 Units
CS 227A

Robot Perception

3-4 Units
CS 227B

General Game Playing

3 Units
CS 228

Probabilistic Graphical Models: Principles and Techniques

3-4 Units
CS 229

Machine Learning

3-4 Units
CS 229B

Machine Learning for Sequence Modeling

3-4 Units
CS 229M

Machine Learning Theory

3 Units
CS 230

Deep Learning

3-4 Units
CS 231A

Computer Vision: From 3D Perception to 3D Reconstruction and Beyond

3-4 Units
CS 231N

Deep Learning for Computer Vision

3-4 Units
CS 233

Geometric and Topological Data Analysis

3 Units
CS 234

Reinforcement Learning

3 Units
CS 236

Deep Generative Models

3 Units
CS 237A

Principles of Robot Autonomy I

3 Units
CS 237B

Principles of Robot Autonomy II

3-4 Units
CS 238

Decision Making under Uncertainty

3-4 Units
CS 239

Advanced Topics in Sequential Decision Making

3-4 Units
CS 248A

Computer Graphics: Rendering, Geometry, and Image Manipulation

3-4 Units
CS 248B

Fundamentals of Computer Graphics: Animation and Simulation

3 Units
CS 271

Algorithmic Foundations for Artificial Intelligence in Healthcare

3-4 Units
CS 272

Introduction to Biomedical Informatics Research Methodology

3 Units
CS 273B

Deep Learning in Genomics and Biomedicine

3 Units
CS 274

Representations and Algorithms for Computational Molecular Biology

1-4 Units
CS 277

Foundation Models for Healthcare

3 Units
CS 279

Computational Biology: Structure and Organization of Biomolecules and Cells

3 Units
CS 281

Ethics of Artificial Intelligence

3-4 Units
CS 321M

AI Measurement Science

3 Units
CS 326

Topics in Advanced Robotic Manipulation

3-4 Units
CS 329A

Self Improving AI Agents

3 Units
CS 329D

Machine Learning Under Distributional Shifts

3 Units
CS 329H

Machine Learning from Human Preferences

3 Units
CS 329T

Trustworthy Machine Learning: Building and evaluating agentic systems

3 Units
CS 329X

Human Centered NLP

3 Units
CS 330

Deep Multi-task and Meta Learning

3 Units
CS 332

Advanced Survey of Reinforcement Learning

3 Units
CS 333

Algorithms for Interactive Robotics

3-4 Units
CS 336

Language Modeling from Scratch

3-5 Units
CS 348B

Computer Graphics: Image Synthesis Techniques

3-4 Units
CS 348C

Computer Graphics: Animation and Simulation

3 Units
CS 348E

Character Animation: Modeling, Simulation, and Control of Human Motion

3 Units
CS 348I

Computer Graphics in the Era of AI

3-4 Units
CS 348N

Neural Models for 3D Geometry

3 Units
CS 375

Large-Scale Neural Network Modeling for Neuroscience

3 Units
or
Breadth Area C: Systems
Complete at least 1 of the following courses:
CS 112

Operating systems kernel implementation project

3 Units
CS 140E

Operating systems design and implementation

3-4 Units
CS 143

Compilers

3-4 Units
CS 144

Introduction to Computer Networking

3-4 Units
CS 145

Intro to Modern Data Systems

3-4 Units
CS 149

Parallel Computing

3-4 Units
CS 155

Computer and Network Security

3 Units
CS 212

Operating Systems and Systems Programming

3-5 Units
CS 217

Hardware Accelerators for Machine Learning

3-4 Units
CS 229S

Systems for Machine Learning

3 Units
CS 240

Advanced Topics in Operating Systems

3 Units
CS 240LX

Advanced Systems Laboratory, Accelerated

3 Units
CS 242

Programming Languages

3-4 Units
CS 243

Program Analysis and Optimizations

3-4 Units
CS 244

Advanced Topics in Networking

3-4 Units
CS 244B

Distributed Systems

3 Units
CS 244C

Advanced Networking and Distributed Systems

3-4 Units
CS 245

Principles of Data-Intensive Systems

3-4 Units
CS 246

Mining Massive Data Sets

3-4 Units
CS 249I

The Modern Internet

3 Units
CS 251

Cryptocurrencies and blockchain technologies

3 Units
CS 257

Introduction to Automated Reasoning

3 Units
CS 295

Software Engineering

3 Units
CS 348K

Visual Computing Systems

3-4 Units
CS 349D

AI Inference Infrastructure

3 Units
CS 349F

Fabric Architectures For AI Systems

2 Units
CS 349H

Software Techniques for Emerging Hardware Platforms

3 Units
CS 350S

Privacy-Preserving Systems

3 Units
CS 356

Topics in Computer and Network Security

3 Units
CS 357S

Formal Methods for Computer Systems

3 Units
EE 180

Digital Systems Architecture

4 Units
EE 282

Computer Systems Architecture

3 Units
EE 382C

Interconnection Networks

3 Units
  • CS111 should be taken prior to taking CS112.

or
Breadth Area D: People and Society
Complete at least 1 of the following courses:
AMSTUD 145

Silicon Valley

5 Units
BMDS 215

Data Science for Medicine

3 Units
BMDS 223

Deploying and Evaluating Fair AI in Healthcare

2-3 Units
BIOS 244

Applied Artificial Intelligence in Health Care

2 Units
COMM 254

The Politics of Algorithms

4-5 Units
COMM 266

Virtual People

4-5 Units
COMM 286

Media, Technology, and the Body

4-5 Units
COMM 324

Language and Technology

3-5 Units
CS 121

Equity and Governance for Artificial Intelligence

4 Units
CS 125

Data: Algorithms, Tools, Policy, and Society

3 Units
CS 147

Introduction to Human-Computer Interaction Design

3-5 Units
CS 148

Introduction to Computer Graphics and Imaging

3-4 Units
CS 152

Trust and Safety

3 Units
CS 181

Computers, Ethics, and Public Policy

4 Units
CS 181W

Computers, Ethics, and Public Policy (WIM)

4 Units
CS 182

Ethics, Public Policy, and Technological Change

5 Units
CS 182W

Ethics, Public Policy, and Technological Change (WIM)

5 Units
CS 194H

User Interface Design Project

3-4 Units
CS 206

Exploring Computational Journalism

3 Units
CS 207

Antidiscrimination Law and Algorithmic Bias

3 Units
CS 222

AI Agents and Simulations

3-4 Units
CS 224C

NLP for Computational Social Science

3 Units
CS 247A

Design for Artificial Intelligence

3-4 Units
CS 247B

Design for Behavior Change

3-4 Units
CS 247E

Design for Earth

3-4 Units
CS 247G

Design for Play

3-4 Units
CS 247I

Design for Understanding

3-4 Units
CS 247S

Service Design with AI

3-4 Units
CS 256

Algorithmic Fairness

3 Units
CS 269I

Incentives in Computer Science

3 Units
CS 278

Social Computing

3-4 Units
CS 281

Ethics of Artificial Intelligence

3-4 Units
CS 293

Empowering Educators via Language Technology

2-4 Units
CS 323

The AI Awakening: Implications for the Economy and Society

3-4 Units
CS 324H

History of Natural Language Processing

3-4 Units
CS 329R

Race and Natural Language Processing

3 Units
CS 329T

Trustworthy Machine Learning: Building and evaluating agentic systems

3 Units
CS 329X

Human Centered NLP

3 Units
CS 337

AI-Assisted Care

1-4 Units
CS 347

Human-Computer Interaction: Foundations and Frontiers

3-4 Units
CS 377E

Designing Solutions to Global Grand Challenges

3-4 Units
CS 377G

Designing Serious Games

3-4 Units
CS 377J

Designing Systems for Collaboration, Cooperation, and Collective Action

3 Units
CS 377Q

Designing for Accessibility

3-4 Units
CS 377U

Understanding Users

3-4 Units
CS 384

Seminar on Ethical and Social Issues in Natural Language Processing

3-4 Units
CS 448B

Data Visualization

3-4 Units
CS 470

Music and AI

3-4 Units
DESIGN 255

The Design of Data

3 Units
EARTHSYS 213

Innovating for Climate and Sustainability

3 Units
EDUC 315A

Introduction to CSCL: Computer-Supported Collaborative Learning

3 Units
EDUC 484

Knowledge in the Age of AI: New Epistemic Issues in Education

3 Units
EPI 220

Deploying and Evaluating Fair AI in Healthcare

2-3 Units
HISTORY 244F

New Directions in Gendered Innovations in Science, Medicine, Technology, and Environment

4-5 Units
INTLPOL 245B

Governing Artificial Intelligence: Law, Policy, and Institutions

3 Units
LAW 4046

Data: Privacy, Property and Security

3 Units
LAW 7073

Antidiscrimination Law and Algorithmic Bias

3 Units
LAW 7102

Regulation, Evaluation, and Governance Lab: Practicum

1-5 Units
LAW 7117

Platform Regulation and the First Amendment

2-3 Units
LAW 7521

Data: Algorithms, Tools, Policy, and Society

2 Units
MS&E 254

The Ethical Analyst

3 Units
POLISCI 150A

Data Science for Politics

3-5 Units
PUBLPOL 103F

Ethics of Truth in a Post-Truth World

3 Units
PUBLPOL 353A

Science and Technology Policy

5 Units
PUBLPOL 353B

Regulating Emerging Technology: Risks, Opportunities, and Reality

3 Units
STATS 354

Generalization and Causality in Biohealth

1-3 Units

Joint MS and MBA Degree

The joint MS in Computer Science/MBA degree links two of Stanford University’s world-class programs. This combined degree allows students to develop advanced technical and managerial skills for a broader perspective on existing technologies and new technology ventures.

Admission to the joint MSCS/MBA program requires that students apply and be accepted independently to the Computer Science Department in the School of Engineering and the Graduate School of Business. Students may apply concurrently or elect to begin their course of study in CS and apply to the GSB during their first year.

Additional information on the MS in Computer Science/MBA Joint Degree Program is available on the department’s website opens in a new tab. 

Joint MS and Law Degree

Law students interested in pursuing an MS in Computer Science must apply for admission to the Computer Science Department either (i) concurrently with applying to the Law School; or (ii) after being admitted to the Law School, but no later than the earlier of (a) the end of the second year of Law School or (b) the Computer Science Department’s admission deadline for the year following that second year of Law School.

In addition to being admitted separately to the Law School and the Computer Science Department, students must secure permission from both academic units to pursue degrees in those units as part of a joint degree program.

JD/MS students may elect to begin their course of study in either the Law School or the Computer Science Department. Faculty advisors from each academic unit participate in the planning and supervising of the student’s joint program. Students must be enrolled full-time in the Law School for the first year of law studies. Otherwise, enrollment may be in the graduate school or the Law School, and students may choose courses from either program regardless of where enrolled. Students must satisfy the requirements for the J.D. degree specified by the Law School and the MS degree specified in this Bulletin.

The Law School approves courses from the Department of Computer Science that may count toward the JD degree, and the Computer Science Department approves courses from the Law School that may count toward the MS degree in Computer Science. In either case, approval may consist of a list applicable to all joint-degree students or may be tailored to each individual student program. No more than 45 units of approved courses may be counted toward both degrees. No more than 36 units of courses that originate outside the Law School may count toward the Law degree. To the extent that courses under this joint degree program originate outside the Law School but count toward the Law degree, the Law School credits permitted under Section 17(1) of the Law School Regulations shall be reduced on a unit-per-unit basis but not below zero. The maximum number of Law School credits that may be counted toward the MS in Computer Science is the greater of (i) 12 units; or (ii) the maximum number of units from courses outside of the department that MS candidates in Computer Science are permitted to count toward the MS in the case of a particular student’s individual program. Tuition and financial aid arrangements are usually through the school where the student is enrolled.

Teaching Requirement

Teaching Requirement

Graduate student assistantships are available. Half-time assistants receive a tuition scholarship for 8, 9, or 10 units per quarter during the academic year and a salary.

Duties for half-time assistants during the academic year involve approximately 20 hours of work per week. Course assistants (CAs) help an instructor teach a course by conducting discussion sections, consulting with students, and grading examinations. Research Assistants (RAs) help faculty and senior staff members with research in computer science. Many MS students are hired to staff teaching and research assistantships. However, MS students should not plan on being appointed to an assistantship.

Students with fellowships may have the opportunity to supplement their stipends by serving as graduate student assistants.

Research Requirement

Master of Science with Distinction in Research

A student who wishes to pursue an MS in CS with distinction in research must first identify a faculty advisor who agrees to supervise and support the research work. The research advisor must be a member of the Academic Council and must hold an appointment in Computer Science. The student and principal advisor must also identify another faculty member who need not be in the Department of Computer Science to serve as a secondary advisor and reader for the research report. In addition, the student must complete the following requirements beyond those for the regular MS in CS degree:

  1. Research Experience—The program must include significant research experience at the level of a half-time commitment over three academic quarters. In any given quarter, the half-time research commitment may be satisfied by a 50 percent appointment to a departmentally supported research assistantship, six units of independent study (CS 399), or a prorated combination of the two (such as a 25 percent research assistantship supplemented by three units of independent study). This research must be carried out under the direction of the primary or secondary advisor.

  2. Supervised Writing and Research—In addition to the research experience outlined in the previous requirement, students must enroll in at least three units of independent research (CS 399) under the direction of their primary or secondary advisor. These units should be closely related to the research described in the first requirement but focused more on preparing the research report described in the next section. The writing and research units described in parts (1) and (2) may be counted toward the 45 units required for the degree.

  3. All independent study units (CS 399) must be taken for letter grades, and a GPA of 3.0 (B) or better must be maintained.

  4. Research Report—Students must complete a significant report describing their research and its conclusions. The research report represents work publishable in a journal or at a high-quality conference, although it is presumably longer and more expansive in scope than a typical conference paper. A copy of the research report must be submitted to the student services office in the department three weeks before the beginning of the examination period in the student’s final quarter. The primary and secondary advisors must approve the research report before the distinction-in-research designation can be conferred.

Complete all of the following course(s):
CS 399

Independent Project

1-9 Units

Teaching and Research Assistantships in Computer Science

Graduate student assistantships are available. Half-time assistants receive a tuition scholarship for 8, 9, or 10 units per quarter during the academic year and, in addition, receive a salary.

Duties for half-time assistants during the academic year involve approximately 20 hours of work per week. Course assistants (CAs) help an instructor teach a course by conducting discussion sections, consulting with students, and grading examinations. Research assistants (RAs) help faculty and senior staff members with research in computer science. Many MS students are hired to staff teaching and research assistantships. However, MS students should not plan on being appointed to an assistantship.

Students with fellowships may have the opportunity to supplement their stipends by serving as graduate student assistants.

Subplans

Optional
Students have the option to complete a subplan as part of this program. A subplan is an officially declared and defined set of requirements that allows students to go deeper into a discipline or focus within a program.

Artificial Intelligence Subplan

Subplan Overview

All courses for this requirement must be taken on a letter-grade basis and for three or more units.  (Courses taken for a CR or S grade from Spring 2019-20 through Summer 2020-21 satisfy MS-CS requirements as if taken for a letter grade.)

  • A program of 21 units must be completed. When a subplan allows for independent study, a maximum of six units of independent study (CS 399) may be counted toward the subplan.

  • Sections A + B are required. Section C is not required if sections A + B equal 21 units or more.

  • Depth deviations are no longer advisor approved. You must fill out a petition form to the MSCS director. Petitions will only be approved in exceptional circumstances such as unforeseeable change in course availability.

A.

Complete at least 1 of the following courses:
CS 221

Artificial Intelligence: Principles and Techniques

3-4 Units
CS 229

Machine Learning

3-4 Units
  • CS229 may be substituted for CS221, in which case it can no longer be used towards depth area B requirements (no double-counting).

  • CS221 may only be waived if an equivalent course has previously been completed at another institution and approved via the waiver form on GIN by an advisor and a MS administrator.

B.

Complete at least 4 of the following courses:
CS 223A

Introduction to Robotics

3 Units
CS 224N

Natural Language Processing with Deep Learning

3-4 Units
CS 224R

Deep Reinforcement Learning

3 Units
CS 224S

Spoken Language Processing

2-4 Units
CS 224V

Agentic AI

3-4 Units
CS 224W

Machine Learning with Graphs

3-4 Units
CS 228

Probabilistic Graphical Models: Principles and Techniques

3-4 Units
CS 229

Machine Learning

3-4 Units
CS 231A

Computer Vision: From 3D Perception to 3D Reconstruction and Beyond

3-4 Units
CS 231N

Deep Learning for Computer Vision

3-4 Units
CS 234

Reinforcement Learning

3 Units
CS 237A

Principles of Robot Autonomy I

3 Units
CS 237B

Principles of Robot Autonomy II

3-4 Units
CS 238

Decision Making under Uncertainty

3-4 Units
CS 321M

AI Measurement Science

3 Units
CS 336

Language Modeling from Scratch

3-5 Units

CS229 cannot be used towards depth area B if it is being used towards depth area A.

C.

A total of at least 21 units from categories A, B, and the following:

Complete any of the following course(s):
CS 173A

Foundations of Computational Human Genomics

3-4 Units
CS 205L

Continuous Mathematical Methods with an Emphasis on Machine Learning

3 Units
CS 221M

Mechanistic Interpretability

3 Units
CS 224C

NLP for Computational Social Science

3 Units
CS 224R

Deep Reinforcement Learning

3 Units
CS 225A

Experimental Robotics

3 Units
CS 227A

Robot Perception

3-4 Units
CS 227B

General Game Playing

3 Units
CS 229B

Machine Learning for Sequence Modeling

3-4 Units
CS 229M

Machine Learning Theory

3 Units
CS 229S

Systems for Machine Learning

3 Units
CS 230

Deep Learning

3-4 Units
CS 233

Geometric and Topological Data Analysis

3 Units
CS 235

Computational Methods for Biomedical Image Analysis and Interpretation

3 Units
CS 236

Deep Generative Models

3 Units
CS 238V

Validation of Safety Critical Systems

3-4 Units
CS 239

Advanced Topics in Sequential Decision Making

3-4 Units
CS 246

Mining Massive Data Sets

3-4 Units
CS 257

Introduction to Automated Reasoning

3 Units
CS 270

Modeling Biomedical Systems

3 Units
CS 271

Algorithmic Foundations for Artificial Intelligence in Healthcare

3-4 Units
CS 273B

Deep Learning in Genomics and Biomedicine

3 Units
CS 274

Representations and Algorithms for Computational Molecular Biology

1-4 Units
CS 275

Translational Bioinformatics

3-4 Units
CS 279

Computational Biology: Structure and Organization of Biomolecules and Cells

3 Units
CS 281

Ethics of Artificial Intelligence

3-4 Units
CS 293

Empowering Educators via Language Technology

2-4 Units
CS 324H

History of Natural Language Processing

3-4 Units
CS 325B

Data for Sustainable Development

3-5 Units
CS 326

Topics in Advanced Robotic Manipulation

3-4 Units
CS 328

Foundations of Causal Machine Learning

3 Units
CS 329A

Self Improving AI Agents

3 Units
CS 329D

Machine Learning Under Distributional Shifts

3 Units
CS 329E

Machine Learning on Embedded Systems

3 Units
CS 329H

Machine Learning from Human Preferences

3 Units
CS 329M

Machine Programming

3-4 Units
CS 329P

Practical Machine Learning

3-4 Units
CS 329R

Race and Natural Language Processing

3 Units
CS 329S

Machine Learning Systems Design

3-4 Units
CS 329T

Trustworthy Machine Learning: Building and evaluating agentic systems

3 Units
CS 329X

Human Centered NLP

3 Units
CS 330

Deep Multi-task and Meta Learning

3 Units
CS 336

Language Modeling from Scratch

3-5 Units
CS 348I

Computer Graphics in the Era of AI

3-4 Units
CS 353

Seminar on Logic & Formal Philosophy

2-4 Units
CS 361

Engineering Design Optimization

3-4 Units
CS 375

Large-Scale Neural Network Modeling for Neuroscience

3 Units
CS 377E

Designing Solutions to Global Grand Challenges

3-4 Units
CS 377G

Designing Serious Games

3-4 Units
CS 377J

Designing Systems for Collaboration, Cooperation, and Collective Action

3 Units
CS 377Q

Designing for Accessibility

3-4 Units
CS 377U

Understanding Users

3-4 Units
CS 399

Independent Project

1-9 Units
CS 432

Computer Vision for Education and Social Science Research

3 Units
EE 263

Matrix Methods: Singular Value Decomposition

3 Units
EE 276

Information Theory

3 Units
EE 278

Probability and Statistical Inference

3 Units
EE 364A

Convex Optimization I

3 Units
EE 364B

Convex Optimization II

3 Units
EE 377

Information Theory and Statistics

3 Units
ENGR 205

Introduction to Control Design Techniques

3 Units
MS&E 226

Fundamentals of Data Science: Prediction, Inference, Causality

3 Units
MS&E 252

Foundations of Decision Analysis

3 Units
PSYCH 209

Neural Network Models of Cognition

4 Units
STATS 202

Statistical Learning and Data Science

3 Units
STATS 315A

Modern Applied Statistics: Learning

3 Units
STATS 315B

Modern Applied Statistics: Learning II

3 Units
  • CS377 (including CS377 with any suffix) and CS399 require the consent of MS advisor and MS administrator to verify relevance to the specialization

  • CS173A was previously offered as CS273A. Either CS173A or CS273A can be used to complete this requirement.

Computational Biology Subplan

Subplan Overview

All courses for this requirement must be taken on a letter-grade basis and for three or more units.   (Courses taken for a CR or S grade from spring 2019-20 through summer 2020-21 satisfy MS-CS requirements as if taken for a letter grade.)

  • A program of 21 units must be completed. When a subplan allows for independent study, a maximum of six units of independent study (CS 399) may be counted toward the subplan.

  • Sections A + B + C + D are required. Section E is not required if sections A-D equal 21 units or more.

  • Depth deviations are no longer advisor approved. You must fill out a petition form to the MSCS director. Petitions will only be approved in exceptional circumstances such as unforeseeable change in course availability.

A.

Complete all of the following course(s):
CS 173A

Foundations of Computational Human Genomics

3-4 Units
  • CS173A was previously offered as CS273A. Either CS173A or CS273A can be used to complete this requirement.

  • Students with equivalent coursework from external institutions may waive with the approval of their MS advisor and MS administrator.

B.

Complete all of the following course(s):
CS 221

Artificial Intelligence: Principles and Techniques

3-4 Units

C.

Complete at least 2 of the following courses:
CS 142

Web Applications

3 Units
or
CS 147L

Cross-platform Mobile App Development

3 Units
or
CS 193X

Web Programming Fundamentals

3 Units
CS 145

Intro to Modern Data Systems

3-4 Units
CS 246

Mining Massive Data Sets

3-4 Units
CS 448B

Data Visualization

3-4 Units

D.

Complete at least 3 of the following courses:
BMDS 210

Modeling Biomedical Systems

3 Units
BMDS 214

Representations and Algorithms for Computational Molecular Biology

1-4 Units
BMDS 215

Data Science for Medicine

3 Units
BMDS 217

Translational Bioinformatics

3-4 Units
BMDS 219

Mathematical Models and Medical Decisions

3 Units
BMDS 222

Cloud Computing for Biology and Healthcare

3 Units
BMDS 260

Computational Methods for Biomedical Image Analysis and Interpretation

3 Units
BMDS 270

Algorithmic Foundations for Artificial Intelligence in Healthcare

3-4 Units
CS 273B

Deep Learning in Genomics and Biomedicine

3 Units
CS 279

Computational Biology: Structure and Organization of Biomolecules and Cells

3 Units
IMMUNOL 207

Essential Methods in Computational and Systems Immunology

3 Units

E.

 A total of at least 21 units from categories (A, B, C, D) and the following:

Complete any of the following course(s):
BIO 187

Mathematical Population Biology

3 Units
CS 124

From Languages to Information

3-4 Units
CS 131

Computer Vision: Foundations and Applications

3-4 Units
CS 147

Introduction to Human-Computer Interaction Design

3-5 Units
CS 148

Introduction to Computer Graphics and Imaging

3-4 Units
CS 154

Introduction to the Theory of Computation

3-4 Units
CS 166

Advanced Data Structures

3-4 Units
CS 168

The Modern Algorithmic Toolbox

3-4 Units
CS 185

Coding with LLM Assistants

2 Units
CS 224N

Natural Language Processing with Deep Learning

3-4 Units
CS 224W

Machine Learning with Graphs

3-4 Units
CS 228

Probabilistic Graphical Models: Principles and Techniques

3-4 Units
CS 229

Machine Learning

3-4 Units
CS 229B

Machine Learning for Sequence Modeling

3-4 Units
CS 229M

Machine Learning Theory

3 Units
CS 229S

Systems for Machine Learning

3 Units
CS 230

Deep Learning

3-4 Units
CS 231N

Deep Learning for Computer Vision

3-4 Units
CS 234

Reinforcement Learning

3 Units
CS 238

Decision Making under Uncertainty

3-4 Units
CS 248A

Computer Graphics: Rendering, Geometry, and Image Manipulation

3-4 Units
CS 353

Seminar on Logic & Formal Philosophy

2-4 Units
CS 399

Independent Project

1-9 Units
STATS 215

Statistical Models in Biology

3 Units
  • CS248A - Previously offered as CS248

  • CS399 requires approval of MS advisor and MS administrator to verify relevance to the specialization

Computer and Network Security Subplan

Subplan Overivew

All courses for this requirement must be taken on a letter-grade basis and for three or more units.   (Courses taken for a CR or S grade from spring 2019-20 through summer 2020-21 satisfy MS-CS requirements as if taken for a letter grade.)

  • A program of 21 units must be completed. When a subplan allows for independent study, a maximum of six units of independent study (CS 399) may be counted toward the subplan.

  • Sections A + B are required. Section C is not required if sections A + B equal 21 units or more.

  • Depth deviations are no longer advisor approved. You must fill out a petition form to the MSCS director. Petitions will only be approved in exceptional circumstances such as unforeseeable change in course availability.

A.

Complete all of the following course(s):
CS 144

Introduction to Computer Networking

3-4 Units
CS 155

Computer and Network Security

3 Units
CS 255

Introduction to Cryptography

3 Units
CS 356

Topics in Computer and Network Security

3 Units
CS 112

Operating systems kernel implementation project

3 Units
CS 140E

Operating systems design and implementation

3-4 Units
CS 212

Operating Systems and Systems Programming

3-5 Units

Students with equivalent course work may waive with approval of their advisor and MS administrator for the following courses:

  • CS 112

  • CS 140E

  • CS144

B.

Complete at least 3 of the following courses:
CS 143

Compilers

3-4 Units
CS 149

Parallel Computing

3-4 Units
CS 152

Trust and Safety

3 Units
CS 166

Advanced Data Structures

3-4 Units
CS 190

Software Design Studio

3-4 Units
CS 238V

Validation of Safety Critical Systems

3-4 Units
CS 240

Advanced Topics in Operating Systems

3 Units
CS 240LX

Advanced Systems Laboratory, Accelerated

3 Units
CS 241

Embedded Systems Workshop

3 Units
CS 244

Advanced Topics in Networking

3-4 Units
CS 244B

Distributed Systems

3 Units
CS 244C

Advanced Networking and Distributed Systems

3-4 Units
CS 249I

The Modern Internet

3 Units
CS 251

Cryptocurrencies and blockchain technologies

3 Units
CS 257

Introduction to Automated Reasoning

3 Units
CS 258

Quantum Cryptography

3 Units
CS 259Q

Quantum Computing

3 Units
CS 329T

Trustworthy Machine Learning: Building and evaluating agentic systems

3 Units
CS 340LX

Advanced Operating System Lab: Accelerated (II)

3 Units
CS 340R

Rusty Systems

3 Units
CS 350S

Privacy-Preserving Systems

3 Units
CS 355

Advanced Topics in Cryptography

3 Units
CS 357S

Formal Methods for Computer Systems

3 Units

C.

A total of at least 21 units from categories A, B, and the following:

Complete any of the following course(s):
CS 149

Parallel Computing

3-4 Units
CS 221

Artificial Intelligence: Principles and Techniques

3-4 Units
or
CS 229

Machine Learning

3-4 Units
CS 234

Reinforcement Learning

3 Units
CS 242

Programming Languages

3-4 Units
CS 243

Program Analysis and Optimizations

3-4 Units
CS 250

Algebraic Error Correcting Codes

3 Units
CS 399

Independent Project

1-9 Units
EE 282

Computer Systems Architecture

3 Units
EE 374

Fundamentals of Blockchain Infrastructure

3 Units
EE 384S

Performance Engineering of Computer Systems & Networks

3 Units

CS399 requires approval of MS advisor and MS administrator to very relevance to the specialization.

Human-Computer Interaction Subplan

Subplan Overview

All courses for this requirement must be taken on a letter-grade basis and for three or more units.   (Courses taken for a CR or S grade from spring 2019-20 through summer 2020-21 satisfy MS-CS requirements as if taken for a letter grade.)

  • A program of 21 units must be completed. When a subplan allows for independent study, a maximum of six units of independent study (CS 399) may be counted toward the subplan.

  • Sections A + B + C are required. Section D is not required if sections A-C equal 21 units or more.

  • Depth deviations are no longer advisor approved. You must fill out a petition form to the MSCS director. Petitions will only be approved in exceptional circumstances such as unforeseeable change in course availability.

A.

Complete all of the following course(s):
CS 147

Introduction to Human-Computer Interaction Design

3-5 Units

Students who completed any of these courses for a previous degree at Stanford have satisfied this requirement: select the course and change the units in the Course List to 0. Students who took an equivalent course at another institution can submit a waiver request on GIN. CS147 may only be waived if an equivalent course has previously been completed at another institution and approved via the waiver form on GIN by an advisor and a MS administrator.

B.

Complete at least 1 of the following courses:
CS 142

Web Applications

3 Units
CS 146J

Full-Stack Web Programming

3 Units
CS 147L

Cross-platform Mobile App Development

3 Units

Students who completed any of these courses for a previous degree at Stanford have satisfied this requirement: select the course and change the units in the Course List to 0. May only be waived if an equivalent course has previously been completed at another institution and approved via the waiver form on GIN by an advisor and a MS administrator.

C.

Complete any of the following course(s):
CS 247A

Design for Artificial Intelligence

3-4 Units
CS 247B

Design for Behavior Change

3-4 Units
CS 247E

Design for Earth

3-4 Units
CS 247G

Design for Play

3-4 Units
CS 247I

Design for Understanding

3-4 Units
CS 247S

Service Design with AI

3-4 Units

CS247 any suffix besides the course used for requirement (C)

D.

Students who do not take CS347 can satisfy area D with a two-course combination of (1) COMM254 or COM224 and (2) an additional HCI elective from category (F) below.

Complete any of the following course(s):
CS 347

Human-Computer Interaction: Foundations and Frontiers

3-4 Units
COMM 254

The Politics of Algorithms

4-5 Units
or
COMM 224

Truth, Trust, and Tech

4-5 Units

E.

Complete at least 1 of the following courses:
CS 278

Social Computing

3-4 Units
CS 448B

Data Visualization

3-4 Units

May only be waived if an equivalent course has previously been completed at another institution and approved via the waiver form on GIN by an MS advisor and a MS administrator.

F.

Complete at least 2 of the following courses:
CS 177

Introduction to Product Management with AI

3-5 Units
CS 194H

User Interface Design Project

3-4 Units
CS 206

Exploring Computational Journalism

3 Units
CS 210A

Industry Innovation Lab

3-4 Units
CS 222

AI Agents and Simulations

3-4 Units
CS 224C

NLP for Computational Social Science

3 Units
CS 278

Social Computing

3-4 Units
CS 329X

Human Centered NLP

3 Units
CS 377E

Designing Solutions to Global Grand Challenges

3-4 Units
CS 377G

Designing Serious Games

3-4 Units
CS 377J

Designing Systems for Collaboration, Cooperation, and Collective Action

3 Units
CS 377P

Read, Write, Play

1-3 Units
CS 377Q

Designing for Accessibility

3-4 Units
CS 377U

Understanding Users

3-4 Units
CS 448B

Data Visualization

3-4 Units

CS 247 here must have different suffix from course used in part (c). Students who completed two of these courses for a previous degree at Stanford have satisfied this requirement: select the course and change the units in the Course List to 0.

G.

 A total of at least 21 units from Category A, B, C, D, E, F and the following:

Complete any of the following course(s):
ARTSTUDI 130

Interactive Art: Making it with Arduino

4 Units
ARTSTUDI 163

Drawing with Code

4 Units
ARTSTUDI 165A

Intro to Art & Technology

4 Units
ARTSTUDI 169

Virtual Reality: the possibility and peril of immersive artwork

4 Units
ARTSTUDI 231A

Interactive Art: Making it with Arduino

4 Units
COMM 224

Truth, Trust, and Tech

4-5 Units
COMM 254

The Politics of Algorithms

4-5 Units
COMM 272

Media Psychology

4-5 Units
COMM 314

Ethnographic Methods

1-5 Units
COMM 324

Language and Technology

3-5 Units
CS 498C

Introduction to CSCL: Computer-Supported Collaborative Learning

3 Units
DESIGN 101

History and Ethics of Design

3 Units
DESIGN 121

Introduction to Human Values in Design

4 Units
DESIGN 131

Advanced Design: Needfinding

4 Units
DESIGN 151

Business Design: Impact and Implications

3 Units
DESIGN 170

Visual Frontiers

3 Units
DESIGN 242

Wild Ways of Making

3 Units
DESIGN 245

Redesigning Finance

4 Units
DESIGN 265

Psychedelic Medicine by Design

3 Units
DESIGN 273

Negotiation by Design: Crafting Environmental Agreement

3 Units
DESIGN 284

Designing for Physical AI

4 Units
DESIGN 294

Design to Equip Learners in Under-Resourced Communities

2-3 Units
DESIGN 368

Leadership Lab

3 Units
DESIGN 399

LaunchPad: Design and Launch your Product or Service

4 Units
EDUC 200B

Introduction to Qualitative Research Methods

4 Units
EDUC 281

Technology for Learners

3 Units
EDUC 342

Child Development and New Technologies

3 Units
EDUC 432

Designing Explorable Explanations for Learning

3-4 Units
ENGR 231

Transformative Design

3 Units
ME 203

Design and Manufacturing

4 Units
ME 210

Introduction to Mechatronics

4 Units
MS&E 125

Introduction to Applied Statistics

4 Units
MS&E 184

The Future of Work: What Will it Mean to Build AI-Augmented Organizations?

4 Units
MS&E 334

Topics in Social Data

3 Units
MUSIC 220A

Fundamentals of Computer-Generated Sound

3-4 Units
MUSIC 220B

Compositional Algorithms, Psychoacoustics, and Computational Music

3-4 Units
MUSIC 220C

Research Seminar in Computer-Generated Music

3-4 Units
MUSIC 250A

Physical Interaction Design for Music

3-4 Units
MUSIC 256A

Music, Computing, Design: The Art of Design

3-4 Units
PSYCH 209

Neural Network Models of Cognition

4 Units
PSYCH 251

Experimental Methods

4 Units
PSYCH 252

Statistical Methods for Behavioral and Social Sciences

5 Units
PSYCH 253

Multivariate Analysis, Measurement, and Study of Change in Social Science Research

3 Units
STATS 203

Regression Models and Analysis of Variance

3 Units
SYMSYS 245

Cognition in Interaction Design

3 Units

Courses listed at http://dschool.stanford.edu opens in a new tab under 'elective classes' for 3 units or more and numbered 101 and above are also acceptable. List as electives in the course table below and mentioned in Student Notes.

Information Management and Analytics Subplan

Subplan Overview

All courses for this requirement must be taken on a letter-grade basis and for three or more units. (Courses taken for a CR or S grade from spring 2019-20 through summer 2020-21 satisfy MS-CS requirements as if taken for a letter grade.)

  • A program of 21 units must be completed. When a subplan allows for independent study, a maximum of six units of independent study (CS 399) may be counted toward the subplan.

  • Sections A + B are required. Section C is not required if sections A + B equal 21 units or more.

  • Depth deviations are no longer advisor approved. You must fill out a petition form to the MSCS director. Petitions will only be approved in exceptional circumstances such as unforeseeable change in course availability.

A.

Complete all of the following course(s):
CS 145

Intro to Modern Data Systems

3-4 Units

Students with equivalent coursework from external institutions may waive CS145 with MS advisor and MS administrator approval.

B.

Complete at least 4 of the following courses:
CS 224N

Natural Language Processing with Deep Learning

3-4 Units
CS 224W

Machine Learning with Graphs

3-4 Units
CS 229

Machine Learning

3-4 Units
CS 246

Mining Massive Data Sets

3-4 Units
CS 281

Ethics of Artificial Intelligence

3-4 Units

C.

A total of at least 21 units from categories A, B, and the following:

Complete any of the following course(s):
CS 125

Data: Algorithms, Tools, Policy, and Society

3 Units
CS 144

Introduction to Computer Networking

3-4 Units
CS 151

Logic Programming

3 Units
CS 173A

Foundations of Computational Human Genomics

3-4 Units
CS 190

Software Design Studio

3-4 Units
CS 221

Artificial Intelligence: Principles and Techniques

3-4 Units
CS 222

AI Agents and Simulations

3-4 Units
CS 224R

Deep Reinforcement Learning

3 Units
CS 224S

Spoken Language Processing

2-4 Units
CS 224U

Natural Language Understanding

3-4 Units
CS 224V

Agentic AI

3-4 Units
CS 228

Probabilistic Graphical Models: Principles and Techniques

3-4 Units
CS 229B

Machine Learning for Sequence Modeling

3-4 Units
CS 229M

Machine Learning Theory

3 Units
CS 229S

Systems for Machine Learning

3 Units
CS 230

Deep Learning

3-4 Units
CS 231A

Computer Vision: From 3D Perception to 3D Reconstruction and Beyond

3-4 Units
CS 231N

Deep Learning for Computer Vision

3-4 Units
CS 233

Geometric and Topological Data Analysis

3 Units
CS 234

Reinforcement Learning

3 Units
CS 236

Deep Generative Models

3 Units
CS 238

Decision Making under Uncertainty

3-4 Units
CS 240

Advanced Topics in Operating Systems

3 Units
CS 242

Programming Languages

3-4 Units
CS 243

Program Analysis and Optimizations

3-4 Units
CS 244

Advanced Topics in Networking

3-4 Units
CS 244B

Distributed Systems

3 Units
CS 251

Cryptocurrencies and blockchain technologies

3 Units
CS 255

Introduction to Cryptography

3 Units
CS 261

Combinatorial Optimization

3 Units
CS 265

Randomized Algorithms and Probabilistic Analysis

3 Units
CS 270

Modeling Biomedical Systems

3 Units
CS 271

Algorithmic Foundations for Artificial Intelligence in Healthcare

3-4 Units
CS 272

Introduction to Biomedical Informatics Research Methodology

3 Units
CS 273B

Deep Learning in Genomics and Biomedicine

3 Units
CS 274

Representations and Algorithms for Computational Molecular Biology

1-4 Units
CS 275

Translational Bioinformatics

3-4 Units
CS 279

Computational Biology: Structure and Organization of Biomolecules and Cells

3 Units
CS 288

Applied Causal Inference with Machine Learning and AI

3 Units
CS 325B

Data for Sustainable Development

3-5 Units
CS 329A

Self Improving AI Agents

3 Units
CS 329H

Machine Learning from Human Preferences

3 Units
CS 329T

Trustworthy Machine Learning: Building and evaluating agentic systems

3 Units
CS 329X

Human Centered NLP

3 Units
CS 331X

AI for Algorithmic Reasoning and Optimization

3 Units
CS 336

Language Modeling from Scratch

3-5 Units
CS 349D

AI Inference Infrastructure

3 Units
CS 349H

Software Techniques for Emerging Hardware Platforms

3 Units
CS 399

Independent Project

1-9 Units
CS 448B

Data Visualization

3-4 Units
CS 525

Data for AI

3 Units
MS&E 226

Fundamentals of Data Science: Prediction, Inference, Causality

3 Units
STATS 315A

Modern Applied Statistics: Learning

3 Units
  • CS399 requires approval of MS advisor and MS administrator to verify relevance to the specialization.

  • CS173A was previously offered as CS273A. Either CS173A or CS273A can be used to complete this requirement.

  • Note that if CS145 was waived in area (A), students should take an additional course from either area (B) or (C) in its place.

Software Theory Subplan

Subplan Overivew

All courses for this requirement must be taken on a letter-grade basis and for three or more units. (Courses taken for a CR or S grade from spring 2019-20 through summer 2020-21 satisfy MS-CS requirements as if taken for a letter grade.)

  • A program of 21 units must be completed. When a subplan allows for independent study, a maximum of six units of independent study (CS 399) may be counted toward the subplan.

  • Sections A + B + C are required. Section D is not required if sections A-C equal 21 units or more.

  • Depth deviations are no longer advisor approved. You must fill out a petition form to the MSCS director. Petitions will only be approved in exceptional circumstances such as unforeseeable change in course availability.

A.

Complete all of the following course(s):
CS 242

Programming Languages

3-4 Units
CS 243

Program Analysis and Optimizations

3-4 Units

B.

Complete at least 1 of the following courses:
CS 212

Operating Systems and Systems Programming

3-5 Units
CS 221

Artificial Intelligence: Principles and Techniques

3-4 Units
CS 229S

Systems for Machine Learning

3 Units
CS 240

Advanced Topics in Operating Systems

3 Units
CS 244

Advanced Topics in Networking

3-4 Units
CS 245

Principles of Data-Intensive Systems

3-4 Units
CS 246

Mining Massive Data Sets

3-4 Units
CS 295

Software Engineering

3 Units
CS 315B

Parallel Computing Research Project

3 Units

C.

Complete at least 1 of the following courses:
CS 255

Introduction to Cryptography

3 Units
CS 355

Advanced Topics in Cryptography

3 Units
CS 356

Topics in Computer and Network Security

3 Units

D.

A total of at least 21 units from categories A, B, C, and the following:

Complete any of the following course(s):
CS 151

Logic Programming

3 Units
CS 250

Algebraic Error Correcting Codes

3 Units
CS 257

Introduction to Automated Reasoning

3 Units
CS 261

Combinatorial Optimization

3 Units
CS 265

Randomized Algorithms and Probabilistic Analysis

3 Units
CS 315B

Parallel Computing Research Project

3 Units
CS 349H

Software Techniques for Emerging Hardware Platforms

3 Units
CS 357S

Formal Methods for Computer Systems

3 Units
CS 399

Independent Project

1-9 Units

CS399 can be used with consent of MS advisor and administrator to verify relevance to the specialization.

Systems Subplan

Subplan Overview

All courses for this requirement must be taken on a letter-grade basis and for three or more units. (Courses taken for a CR or S grade from spring 2019-20 through summer 2020-21 satisfy MS-CS requirements as if taken for a letter grade.)

  • A program of 21 units must be completed. When a subplan allows for independent study, a maximum of six units of independent study (CS 399) may be counted toward the subplan.

  • Sections A + B are required. Section C is not required if sections A + B equal 21 units or more.

  • Depth deviations are no longer advisor approved. You must fill out a petition form to the MSCS director. Petitions will only be approved in exceptional circumstances such as unforeseeable change in course availability.

A.

Complete all of the following course(s):
CS 112

Operating systems kernel implementation project

3 Units
or
CS 140E

Operating systems design and implementation

3-4 Units
or
CS 212

Operating Systems and Systems Programming

3-5 Units
CS 144

Introduction to Computer Networking

3-4 Units
CS 240

Advanced Topics in Operating Systems

3 Units
or
CS 240LX

Advanced Systems Laboratory, Accelerated

3 Units

Student may waive CS112, CS140E, CS212, and CS144 with the approval of their MS advisor and MS administrator.

B.

Complete at least 4 of the following courses:
CS 229S

Systems for Machine Learning

3 Units
CS 242

Programming Languages

3-4 Units
CS 243

Program Analysis and Optimizations

3-4 Units
CS 244

Advanced Topics in Networking

3-4 Units
CS 244B

Distributed Systems

3 Units
CS 244C

Advanced Networking and Distributed Systems

3-4 Units
CS 248A

Computer Graphics: Rendering, Geometry, and Image Manipulation

3-4 Units
CS 249I

The Modern Internet

3 Units
CS 257

Introduction to Automated Reasoning

3 Units
CS 295

Software Engineering

3 Units
EE 271

Introduction to VLSI Systems

3 Units
EE 282

Computer Systems Architecture

3 Units

CS248A was previously offered as CS248.

C.

A total of at least 21 units from categories A, B, and the following:

Complete any of the following course(s):
CS 149

Parallel Computing

3-4 Units
CS 217

Hardware Accelerators for Machine Learning

3-4 Units
CS 241

Embedded Systems Workshop

3 Units
CS 246

Mining Massive Data Sets

3-4 Units
CS 248B

Fundamentals of Computer Graphics: Animation and Simulation

3 Units
CS 251

Cryptocurrencies and blockchain technologies

3 Units
CS 255

Introduction to Cryptography

3 Units
CS 270

Modeling Biomedical Systems

3 Units
CS 272

Introduction to Biomedical Informatics Research Methodology

3 Units
CS 340LX

Advanced Operating System Lab: Accelerated (II)

3 Units
CS 340R

Rusty Systems

3 Units
CS 343D

Domain-Specific Programming Models and Compilers

3 Units
CS 349D

AI Inference Infrastructure

3 Units
CS 349F

Fabric Architectures For AI Systems

2 Units
CS 349H

Software Techniques for Emerging Hardware Platforms

3 Units
CS 349M

Machine Learning for Software Engineering

3-4 Units
CS 350S

Privacy-Preserving Systems

3 Units
CS 356

Topics in Computer and Network Security

3 Units
CS 357S

Formal Methods for Computer Systems

3 Units
CS 399

Independent Project

1-9 Units
EE 267

Virtual Reality

3-4 Units
EE 273

Digital Systems Engineering

3 Units
EE 382C

Interconnection Networks

3 Units
EE 384S

Performance Engineering of Computer Systems & Networks

3 Units

CS399 requires approval of MS advisor and MS administrator to verify relevance to the specialization.

Theoretical Computer Science Subplan

Subplan Overview

All courses for this requirement must be taken on a letter-grade basis and for three or more units. (Courses taken for a CR or S grade from spring 2019-20 through summer 2020-21 satisfy MS-CS requirements as if taken for a letter grade.)

  • A program of 21 units must be completed. When a subplan allows for independent study, a maximum of six units of independent study (CS 399) may be counted toward the subplan.

  • Section A is required. Complete the remaining 21 units by choosing courses from Section B.

  • Depth deviations are no longer advisor approved. You must fill out a petition form to the MSCS director. Petitions will only be approved in exceptional circumstances such as unforeseeable change in course availability.

A.

Complete all of the following course(s):
CS 154

Introduction to the Theory of Computation

3-4 Units
CS 261

Combinatorial Optimization

3 Units

CS154 may be waived by students with equivalent course work with the approval of their MS advisor and MS administrator.

B.

A total of at least 21 units from category A, and the following:

Complete any of the following course(s):
CS 151

Logic Programming

3 Units
CS 163

The Practice of Theory Research

3 Units
CS 166

Advanced Data Structures

3-4 Units
CS 168

The Modern Algorithmic Toolbox

3-4 Units
CS 225

Machine Learning for Discrete Optimization

3 Units
CS 228

Probabilistic Graphical Models: Principles and Techniques

3-4 Units
CS 229M

Machine Learning Theory

3 Units
CS 233

Geometric and Topological Data Analysis

3 Units
CS 236

Deep Generative Models

3 Units
CS 246

Mining Massive Data Sets

3-4 Units
CS 250

Algebraic Error Correcting Codes

3 Units
CS 251

Cryptocurrencies and blockchain technologies

3 Units
CS 254

Computational Complexity

3 Units
CS 254B

Computational Complexity II

3 Units
CS 255

Introduction to Cryptography

3 Units
CS 256

Algorithmic Fairness

3 Units
CS 257

Introduction to Automated Reasoning

3 Units
CS 258

Quantum Cryptography

3 Units
CS 259Q

Quantum Computing

3 Units
CS 263

Counting and Sampling

3 Units
CS 264

Beyond Worst-Case Analysis

3 Units
CS 265

Randomized Algorithms and Probabilistic Analysis

3 Units
CS 266Z

Robust Algorithms in the Face of Uncertainty

3 Units
CS 269I

Incentives in Computer Science

3 Units
CS 328

Foundations of Causal Machine Learning

3 Units
CS 331X

AI for Algorithmic Reasoning and Optimization

3 Units
CS 354

Topics in Intractability: Unfulfilled Algorithmic Fantasies

3 Units
CS 355

Advanced Topics in Cryptography

3 Units
CS 359D

Quantum Complexity Theory

3 Units
CS 359E

Quantum Complexity Theory

3 Units
CS 368

Algorithmic Techniques for Big Data

3 Units
CS 369O

Optimization Algorithms

3 Units
CS 369Z

Dynamic Data Structures for Graphs

3 Units
CS 399

Independent Project

1-9 Units
CS 468

Topics in Geometric Computing - 3D and 4D Foundation Models

3 Units
EE 364A

Convex Optimization I

3 Units
MS&E 310

Linear Programming

3 Units
MS&E 319

Efficient Generative Models

3 Units
  • CS359, CS369, CS399, and CS468 requires the consent of MS advisor and MS administrator to verify relevance to the specialization.

  • Multiple CS359, CS369, and/or CS468 courses may be taken as long as they are each on different topics, denoted by different letter suffixes for the courses.

  • CS331X was previously offered as CS331.

Visual Computing Subplan

Subplan Overview

All courses for this requirement must be taken on a letter-grade basis and for three or more units. (Courses taken for a CR or S grade from spring 2019-20 through summer 2020-21 satisfy MS-CS requirements as if taken for a letter grade.)

  • A program of 21 units must be completed. When a subplan allows for independent study, a maximum of six units of independent study (CS 399) may be counted toward the subplan.

  • Sections A + B are required. Section C is not required if sections A + B equal 21 units or more.

  • Depth deviations are no longer advisor approved. You must fill out a petition form to the MSCS director. Petitions will only be approved in exceptional circumstances such as unforeseeable change in course availability.

A.

Complete at least 2 of the following courses:
CS 231N

Deep Learning for Computer Vision

3-4 Units
CS 248A

Computer Graphics: Rendering, Geometry, and Image Manipulation

3-4 Units
CS 248B

Fundamentals of Computer Graphics: Animation and Simulation

3 Units

B.

Complete at least 3 additional courses from either categories A or the following:

Complete any of the following course(s):
CS 205L

Continuous Mathematical Methods with an Emphasis on Machine Learning

3 Units
CS 223A

Introduction to Robotics

3 Units
CS 231A

Computer Vision: From 3D Perception to 3D Reconstruction and Beyond

3-4 Units
CS 233

Geometric and Topological Data Analysis

3 Units
CS 348B

Computer Graphics: Image Synthesis Techniques

3-4 Units
CS 348C

Computer Graphics: Animation and Simulation

3 Units
CS 348E

Character Animation: Modeling, Simulation, and Control of Human Motion

3 Units
CS 348I

Computer Graphics in the Era of AI

3-4 Units
CS 348K

Visual Computing Systems

3-4 Units
CS 348N

Neural Models for 3D Geometry

3 Units
CS 448I

Computational Imaging

3 Units

C.

A total of at least 21 units from categories A, B, and the following:

Complete any of the following course(s):
CS 123

A Hands-On Introduction to Building AI-Enabled Robots

3 Units
CS 131

Computer Vision: Foundations and Applications

3-4 Units
CS 148

Introduction to Computer Graphics and Imaging

3-4 Units
CS 149

Parallel Computing

3-4 Units
CS 221

Artificial Intelligence: Principles and Techniques

3-4 Units
CS 224N

Natural Language Processing with Deep Learning

3-4 Units
CS 224R

Deep Reinforcement Learning

3 Units
CS 229

Machine Learning

3-4 Units
CS 230

Deep Learning

3-4 Units
CS 234

Reinforcement Learning

3 Units
CS 236

Deep Generative Models

3 Units
CS 448B

Data Visualization

3-4 Units
CS 448Z

Physically Based Animation and Sound

3-4 Units
EE 261

The Fourier Transform and Its Applications

3 Units
EE 267

Virtual Reality

3-4 Units