Master of Science
MSCotermJoint DegreeOverview
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):
Logic, Automata, and Computability
CS 103
Mathematical Foundations of Computing
Probability
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.
Algorithmic Analysis
CS 161
Design and Analysis of Algorithms
Principles of Computer Systems
CS 111
Operating Systems Principles
Significant Software Implementation
CS 140E
Operating systems design and implementation
CS 143
Compilers
CS 144
Introduction to Computer Networking
CS 145
Intro to Modern Data Systems
CS 149
Parallel Computing
CS 151
Logic Programming
CS 190
Software Design Studio
CS 210B
Industry Innovation Lab
CS 224N
Natural Language Processing with Deep Learning
CS 224R
Deep Reinforcement Learning
CS 227B
General Game Playing
CS 231N
Deep Learning for Computer Vision
CS 239
Advanced Topics in Sequential Decision Making
CS 243
Program Analysis and Optimizations
CS 248A
Computer Graphics: Rendering, Geometry, and Image Manipulation
CS 248B
Fundamentals of Computer Graphics: Animation and Simulation
CS 251
Cryptocurrencies and blockchain technologies
CS 330
Deep Multi-task and Meta Learning
CS 336
Language Modeling from Scratch
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.
Breadth Area A: Formal Foundations
APPPHYS 229
Statistical Mechanics of Learning and Computation
CS 154
Introduction to the Theory of Computation
CS 157
Computational Logic
CS 166
Advanced Data Structures
CS 168
The Modern Algorithmic Toolbox
CS 205L
Continuous Mathematical Methods with an Emphasis on Machine Learning
CS 225
Machine Learning for Discrete Optimization
CS 229M
Machine Learning Theory
CS 250
Algebraic Error Correcting Codes
CS 254
Computational Complexity
CS 254B
Computational Complexity II
CS 255
Introduction to Cryptography
CS 256
Algorithmic Fairness
CS 257
Introduction to Automated Reasoning
CS 258
Quantum Cryptography
CS 259Q
Quantum Computing
CS 261
Combinatorial Optimization
CS 263
Counting and Sampling
CS 264
Beyond Worst-Case Analysis
CS 265
Randomized Algorithms and Probabilistic Analysis
CS 269I
Incentives in Computer Science
CS 328
Foundations of Causal Machine Learning
CS 354
Topics in Intractability: Unfulfilled Algorithmic Fantasies
CS 355
Advanced Topics in Cryptography
CS 357S
Formal Methods for Computer Systems
CS 359D
Quantum Complexity Theory
CS 369O
Optimization Algorithms
EE 276
Information Theory
EE 364A
Convex Optimization I
EE 364B
Convex Optimization II
EE 377
Information Theory and Statistics
PHIL 251
Metalogic
STATS 311
Information Theory and Statistics
Breadth Area B: Learning and Modeling
CS 173A
Foundations of Computational Human Genomics
CS 205L
Continuous Mathematical Methods with an Emphasis on Machine Learning
CS 221
Artificial Intelligence: Principles and Techniques
CS 223A
Introduction to Robotics
CS 224N
Natural Language Processing with Deep Learning
CS 224R
Deep Reinforcement Learning
CS 224S
Spoken Language Processing
CS 224U
Natural Language Understanding
CS 224V
Agentic AI
CS 224W
Machine Learning with Graphs
CS 227A
Robot Perception
CS 227B
General Game Playing
CS 228
Probabilistic Graphical Models: Principles and Techniques
CS 229
Machine Learning
CS 229B
Machine Learning for Sequence Modeling
CS 229M
Machine Learning Theory
CS 230
Deep Learning
CS 231A
Computer Vision: From 3D Perception to 3D Reconstruction and Beyond
CS 231N
Deep Learning for Computer Vision
CS 233
Geometric and Topological Data Analysis
CS 234
Reinforcement Learning
CS 236
Deep Generative Models
CS 237A
Principles of Robot Autonomy I
CS 237B
Principles of Robot Autonomy II
CS 238
Decision Making under Uncertainty
CS 239
Advanced Topics in Sequential Decision Making
CS 248A
Computer Graphics: Rendering, Geometry, and Image Manipulation
CS 248B
Fundamentals of Computer Graphics: Animation and Simulation
CS 271
Algorithmic Foundations for Artificial Intelligence in Healthcare
CS 272
Introduction to Biomedical Informatics Research Methodology
CS 273B
Deep Learning in Genomics and Biomedicine
CS 274
Representations and Algorithms for Computational Molecular Biology
CS 277
Foundation Models for Healthcare
CS 279
Computational Biology: Structure and Organization of Biomolecules and Cells
CS 281
Ethics of Artificial Intelligence
CS 321M
AI Measurement Science
CS 326
Topics in Advanced Robotic Manipulation
CS 329A
Self Improving AI Agents
CS 329D
Machine Learning Under Distributional Shifts
CS 329H
Machine Learning from Human Preferences
CS 329T
Trustworthy Machine Learning: Building and evaluating agentic systems
CS 329X
Human Centered NLP
CS 330
Deep Multi-task and Meta Learning
CS 332
Advanced Survey of Reinforcement Learning
CS 333
Algorithms for Interactive Robotics
CS 336
Language Modeling from Scratch
CS 348B
Computer Graphics: Image Synthesis Techniques
CS 348C
Computer Graphics: Animation and Simulation
CS 348E
Character Animation: Modeling, Simulation, and Control of Human Motion
CS 348I
Computer Graphics in the Era of AI
CS 348N
Neural Models for 3D Geometry
CS 375
Large-Scale Neural Network Modeling for Neuroscience
Breadth Area C: Systems
CS 112
Operating systems kernel implementation project
CS 140E
Operating systems design and implementation
CS 143
Compilers
CS 144
Introduction to Computer Networking
CS 145
Intro to Modern Data Systems
CS 149
Parallel Computing
CS 155
Computer and Network Security
CS 212
Operating Systems and Systems Programming
CS 217
Hardware Accelerators for Machine Learning
CS 229S
Systems for Machine Learning
CS 240
Advanced Topics in Operating Systems
CS 240LX
Advanced Systems Laboratory, Accelerated
CS 242
Programming Languages
CS 243
Program Analysis and Optimizations
CS 244
Advanced Topics in Networking
CS 244B
Distributed Systems
CS 244C
Advanced Networking and Distributed Systems
CS 245
Principles of Data-Intensive Systems
CS 246
Mining Massive Data Sets
CS 249I
The Modern Internet
CS 251
Cryptocurrencies and blockchain technologies
CS 257
Introduction to Automated Reasoning
CS 295
Software Engineering
CS 348K
Visual Computing Systems
CS 349D
AI Inference Infrastructure
CS 349F
Fabric Architectures For AI Systems
CS 349H
Software Techniques for Emerging Hardware Platforms
CS 350S
Privacy-Preserving Systems
CS 356
Topics in Computer and Network Security
CS 357S
Formal Methods for Computer Systems
EE 180
Digital Systems Architecture
EE 282
Computer Systems Architecture
EE 382C
Interconnection Networks
CS111 should be taken prior to taking CS112.
Breadth Area D: People and Society
AMSTUD 145
Silicon Valley
BMDS 215
Data Science for Medicine
BMDS 223
Deploying and Evaluating Fair AI in Healthcare
BIOS 244
Applied Artificial Intelligence in Health Care
COMM 254
The Politics of Algorithms
COMM 266
Virtual People
COMM 286
Media, Technology, and the Body
COMM 324
Language and Technology
CS 121
Equity and Governance for Artificial Intelligence
CS 125
Data: Algorithms, Tools, Policy, and Society
CS 147
Introduction to Human-Computer Interaction Design
CS 148
Introduction to Computer Graphics and Imaging
CS 152
Trust and Safety
CS 181
Computers, Ethics, and Public Policy
CS 181W
Computers, Ethics, and Public Policy (WIM)
CS 182
Ethics, Public Policy, and Technological Change
CS 182W
Ethics, Public Policy, and Technological Change (WIM)
CS 194H
User Interface Design Project
CS 206
Exploring Computational Journalism
CS 207
Antidiscrimination Law and Algorithmic Bias
CS 222
AI Agents and Simulations
CS 224C
NLP for Computational Social Science
CS 247A
Design for Artificial Intelligence
CS 247B
Design for Behavior Change
CS 247E
Design for Earth
CS 247G
Design for Play
CS 247I
Design for Understanding
CS 247S
Service Design with AI
CS 256
Algorithmic Fairness
CS 269I
Incentives in Computer Science
CS 278
Social Computing
CS 281
Ethics of Artificial Intelligence
CS 293
Empowering Educators via Language Technology
CS 323
The AI Awakening: Implications for the Economy and Society
CS 324H
History of Natural Language Processing
CS 329R
Race and Natural Language Processing
CS 329T
Trustworthy Machine Learning: Building and evaluating agentic systems
CS 329X
Human Centered NLP
CS 337
AI-Assisted Care
CS 347
Human-Computer Interaction: Foundations and Frontiers
CS 377E
Designing Solutions to Global Grand Challenges
CS 377G
Designing Serious Games
CS 377J
Designing Systems for Collaboration, Cooperation, and Collective Action
CS 377Q
Designing for Accessibility
CS 377U
Understanding Users
CS 384
Seminar on Ethical and Social Issues in Natural Language Processing
CS 448B
Data Visualization
CS 470
Music and AI
DESIGN 255
The Design of Data
EARTHSYS 213
Innovating for Climate and Sustainability
EDUC 315A
Introduction to CSCL: Computer-Supported Collaborative Learning
EDUC 484
Knowledge in the Age of AI: New Epistemic Issues in Education
EPI 220
Deploying and Evaluating Fair AI in Healthcare
HISTORY 244F
New Directions in Gendered Innovations in Science, Medicine, Technology, and Environment
INTLPOL 245B
Governing Artificial Intelligence: Law, Policy, and Institutions
LAW 4046
Data: Privacy, Property and Security
LAW 7073
Antidiscrimination Law and Algorithmic Bias
LAW 7102
Regulation, Evaluation, and Governance Lab: Practicum
LAW 7117
Platform Regulation and the First Amendment
LAW 7521
Data: Algorithms, Tools, Policy, and Society
MS&E 254
The Ethical Analyst
POLISCI 150A
Data Science for Politics
PUBLPOL 103F
Ethics of Truth in a Post-Truth World
PUBLPOL 353A
Science and Technology Policy
PUBLPOL 353B
Regulating Emerging Technology: Risks, Opportunities, and Reality
STATS 354
Generalization and Causality in Biohealth
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:
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.
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.
All independent study units (CS 399) must be taken for letter grades, and a GPA of 3.0 (B) or better must be maintained.
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.
CS 399
Independent Project
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
OptionalArtificial 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.
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.
CS 223A
Introduction to Robotics
CS 224N
Natural Language Processing with Deep Learning
CS 224R
Deep Reinforcement Learning
CS 224S
Spoken Language Processing
CS 224V
Agentic AI
CS 224W
Machine Learning with Graphs
CS 228
Probabilistic Graphical Models: Principles and Techniques
CS 229
Machine Learning
CS 231A
Computer Vision: From 3D Perception to 3D Reconstruction and Beyond
CS 231N
Deep Learning for Computer Vision
CS 234
Reinforcement Learning
CS 237A
Principles of Robot Autonomy I
CS 237B
Principles of Robot Autonomy II
CS 238
Decision Making under Uncertainty
CS 321M
AI Measurement Science
CS 336
Language Modeling from Scratch
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:
CS 173A
Foundations of Computational Human Genomics
CS 205L
Continuous Mathematical Methods with an Emphasis on Machine Learning
CS 221M
Mechanistic Interpretability
CS 224C
NLP for Computational Social Science
CS 224R
Deep Reinforcement Learning
CS 225A
Experimental Robotics
CS 227A
Robot Perception
CS 227B
General Game Playing
CS 229B
Machine Learning for Sequence Modeling
CS 229M
Machine Learning Theory
CS 229S
Systems for Machine Learning
CS 230
Deep Learning
CS 233
Geometric and Topological Data Analysis
CS 235
Computational Methods for Biomedical Image Analysis and Interpretation
CS 236
Deep Generative Models
CS 238V
Validation of Safety Critical Systems
CS 239
Advanced Topics in Sequential Decision Making
CS 246
Mining Massive Data Sets
CS 257
Introduction to Automated Reasoning
CS 270
Modeling Biomedical Systems
CS 271
Algorithmic Foundations for Artificial Intelligence in Healthcare
CS 273B
Deep Learning in Genomics and Biomedicine
CS 274
Representations and Algorithms for Computational Molecular Biology
CS 275
Translational Bioinformatics
CS 279
Computational Biology: Structure and Organization of Biomolecules and Cells
CS 281
Ethics of Artificial Intelligence
CS 293
Empowering Educators via Language Technology
CS 324H
History of Natural Language Processing
CS 325B
Data for Sustainable Development
CS 326
Topics in Advanced Robotic Manipulation
CS 328
Foundations of Causal Machine Learning
CS 329A
Self Improving AI Agents
CS 329D
Machine Learning Under Distributional Shifts
CS 329E
Machine Learning on Embedded Systems
CS 329H
Machine Learning from Human Preferences
CS 329M
Machine Programming
CS 329P
Practical Machine Learning
CS 329R
Race and Natural Language Processing
CS 329S
Machine Learning Systems Design
CS 329T
Trustworthy Machine Learning: Building and evaluating agentic systems
CS 329X
Human Centered NLP
CS 330
Deep Multi-task and Meta Learning
CS 336
Language Modeling from Scratch
CS 348I
Computer Graphics in the Era of AI
CS 353
Seminar on Logic & Formal Philosophy
CS 361
Engineering Design Optimization
CS 375
Large-Scale Neural Network Modeling for Neuroscience
CS 377E
Designing Solutions to Global Grand Challenges
CS 377G
Designing Serious Games
CS 377J
Designing Systems for Collaboration, Cooperation, and Collective Action
CS 377Q
Designing for Accessibility
CS 377U
Understanding Users
CS 399
Independent Project
CS 432
Computer Vision for Education and Social Science Research
EE 263
Matrix Methods: Singular Value Decomposition
EE 276
Information Theory
EE 278
Probability and Statistical Inference
EE 364A
Convex Optimization I
EE 364B
Convex Optimization II
EE 377
Information Theory and Statistics
ENGR 205
Introduction to Control Design Techniques
MS&E 226
Fundamentals of Data Science: Prediction, Inference, Causality
MS&E 252
Foundations of Decision Analysis
PSYCH 209
Neural Network Models of Cognition
STATS 202
Statistical Learning and Data Science
STATS 315A
Modern Applied Statistics: Learning
STATS 315B
Modern Applied Statistics: Learning II
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.
CS 173A
Foundations of Computational Human Genomics
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.
CS 221
Artificial Intelligence: Principles and Techniques
D.
BMDS 210
Modeling Biomedical Systems
BMDS 214
Representations and Algorithms for Computational Molecular Biology
BMDS 215
Data Science for Medicine
BMDS 217
Translational Bioinformatics
BMDS 219
Mathematical Models and Medical Decisions
BMDS 222
Cloud Computing for Biology and Healthcare
BMDS 260
Computational Methods for Biomedical Image Analysis and Interpretation
BMDS 270
Algorithmic Foundations for Artificial Intelligence in Healthcare
CS 273B
Deep Learning in Genomics and Biomedicine
CS 279
Computational Biology: Structure and Organization of Biomolecules and Cells
IMMUNOL 207
Essential Methods in Computational and Systems Immunology
E.
A total of at least 21 units from categories (A, B, C, D) and the following:
BIO 187
Mathematical Population Biology
CS 124
From Languages to Information
CS 131
Computer Vision: Foundations and Applications
CS 147
Introduction to Human-Computer Interaction Design
CS 148
Introduction to Computer Graphics and Imaging
CS 154
Introduction to the Theory of Computation
CS 166
Advanced Data Structures
CS 168
The Modern Algorithmic Toolbox
CS 185
Coding with LLM Assistants
CS 224N
Natural Language Processing with Deep Learning
CS 224W
Machine Learning with Graphs
CS 228
Probabilistic Graphical Models: Principles and Techniques
CS 229
Machine Learning
CS 229B
Machine Learning for Sequence Modeling
CS 229M
Machine Learning Theory
CS 229S
Systems for Machine Learning
CS 230
Deep Learning
CS 231N
Deep Learning for Computer Vision
CS 234
Reinforcement Learning
CS 238
Decision Making under Uncertainty
CS 248A
Computer Graphics: Rendering, Geometry, and Image Manipulation
CS 353
Seminar on Logic & Formal Philosophy
CS 399
Independent Project
STATS 215
Statistical Models in Biology
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.
CS 144
Introduction to Computer Networking
CS 155
Computer and Network Security
CS 255
Introduction to Cryptography
CS 356
Topics in Computer and Network Security
CS 112
Operating systems kernel implementation project
CS 140E
Operating systems design and implementation
CS 212
Operating Systems and Systems Programming
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.
CS 143
Compilers
CS 149
Parallel Computing
CS 152
Trust and Safety
CS 166
Advanced Data Structures
CS 190
Software Design Studio
CS 238V
Validation of Safety Critical Systems
CS 240
Advanced Topics in Operating Systems
CS 240LX
Advanced Systems Laboratory, Accelerated
CS 241
Embedded Systems Workshop
CS 244
Advanced Topics in Networking
CS 244B
Distributed Systems
CS 244C
Advanced Networking and Distributed Systems
CS 249I
The Modern Internet
CS 251
Cryptocurrencies and blockchain technologies
CS 257
Introduction to Automated Reasoning
CS 258
Quantum Cryptography
CS 259Q
Quantum Computing
CS 329T
Trustworthy Machine Learning: Building and evaluating agentic systems
CS 340LX
Advanced Operating System Lab: Accelerated (II)
CS 340R
Rusty Systems
CS 350S
Privacy-Preserving Systems
CS 355
Advanced Topics in Cryptography
CS 357S
Formal Methods for Computer Systems
C.
A total of at least 21 units from categories A, B, and the following:
CS 149
Parallel Computing
CS 234
Reinforcement Learning
CS 242
Programming Languages
CS 243
Program Analysis and Optimizations
CS 250
Algebraic Error Correcting Codes
CS 399
Independent Project
EE 282
Computer Systems Architecture
EE 374
Fundamentals of Blockchain Infrastructure
EE 384S
Performance Engineering of Computer Systems & Networks
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.
CS 147
Introduction to Human-Computer Interaction Design
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.
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.
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.
F.
CS 177
Introduction to Product Management with AI
CS 194H
User Interface Design Project
CS 206
Exploring Computational Journalism
CS 210A
Industry Innovation Lab
CS 222
AI Agents and Simulations
CS 224C
NLP for Computational Social Science
CS 278
Social Computing
CS 329X
Human Centered NLP
CS 377E
Designing Solutions to Global Grand Challenges
CS 377G
Designing Serious Games
CS 377J
Designing Systems for Collaboration, Cooperation, and Collective Action
CS 377P
Read, Write, Play
CS 377Q
Designing for Accessibility
CS 377U
Understanding Users
CS 448B
Data Visualization
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:
ARTSTUDI 130
Interactive Art: Making it with Arduino
ARTSTUDI 163
Drawing with Code
ARTSTUDI 165A
Intro to Art & Technology
ARTSTUDI 169
Virtual Reality: the possibility and peril of immersive artwork
ARTSTUDI 231A
Interactive Art: Making it with Arduino
COMM 224
Truth, Trust, and Tech
COMM 254
The Politics of Algorithms
COMM 272
Media Psychology
COMM 314
Ethnographic Methods
COMM 324
Language and Technology
CS 498C
Introduction to CSCL: Computer-Supported Collaborative Learning
DESIGN 101
History and Ethics of Design
DESIGN 121
Introduction to Human Values in Design
DESIGN 131
Advanced Design: Needfinding
DESIGN 151
Business Design: Impact and Implications
DESIGN 170
Visual Frontiers
DESIGN 242
Wild Ways of Making
DESIGN 245
Redesigning Finance
DESIGN 265
Psychedelic Medicine by Design
DESIGN 273
Negotiation by Design: Crafting Environmental Agreement
DESIGN 284
Designing for Physical AI
DESIGN 294
Design to Equip Learners in Under-Resourced Communities
DESIGN 368
Leadership Lab
DESIGN 399
LaunchPad: Design and Launch your Product or Service
EDUC 200B
Introduction to Qualitative Research Methods
EDUC 281
Technology for Learners
EDUC 342
Child Development and New Technologies
EDUC 432
Designing Explorable Explanations for Learning
ENGR 231
Transformative Design
ME 203
Design and Manufacturing
ME 210
Introduction to Mechatronics
MS&E 125
Introduction to Applied Statistics
MS&E 184
The Future of Work: What Will it Mean to Build AI-Augmented Organizations?
MS&E 334
Topics in Social Data
MUSIC 220A
Fundamentals of Computer-Generated Sound
MUSIC 220B
Compositional Algorithms, Psychoacoustics, and Computational Music
MUSIC 220C
Research Seminar in Computer-Generated Music
MUSIC 250A
Physical Interaction Design for Music
MUSIC 256A
Music, Computing, Design: The Art of Design
PSYCH 209
Neural Network Models of Cognition
PSYCH 251
Experimental Methods
PSYCH 252
Statistical Methods for Behavioral and Social Sciences
PSYCH 253
Multivariate Analysis, Measurement, and Study of Change in Social Science Research
STATS 203
Regression Models and Analysis of Variance
SYMSYS 245
Cognition in Interaction Design
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.
CS 145
Intro to Modern Data Systems
Students with equivalent coursework from external institutions may waive CS145 with MS advisor and MS administrator approval.
C.
A total of at least 21 units from categories A, B, and the following:
CS 125
Data: Algorithms, Tools, Policy, and Society
CS 144
Introduction to Computer Networking
CS 151
Logic Programming
CS 173A
Foundations of Computational Human Genomics
CS 190
Software Design Studio
CS 221
Artificial Intelligence: Principles and Techniques
CS 222
AI Agents and Simulations
CS 224R
Deep Reinforcement Learning
CS 224S
Spoken Language Processing
CS 224U
Natural Language Understanding
CS 224V
Agentic AI
CS 228
Probabilistic Graphical Models: Principles and Techniques
CS 229B
Machine Learning for Sequence Modeling
CS 229M
Machine Learning Theory
CS 229S
Systems for Machine Learning
CS 230
Deep Learning
CS 231A
Computer Vision: From 3D Perception to 3D Reconstruction and Beyond
CS 231N
Deep Learning for Computer Vision
CS 233
Geometric and Topological Data Analysis
CS 234
Reinforcement Learning
CS 236
Deep Generative Models
CS 238
Decision Making under Uncertainty
CS 240
Advanced Topics in Operating Systems
CS 242
Programming Languages
CS 243
Program Analysis and Optimizations
CS 244
Advanced Topics in Networking
CS 244B
Distributed Systems
CS 251
Cryptocurrencies and blockchain technologies
CS 255
Introduction to Cryptography
CS 261
Combinatorial Optimization
CS 265
Randomized Algorithms and Probabilistic Analysis
CS 270
Modeling Biomedical Systems
CS 271
Algorithmic Foundations for Artificial Intelligence in Healthcare
CS 272
Introduction to Biomedical Informatics Research Methodology
CS 273B
Deep Learning in Genomics and Biomedicine
CS 274
Representations and Algorithms for Computational Molecular Biology
CS 275
Translational Bioinformatics
CS 279
Computational Biology: Structure and Organization of Biomolecules and Cells
CS 288
Applied Causal Inference with Machine Learning and AI
CS 325B
Data for Sustainable Development
CS 329A
Self Improving AI Agents
CS 329H
Machine Learning from Human Preferences
CS 329T
Trustworthy Machine Learning: Building and evaluating agentic systems
CS 329X
Human Centered NLP
CS 331X
AI for Algorithmic Reasoning and Optimization
CS 336
Language Modeling from Scratch
CS 349D
AI Inference Infrastructure
CS 349H
Software Techniques for Emerging Hardware Platforms
CS 399
Independent Project
CS 448B
Data Visualization
CS 525
Data for AI
MS&E 226
Fundamentals of Data Science: Prediction, Inference, Causality
STATS 315A
Modern Applied Statistics: Learning
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.
B.
CS 212
Operating Systems and Systems Programming
CS 221
Artificial Intelligence: Principles and Techniques
CS 229S
Systems for Machine Learning
CS 240
Advanced Topics in Operating Systems
CS 244
Advanced Topics in Networking
CS 245
Principles of Data-Intensive Systems
CS 246
Mining Massive Data Sets
CS 295
Software Engineering
CS 315B
Parallel Computing Research Project
D.
A total of at least 21 units from categories A, B, C, and the following:
CS 151
Logic Programming
CS 250
Algebraic Error Correcting Codes
CS 257
Introduction to Automated Reasoning
CS 261
Combinatorial Optimization
CS 265
Randomized Algorithms and Probabilistic Analysis
CS 315B
Parallel Computing Research Project
CS 349H
Software Techniques for Emerging Hardware Platforms
CS 357S
Formal Methods for Computer Systems
CS 399
Independent Project
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.
CS 144
Introduction to Computer Networking
Student may waive CS112, CS140E, CS212, and CS144 with the approval of their MS advisor and MS administrator.
B.
CS 229S
Systems for Machine Learning
CS 242
Programming Languages
CS 243
Program Analysis and Optimizations
CS 244
Advanced Topics in Networking
CS 244B
Distributed Systems
CS 244C
Advanced Networking and Distributed Systems
CS 248A
Computer Graphics: Rendering, Geometry, and Image Manipulation
CS 249I
The Modern Internet
CS 257
Introduction to Automated Reasoning
CS 295
Software Engineering
EE 271
Introduction to VLSI Systems
EE 282
Computer Systems Architecture
CS248A was previously offered as CS248.
C.
A total of at least 21 units from categories A, B, and the following:
CS 149
Parallel Computing
CS 217
Hardware Accelerators for Machine Learning
CS 241
Embedded Systems Workshop
CS 246
Mining Massive Data Sets
CS 248B
Fundamentals of Computer Graphics: Animation and Simulation
CS 251
Cryptocurrencies and blockchain technologies
CS 255
Introduction to Cryptography
CS 270
Modeling Biomedical Systems
CS 272
Introduction to Biomedical Informatics Research Methodology
CS 340LX
Advanced Operating System Lab: Accelerated (II)
CS 340R
Rusty Systems
CS 343D
Domain-Specific Programming Models and Compilers
CS 349D
AI Inference Infrastructure
CS 349F
Fabric Architectures For AI Systems
CS 349H
Software Techniques for Emerging Hardware Platforms
CS 349M
Machine Learning for Software Engineering
CS 350S
Privacy-Preserving Systems
CS 356
Topics in Computer and Network Security
CS 357S
Formal Methods for Computer Systems
CS 399
Independent Project
EE 267
Virtual Reality
EE 273
Digital Systems Engineering
EE 382C
Interconnection Networks
EE 384S
Performance Engineering of Computer Systems & Networks
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.
B.
A total of at least 21 units from category A, and the following:
CS 151
Logic Programming
CS 163
The Practice of Theory Research
CS 166
Advanced Data Structures
CS 168
The Modern Algorithmic Toolbox
CS 225
Machine Learning for Discrete Optimization
CS 228
Probabilistic Graphical Models: Principles and Techniques
CS 229M
Machine Learning Theory
CS 233
Geometric and Topological Data Analysis
CS 236
Deep Generative Models
CS 246
Mining Massive Data Sets
CS 250
Algebraic Error Correcting Codes
CS 251
Cryptocurrencies and blockchain technologies
CS 254
Computational Complexity
CS 254B
Computational Complexity II
CS 255
Introduction to Cryptography
CS 256
Algorithmic Fairness
CS 257
Introduction to Automated Reasoning
CS 258
Quantum Cryptography
CS 259Q
Quantum Computing
CS 263
Counting and Sampling
CS 264
Beyond Worst-Case Analysis
CS 265
Randomized Algorithms and Probabilistic Analysis
CS 266Z
Robust Algorithms in the Face of Uncertainty
CS 269I
Incentives in Computer Science
CS 328
Foundations of Causal Machine Learning
CS 331X
AI for Algorithmic Reasoning and Optimization
CS 354
Topics in Intractability: Unfulfilled Algorithmic Fantasies
CS 355
Advanced Topics in Cryptography
CS 359D
Quantum Complexity Theory
CS 359E
Quantum Complexity Theory
CS 368
Algorithmic Techniques for Big Data
CS 369O
Optimization Algorithms
CS 369Z
Dynamic Data Structures for Graphs
CS 399
Independent Project
CS 468
Topics in Geometric Computing - 3D and 4D Foundation Models
EE 364A
Convex Optimization I
MS&E 310
Linear Programming
MS&E 319
Efficient Generative Models
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.
B.
Complete at least 3 additional courses from either categories A or the following:
CS 205L
Continuous Mathematical Methods with an Emphasis on Machine Learning
CS 223A
Introduction to Robotics
CS 231A
Computer Vision: From 3D Perception to 3D Reconstruction and Beyond
CS 233
Geometric and Topological Data Analysis
CS 348B
Computer Graphics: Image Synthesis Techniques
CS 348C
Computer Graphics: Animation and Simulation
CS 348E
Character Animation: Modeling, Simulation, and Control of Human Motion
CS 348I
Computer Graphics in the Era of AI
CS 348K
Visual Computing Systems
CS 348N
Neural Models for 3D Geometry
CS 448I
Computational Imaging
C.
A total of at least 21 units from categories A, B, and the following:
CS 123
A Hands-On Introduction to Building AI-Enabled Robots
CS 131
Computer Vision: Foundations and Applications
CS 148
Introduction to Computer Graphics and Imaging
CS 149
Parallel Computing
CS 221
Artificial Intelligence: Principles and Techniques
CS 224N
Natural Language Processing with Deep Learning
CS 224R
Deep Reinforcement Learning
CS 229
Machine Learning
CS 230
Deep Learning
CS 234
Reinforcement Learning
CS 236
Deep Generative Models
CS 448B
Data Visualization
CS 448Z
Physically Based Animation and Sound
EE 261
The Fourier Transform and Its Applications
EE 267
Virtual Reality

:format(webp))