0% found this document useful (0 votes)
43 views

Program CS MS

Uploaded by

jsb.rohitsingh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views

Program CS MS

Uploaded by

jsb.rohitsingh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

CS-MS - Computer Science (MS)

Overview
Pro gram 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.
Adm issio n
Applications to the MS program and all supporting documents must be submitted and received online by the published deadline. Information on
admission requirements is available on the departmentʼs website; see the departmentʼs deadlines page. Exceptions are made for applicants who are
already students at Stanford and are applying to the coterminal program.
S imple Requisit es

Co re Pro g ram Requirem ent s


T ype
Completion Requirement

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 Requirement 1. Thus, students needing to take
more than two of the courses listed in Requirement 1 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 Requirement
1 and some prior coursework related to their specialization area.

Foundations

Fulf ill ALL o f t he f o llo wing requirem ent s:

Foundations Requirement Overveiw

Students must complete the following courses or waive them by providing evidence to their advisors that similar or more advanced courses
have been taken, either at Stanford or another institution (total units used to satisfy foundations requirement may not exceed 10):

AND

Logic, Automata, and Computability

Co m plet e ALL o f t he f o llo wing Co urses:


CS103 - Mathematical Foundations of Computing

AND

Probability
Co m plet e at least 1 o f t he f o llo wing co urses:
CS109 - Introduction to Probability for Computer Scientists
CME106 - Introduction to Probability and Statistics for Engineers
EE178 - Probabilistic Systems Analysis
MS&E220 - Probabilistic Analysis
STATS116 - Theory of Probability (Inactive)

AND

Algorithmic Analysis
Co m plet e ALL o f t he f o llo wing Co urses:
CS161 - Design and Analysis of Algorithms

AND
Computer Organization and Systems
Co m plet e ALL o f t he f o llo wing Co urses:
CS107 - Computer Organization and Systems
OR CS107E - Computer Systems from the Ground Up

AND

Principles of Computer Systems

Co m plet e ALL o f t he f o llo wing Co urses:


CS111 - Operating Systems Principles

Significant Software Implementation


Co m plet e at least 1 o f t he f o llo wing co urses:
CS140 - Operating Systems and Systems Programming
OR CS212 - Operating Systems and Systems Programming
OR CS112 - Operating systems kernel implementation project
CS140E - Operating systems design and implementation
CS143 - Compilers
CS144 - Introduction to Computer Networking
CS145 - Introduction to Big Data Systems
CS148 - Introduction to Computer Graphics and Imaging
CS151 - Logic Programming
CS190 - Software Design Studio
CS210B - Software Project Experience with Corporate Partners
CS224R - Deep Reinforcement Learning
CS227B - General Game Playing
CS231N - Deep Learning for Computer Vision
CS239 - Advanced Topics in Sequential Decision Making
CS243 - Program Analysis and Optimizations
CS248A - Computer Graphics: Rendering, Geometry, and Image Manipulation
CS248B - Fundamentals of Computer Graphics: Animation and Simulation
CS251 - Cryptocurrencies and blockchain technologies
CS330 - Deep Multi-task and Meta Learning

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

Electives

Additional elective units must be technical courses, numbered 100 or above, related to the degree program and approved by the advisor and MS
program administrator. Up to one elective may be non-technical if it is related to the degree program and has advisor approval. 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. 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.)

Addit io nal Co m m ent s:

Breadt h in Discipline
T ype
Completion Requirement

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
Co m plet e at least 3 o f t he f o llo wing :

Breadth Area A: Formal Foundations


Co m plet e at least 1 o f t he f o llo wing co urses:
CS154 - Introduction to the Theory of Computation
CS157 - Computational Logic
CS166 - Data Structures
CS168 - The Modern Algorithmic Toolbox
CS205L - Continuous Mathematical Methods with an Emphasis on Machine Learning
CS225 - Machine Learning for Discrete Optimization
CS229M - Machine Learning Theory
CS250 - Algebraic Error Correcting Codes
CS254 - Computational Complexity
CS254B - Computational Complexity II
CS255 - Introduction to Cryptography
CS256 - Algorithmic Fairness
CS257 - Introduction to Automated Reasoning
CS259Q - Quantum Computing
CS261 - Combinatorial Optimization
CS263 - Counting and Sampling
CS264 - Beyond Worst-Case Analysis
CS265 - Randomized Algorithms and Probabilistic Analysis
CS269I - Incentives in Computer Science
CS328 - Foundations of Causal Machine Learning
CS354 - Topics in Intractability: Unfulfilled Algorithmic Fantasies
CS355 - Advanced Topics in Cryptography
CS359D - Quantum Complexity Theory
CS369O - Optimization Algorithms
EE364A - Convex Optimization I
EE364B - Convex Optimization II
PHIL251 - Metalogic

OR

Breadth Area B: Systems


Co m plet e at least 1 o f t he f o llo wing co urses:
CS112 - Operating systems kernel implementation project
CS140E - Operating systems design and implementation
CS143 - Compilers
CS144 - Introduction to Computer Networking
CS145 - Introduction to Big Data Systems
CS149 - Parallel Computing
CS155 - Computer and Network Security
CS212 - Operating Systems and Systems Programming
CS240 - Advanced Topics in Operating Systems
CS240LX - Advanced Systems Laboratory, Accelerated
CS242 - Programming Languages
CS243 - Program Analysis and Optimizations
CS244 - Advanced Topics in Networking
CS244B - Distributed Systems
CS245 - Principles of Data-Intensive Systems
CS246 - Mining Massive Data Sets
CS249I - The Modern Internet
CS316 - Advanced Multi-Core Systems (Inactive)
CS348K - Visual Computing Systems
CS358 - Topics in Programming Language Theory (Inactive)
EE180 - Digital Systems Architecture
EE282 - Computer Systems Architecture

CS111 should be taken prior to taking CS112.


OR

Breadth Area C: Learning and Modeling


Co m plet e at least 1 o f t he f o llo wing co urses:
CS173A - Foundations of Computational Human Genomics
CS205L - Continuous Mathematical Methods with an Emphasis on Machine Learning
CS221 - Artificial Intelligence: Principles and Techniques
CS223A - Introduction to Robotics
CS224N - Natural Language Processing with Deep Learning
CS224R - Deep Reinforcement Learning
CS224S - Spoken Language Processing
CS224U - Natural Language Understanding
CS224V - Conversational Virtual Assistants with Deep Learning
CS224W - Machine Learning with Graphs
CS227B - General Game Playing
CS228 - Probabilistic Graphical Models: Principles and Techniques
CS229 - Machine Learning
CS229B - Machine Learning for Sequence Modeling
CS229M - Machine Learning Theory
CS230 - Deep Learning
CS231A - Computer Vision: From 3D Perception to 3D Reconstruction and Beyond
CS231N - Deep Learning for Computer Vision
CS233 - Geometric and Topological Data Analysis
CS234 - Reinforcement Learning
CS236 - Deep Generative Models
CS237A - Principles of Robot Autonomy I
CS237B - Principles of Robot Autonomy II
CS248A - Computer Graphics: Rendering, Geometry, and Image Manipulation
CS248B - Fundamentals of Computer Graphics: Animation and Simulation
CS271 - Artificial Intelligence in Healthcare (Inactive)
CS272 - Introduction to Biomedical Data Science Research Methodology
CS273B - Deep Learning in Genomics and Biomedicine
CS274 - Representations and Algorithms for Computational Molecular Biology
CS279 - Computational Biology: Structure and Organization of Biomolecules and Cells
CS281 - Ethics of Artificial Intelligence
CS326 - Topics in Advanced Robotic Manipulation
CS329D - Machine Learning Under Distributional Shifts
CS329X - Human Centered NLP
CS330 - Deep Multi-task and Meta Learning
CS332 - Advanced Survey of Reinforcement Learning
CS333 - Algorithms for Interactive Robotics
CS348A - Computer Graphics: Geometric Modeling & Processing
CS348B - Computer Graphics: Image Synthesis Techniques
CS348E - Character Animation: Modeling, Simulation, and Control of Human Motion
CS348I - Computer Graphics in the Era of AI
CS348N - Neural Models for 3D Geometry
CS371 - Computational Biology in Four Dimensions
CS373 - Statistical and Machine Learning Methods for Genomics (Inactive)

OR

Breadth Area D: People and Society

Co m plet e at least 1 o f t he f o llo wing co urses:


CS147 - Introduction to Human-Computer Interaction Design
CS148 - Introduction to Computer Graphics and Imaging
CS152 - Trust and Safety
CS181 - Computers, Ethics, and Public Policy
CS182 - Ethics, Public Policy, and Technological Change
CS194H - User Interface Design Project
CS206 - Exploring Computational Journalism
CS247 - Human-Computer Interaction Design Studio (Inactive)
CS247A - Design for Artificial Intelligence
CS247B - Design for Behavior Change
CS247G - Design for Play
CS247I - Design for Understanding
CS247L - Human Computer Interaction Technology Laboratory (Inactive)
CS247S - Service Design
CS256 - Algorithmic Fairness
CS269I - Incentives in Computer Science
CS278 - Social Computing
CS281 - Ethics of Artificial Intelligence
CS324H - History of Natural Language Processing
CS329T - Trustworthy Machine Learning
CS329X - Human Centered NLP
CS347 - Human-Computer Interaction: Foundations and Frontiers
CS377 - Topics in Human-Computer Interaction (Inactive)
CS377C - Topics in HCI: Crowdsourcing and Social Computing (Inactive)
CS377E - Designing Solutions to Global Grand Challenges
CS377G - Designing Serious Games
CS377I - Designing for Complexity (Inactive)
CS377J - Designing Systems for Collaboration, Cooperation, and Collective Action
CS377N - Introduction to the Design of Smart Products (Inactive)
CS377P - Peace Innovation: Learning How Technology Can Promote Global Harmony in 30 Years (Inactive)
CS377Q - Designing for Accessibility
CS377T - Topics in Human-Computer Interaction: Teaching Studio Classes (Inactive)
CS377U - Understanding Users
CS384 - Seminar on Ethical and Social Issues in Natural Language Processing
CS448B - Data Visualization
AMSTUD145 - Silicon Valley
ANTHRO132C - Technology and Inequality
ANTHRO132D - Thinking Technology: Anthropological Perspectives (Inactive)
COMM254 - The Politics of Algorithms
COMM266 - Virtual People
COMM286 - Media, Technology, and the Body
COMM324 - Language and Technology
DESIGN255 - The Design of Data
EARTHSYS213 - Hacking for Climate and Sustainability
EDUC315A - Introduction to CSCL: Computer-Supported Collaborative Learning
ENGLISH184D - Race, Gender, and Literary Digital Humanities (Inactive)
HISTORY244F - New Directions in Gendered Innovations in Science, Medicine, Technology, and Environment
INTLPOL268 - Hack Lab: Introduction to Cybersecurity
LAW4039 - Regulating Artificial Intelligence
ME177 - Global Engineers' Education (Inactive)
MS&E193 - Technology and National Security
MS&E231 - Social Algorithms
MS&E234 - Data Privacy and Ethics
MS&E254 - The Ethical Analyst
POLISCI150A - Data Science for Politics
PUBLPOL103F - Ethics of Truth in a Post-Truth World
PUBLPOL353B - Regulating Emerging Technology: Risks, Opportunities, and Reality

Addit io nal Co m m ent s:

T eaching Requirem ent


T ype
Completion Requirement
Addit io nal Co m m ent s:
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 o r Pro ject Requirem ent


T ype
Completion Requirement

Addit io nal Co m m ent s:

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 (CS399 INDEPENDENT PROJECT), 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 (CS399 INDEPENDENT PROJECT) 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 (CS399 INDEPENDENT PROJECT) 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.

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 and its requirements is available on the departmentʼs website.

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 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.

Art if icial Int ellig ence Subplan


T ype
Completion Requirement

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
(CS399 INDEPENDENT PROJECT) 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.

A.

Co m plet e ALL o f t he f o llo wing Co urses:


CS221 - Artificial Intelligence: Principles and Techniques

CS 221 may be waived by students with equivalent coursework and their advisorʼs approval.

B.

Co m plet e at least 4 o f t he f o llo wing co urses:


CS223A - Introduction to Robotics
CS224N - Natural Language Processing with Deep Learning
CS224R - Deep Reinforcement Learning
CS224S - Spoken Language Processing
CS224U - Natural Language Understanding
CS224V - Conversational Virtual Assistants with Deep Learning
CS224W - Machine Learning with Graphs
CS228 - Probabilistic Graphical Models: Principles and Techniques
CS229 - Machine Learning
CS231A - Computer Vision: From 3D Perception to 3D Reconstruction and Beyond
CS231N - Deep Learning for Computer Vision
CS234 - Reinforcement Learning
CS237A - Principles of Robot Autonomy I
CS237B - Principles of Robot Autonomy II
CS238 - Decision Making under Uncertainty

C.
A total of at least 21 units from categories A, B, and the following:
Co m plet e ANY o f t he f o llo wing Co urses:
CS173A - Foundations of Computational Human Genomics
CS205L - Continuous Mathematical Methods with an Emphasis on Machine Learning
CS224C - NLP for Computational Social Science
CS224R - Deep Reinforcement Learning
CS225 - Machine Learning for Discrete Optimization
CS225A - Experimental Robotics
CS227A - Robot Perception
CS227B - General Game Playing
CS229B - Machine Learning for Sequence Modeling
CS229S - Systems for Machine Learning
CS229M - Machine Learning Theory
CS230 - Deep Learning
CS231C - Computer Vision and Image Analysis of Art
CS233 - Geometric and Topological Data Analysis
CS235 - Computational Methods for Biomedical Image Analysis and Interpretation
CS236 - Deep Generative Models
CS239 - Advanced Topics in Sequential Decision Making
CS246 - Mining Massive Data Sets
CS257 - Introduction to Automated Reasoning
CS270 - Modeling Biomedical Systems
CS271 - Artificial Intelligence in Healthcare (Inactive)
CS273B - Deep Learning in Genomics and Biomedicine
CS274 - Representations and Algorithms for Computational Molecular Biology
CS275 - Translational Bioinformatics
CS279 - Computational Biology: Structure and Organization of Biomolecules and Cells
CS281 - Ethics of Artificial Intelligence
CS293 - Empowering Educators via Language Technology
CS324H - History of Natural Language Processing
CS325B - Data for Sustainable Development
CS326 - Topics in Advanced Robotic Manipulation
CS327A - Advanced Robotic Manipulation
CS328 - Foundations of Causal Machine Learning
CS329 - Topics in Artificial Intelligence (Inactive)
CS329D - Machine Learning Under Distributional Shifts
CS329E - Machine Learning on Embedded Systems
CS329H - Machine Learning from Human Preferences
CS329M - Machine Programming
CS329P - Practical Machine Learning
CS329R - Race and Natural Language Processing
CS329S - Machine Learning Systems Design
CS329T - Trustworthy Machine Learning
CS329X - Human Centered NLP
CS330 - Deep Multi-task and Meta Learning
CS332 - Advanced Survey of Reinforcement Learning
CS336 - Language Modeling from Scratch
CS348I - Computer Graphics in the Era of AI
CS348N - Neural Models for 3D Geometry
CS353 - Seminar on Logic & Formal Philosophy
CS361 - Engineering Design Optimization
CS368 - Algorithmic Techniques for Big Data
CS371 - Computational Biology in Four Dimensions
CS375 - Large-Scale Neural Network Modeling for Neuroscience
CS377 - Topics in Human-Computer Interaction (Inactive)
CS377E - Designing Solutions to Global Grand Challenges
CS377G - Designing Serious Games
CS377I - Designing for Complexity (Inactive)
CS377J - Designing Systems for Collaboration, Cooperation, and Collective Action
CS377N - Introduction to the Design of Smart Products (Inactive)
CS377Q - Designing for Accessibility
CS377T - Topics in Human-Computer Interaction: Teaching Studio Classes (Inactive)
CS377U - Understanding Users
CS379C - Computational Models of the Neocortex
CS398 - Computational Education
CS399 - Independent Project
CS428A - Probabilistic models of cognition: Reasoning and Learning
CS428B - Probabilistic Models of Cognition: Language
CS432 - Computer Vision for Education and Social Science Research
EE263 - Introduction to Linear Dynamical Systems
EE276 - Information Theory
EE278 - Probability and Statistical Inference
EE364A - Convex Optimization I
EE364B - Convex Optimization II
EE377 - Information Theory and Statistics
ENGR205 - Introduction to Control Design Techniques
MS&E226 - Fundamentals of Data Science: Prediction, Inference, Causality
MS&E252 - Foundations of Decision Analysis
PSYCH209 - Neural Network Models of Cognition
STATS202 - Data Mining and Analysis
STATS315A - Modern Applied Statistics: Learning
STATS315B - Modern Applied Statistics: Learning II

CS 377 (including CS 377 with any suffix) requires the consent of the faculty advisor.
CS 379 (including CS 379 with any suffix) requires the consent of the faculty advisor.
CS 399 requires the consent of the faculty advisor.
CS173A was previously offered as CS273A. Either CS173A or CS273A can be used to complete this requirement.

Addit io nal Co m m ent s:

Co m put at io nal Bio lo g y Subplan


T ype
Completion Requirement

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
(CS399 INDEPENDENT PROJECT) 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.

A.

Co m plet e ALL o f t he f o llo wing Co urses:


CS173A - Foundations of Computational Human Genomics

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

B.
Co m plet e ALL o f t he f o llo wing Co urses:
CS221 - Artificial Intelligence: Principles and Techniques

Students with equivalent coursework may waive with the approval of their advisor.

C.

Co m plet e at least 2 o f t he f o llo wing co urses:


CS142 - Web Applications
CS145 - Introduction to Big Data Systems
CS246 - Mining Massive Data Sets
CS448B - Data Visualization

CS 142 can be replaced by CS 147L or CS 193X.

D.

Co m plet e at least 3 o f t he f o llo wing co urses:


CS279 - Computational Biology: Structure and Organization of Biomolecules and Cells
BIOMEDIN210 - Modeling Biomedical Systems
BIOMEDIN214 - Representations and Algorithms for Computational Molecular Biology
BIOMEDIN215 - Data Science for Medicine
BIOMEDIN217 - Translational Bioinformatics
BIOMEDIN219 - Mathematical Models and Medical Decisions
BIOMEDIN220 - Artificial Intelligence in Healthcare (Inactive)
BIOMEDIN222 - Cloud Computing for Biology and Healthcare
BIOMEDIN260 - Computational Methods for Biomedical Image Analysis and Interpretation
BIOMEDIN273B - Deep Learning in Genomics and Biomedicine
IMMUNOL207 - Essential Methods in Computational and Systems Immunology

E.
A total of at least 21 units from categories (A, B, C, D) and the following:
Co m plet e ANY o f t he f o llo wing Co urses:
CS124 - From Languages to Information
CS131 - Computer Vision: Foundations and Applications
CS147 - Introduction to Human-Computer Interaction Design
CS148 - Introduction to Computer Graphics and Imaging
CS154 - Introduction to the Theory of Computation
CS166 - Data Structures
CS168 - The Modern Algorithmic Toolbox
CS185 - Coding with LLM Assistants
CS224N - Natural Language Processing with Deep Learning
CS224W - Machine Learning with Graphs
CS228 - Probabilistic Graphical Models: Principles and Techniques
CS229 - Machine Learning
CS229B - Machine Learning for Sequence Modeling
CS229M - Machine Learning Theory
CS229S - Systems for Machine Learning
CS230 - Deep Learning
CS231N - Deep Learning for Computer Vision
CS234 - Reinforcement Learning
CS238 - Decision Making under Uncertainty
CS248A - Computer Graphics: Rendering, Geometry, and Image Manipulation
CS353 - Seminar on Logic & Formal Philosophy
CS399 - Independent Project
BIO187 - Mathematical Population Biology
BIOMEDIN248 - Causal Inference in Clinical Trials and Observational Study (II) (Inactive)
STATS215 - Statistical Models in Biology
STATS256 - Modern Statistics for Modern Biology

CS 248A - Previously offered as CS 248


BIOMEDIN 248 - Previously offered as BIOMEDIN 248B

Addit io nal Co m m ent s:

Co m put er and Net wo rk Securit y Subplan


T ype
Completion Requirement

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
(CS399 INDEPENDENT PROJECT) 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.

A.
Students with equivalent course work may waive with approval of their adviser for the following courses:
CS 212
CS 112
CS 140E
CS144
Co m plet e ALL o f t he f o llo wing Co urses:
CS144 - Introduction to Computer Networking
CS155 - Computer and Network Security
CS255 - Introduction to Cryptography
CS212 - Operating Systems and Systems Programming
OR CS112 - Operating systems kernel implementation project
OR CS140E - Operating systems design and implementation
CS356 - Topics in Computer and Network Security

CS 212 - Previously offered as CS 140

B.
Co m plet e at least 3 o f t he f o llo wing co urses:
CS142 - Web Applications
CS152 - Trust and Safety
CS190 - Software Design Studio
CS240 - Advanced Topics in Operating Systems
CS244 - Advanced Topics in Networking
CS244B - Distributed Systems
CS249I - The Modern Internet
CS257 - Introduction to Automated Reasoning
CS259Q - Quantum Computing
CS340 - Topics in Computer Systems (Inactive)
CS355 - Advanced Topics in Cryptography

C.
A total of at least 21 units from categories A, B, and the following:
Co m plet e ANY o f t he f o llo wing Co urses:
CS149 - Parallel Computing
CS221 - Artificial Intelligence: Principles and Techniques
OR CS229 - Machine Learning
CS242 - Programming Languages
CS245 - Principles of Data-Intensive Systems
CS251 - Cryptocurrencies and blockchain technologies
CS399 - Independent Project
EE384S - Performance Engineering of Computer Systems & Networks

CS399 and EE384S can be used with the consent of the faculty advisor.

Addit io nal Co m m ent s:

Hum an-Co m put er Int eract io n Subplan


T ype
Completion Requirement

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
(CS399 INDEPENDENT PROJECT) 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.

A.
Co m plet e ALL o f t he f o llo wing Co urses:
CS142 - Web Applications
OR CS147L - Cross-platform Mobile App Development
CS147 - Introduction to Human-Computer Interaction Design
CS247 - Human-Computer Interaction Design Studio (Inactive)
OR CS247A - Design for Artificial Intelligence
OR CS247B - Design for Behavior Change
OR CS247G - Design for Play
OR CS247I - Design for Understanding
OR CS247L - Human Computer Interaction Technology Laboratory (Inactive)
OR CS247S - Service Design
CS347 - Human-Computer Interaction: Foundations and Frontiers

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.

B.
Co m plet e at least 1 o f t he f o llo wing co urses:
CS278 - Social Computing
CS448B - Data Visualization

Section B: If one of these courses was taken for another Stanford degree, a different one must be taken for the MS; if more than one of these
courses was taken for another Stanford degree, this requirement can be waived.
Students who took an equivalent course at another institution can submit a waiver request on GIN.

C.
Two additional courses drawn from (B) and the following list: CS 194H, 206, 210A, 247 (any suffix besides the course used for requirement (a), 377
(any suffix and three or more units)
Co m plet e at least 2 o f t he f o llo wing co urses:
CS177 - Human Centered Product Management
CS194H - User Interface Design Project
CS206 - Exploring Computational Journalism
CS224C - NLP for Computational Social Science
CS247 - Human-Computer Interaction Design Studio (Inactive)
OR CS247A - Design for Artificial Intelligence
OR CS247B - Design for Behavior Change
OR CS247G - Design for Play
OR CS247I - Design for Understanding
OR CS247L - Human Computer Interaction Technology Laboratory (Inactive)
OR CS247S - Service Design
CS210A - Software Project Experience with Corporate Partners
CS329X - Human Centered NLP
CS377 - Topics in Human-Computer Interaction (Inactive)
OR CS377C - Topics in HCI: Crowdsourcing and Social Computing (Inactive)
OR CS377E - Designing Solutions to Global Grand Challenges
OR CS377G - Designing Serious Games
OR CS377I - Designing for Complexity (Inactive)
OR CS377J - Designing Systems for Collaboration, Cooperation, and Collective Action
OR CS377N - Introduction to the Design of Smart Products (Inactive)
OR CS377P - Peace Innovation: Learning How Technology Can Promote Global Harmony in 30 Years (Inactive)
OR CS377Q - Designing for Accessibility
OR CS377T - Topics in Human-Computer Interaction: Teaching Studio Classes (Inactive)
OR CS377U - Understanding Users

CS377 can be taken with any suffix if the course is offered for three or more units.
CS247 any suffix besides the course used for requirement (A)
Students who completed any of these courses for a previous degree at Stanford are exempt from 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

D.

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


Co m plet e ANY o f t he f o llo wing Co urses:
ARTSTUDI130 - Interactive Art: Making it with Arduino
ARTSTUDI163 - Drawing with Code
ARTSTUDI165A - Intro to Art & Technology
ARTSTUDI169 - Virtual Reality: the possibility and peril of immersive artwork
ARTSTUDI231A - Interactive Art: Making it with Arduino
COMM224 - Truth, Trust, and Tech
COMM254 - The Politics of Algorithms
COMM272 - Media Psychology
COMM314 - Ethnographic Methods
COMM324 - Language and Technology
DESIGN101 - History and Ethics of Design
DESIGN121 - Introduction to Human Values in Design
DESIGN131 - Advanced Design: Needfinding
DESIGN151 - Business Design: Impact and Implications
DESIGN170 - Visual Frontiers
EDUC200B - Introduction to Qualitative Research Methods
EDUC281 - Technology for Learners
EDUC342 - Child Development and New Technologies
EDUC432 - Designing Explorable Explanations for Learning
MS&E125 - Introduction to Applied Statistics
MS&E184 - The Future of Work: What Will it Mean to Build AI-Augmented Organizations?
MS&E231 - Social Algorithms
MS&E334 - Topics in Social Data
PSYCH209 - Neural Network Models of Cognition
PSYCH251 - Experimental Methods
PSYCH252 - Statistical Methods for Behavioral and Social Sciences
PSYCH253 - Multivariate Analysis, Measurement, and Study of Change in Social Science Research
STATS203 - Introduction to Regression Models and Analysis of Variance
CS498C - Introduction to CSCL: Computer-Supported Collaborative Learning
ME203 - Design and Manufacturing
ME210 - Introduction to Mechatronics
MUSIC220A - Fundamentals of Computer-Generated Sound
MUSIC220B - Compositional Algorithms, Psychoacoustics, and Computational Music
MUSIC220C - Research Seminar in Computer-Generated Music
MUSIC250A - Physical Interaction Design for Music
MUSIC256A - Music, Computing, Design: The Art of Design
SYMSYS245 - Cognition in Interaction Design

Or any d.school class listed at http://dschool.stanford.edu under 'elective classes' for 3 units or more numbered 100 and above

Addit io nal Co m m ent s:

Inf o rm at io n Manag em ent and Analyt ics Subplan


T ype
Completion Requirement

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
(CS399 INDEPENDENT PROJECT) 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.

A.
Co m plet e ALL o f t he f o llo wing Co urses:
CS145 - Introduction to Big Data Systems

Students with equivalent coursework may waive CS 145 with the approval of their advisor.

B.

Co m plet e at least 4 o f t he f o llo wing co urses:


CS224N - Natural Language Processing with Deep Learning
CS224W - Machine Learning with Graphs
CS229 - Machine Learning
CS245 - Principles of Data-Intensive Systems
CS246 - Mining Massive Data Sets
CS263 - Algorithms for Modern Data Models (Inactive)
CS281 - Ethics of Artificial Intelligence

C.
A total of at least 21 units from categories A, B, and the following:
Co m plet e ANY o f t he f o llo wing Co urses:
CS125 - Data: Algorithms, Tools, Policy, and Society
CS144 - Introduction to Computer Networking
CS151 - Logic Programming
CS173A - Foundations of Computational Human Genomics
CS190 - Software Design Studio
CS221 - Artificial Intelligence: Principles and Techniques
CS222 - AI Agents and Simulations
CS224S - Spoken Language Processing
CS224U - Natural Language Understanding
CS224V - Conversational Virtual Assistants with Deep Learning
CS228 - Probabilistic Graphical Models: Principles and Techniques
CS229B - Machine Learning for Sequence Modeling
CS229M - Machine Learning Theory
CS229S - Systems for Machine Learning
CS230 - Deep Learning
CS231A - Computer Vision: From 3D Perception to 3D Reconstruction and Beyond
CS231N - Deep Learning for Computer Vision
CS233 - Geometric and Topological Data Analysis
CS234 - Reinforcement Learning
CS236 - Deep Generative Models
CS238 - Decision Making under Uncertainty
CS240 - Advanced Topics in Operating Systems
CS242 - Programming Languages
CS243 - Program Analysis and Optimizations
CS244 - Advanced Topics in Networking
CS244B - Distributed Systems
CS251 - Cryptocurrencies and blockchain technologies
CS255 - Introduction to Cryptography
CS261 - Combinatorial Optimization
CS265 - Randomized Algorithms and Probabilistic Analysis
CS270 - Modeling Biomedical Systems
CS271 - Artificial Intelligence in Healthcare (Inactive)
CS272 - Introduction to Biomedical Data Science Research Methodology
CS273B - Deep Learning in Genomics and Biomedicine
CS274 - Representations and Algorithms for Computational Molecular Biology
CS275 - Translational Bioinformatics
CS279 - Computational Biology: Structure and Organization of Biomolecules and Cells
CS281 - Ethics of Artificial Intelligence
CS288 - Applied Causal Inference with Machine Learning and AI
CS324 - Advances in Foundation Models
CS325B - Data for Sustainable Development
CS329A - Self Improving AI Agents
CS329H - Machine Learning from Human Preferences
CS329X - Human Centered NLP
CS349D - Cloud Computing Technology
CS349H - Software Techniques for Emerging Hardware Platforms
CS399 - Independent Project
MS&E226 - Fundamentals of Data Science: Prediction, Inference, Causality
STATS315A - Modern Applied Statistics: Learning
STATS315B - Modern Applied Statistics: Learning II

CS 399 can be used with consent of faculty advisor.


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.

Addit io nal Co m m ent s:

Visual Co m put ing Subplan


T ype
Completion Requirement

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
(CS399 INDEPENDENT PROJECT) 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.

A.
Co m plet e at least 2 o f t he f o llo wing co urses:
CS248A - Computer Graphics: Rendering, Geometry, and Image Manipulation
CS248B - Fundamentals of Computer Graphics: Animation and Simulation
CS231N - Deep Learning for Computer Vision

B.
Complete at least 3 additional courses from either categories A or the following:
Co m plet e ANY o f t he f o llo wing Co urses:
CS205L - Continuous Mathematical Methods with an Emphasis on Machine Learning
CS223A - Introduction to Robotics
CS231A - Computer Vision: From 3D Perception to 3D Reconstruction and Beyond
CS233 - Geometric and Topological Data Analysis
CS348B - Computer Graphics: Image Synthesis Techniques
CS348C - Computer Graphics: Animation and Simulation
CS348E - Character Animation: Modeling, Simulation, and Control of Human Motion
CS348K - Visual Computing Systems
CS348I - Computer Graphics in the Era of AI
CS348N - Neural Models for 3D Geometry
CS448I - Computational Imaging

C.
A total of at least 21 units from categories A, B, and the following:
Co m plet e ANY o f t he f o llo wing Co urses:
CS123 - A Hands-On Introduction to Building AI-Enabled Robots
CS131 - Computer Vision: Foundations and Applications
CS148 - Introduction to Computer Graphics and Imaging
CS149 - Parallel Computing
CS221 - Artificial Intelligence: Principles and Techniques
CS224N - Natural Language Processing with Deep Learning
CS224R - Deep Reinforcement Learning
CS229 - Machine Learning
CS230 - Deep Learning
CS234 - Reinforcement Learning
CS236 - Deep Generative Models
CS236G - Generative Adversarial Networks
CS331B - Interactive Simulation for Robot Learning
CS448B - Data Visualization
CS448M - Making Making Machines for Makers (Inactive)
CS448M - Making Making Machines for Makers (Inactive)
CS448Z - Physically Based Animation and Sound
EE261 - The Fourier Transform and Its Applications
EE267 - Virtual Reality

Addit io nal Co m m ent s:

So f t ware T heo ry Subplan


T ype
Completion Requirement

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
(CS399 INDEPENDENT PROJECT) 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.

A.
Co m plet e ALL o f t he f o llo wing Co urses:
CS242 - Programming Languages
CS243 - Program Analysis and Optimizations

B.

Co m plet e at least 1 o f t he f o llo wing co urses:


CS221 - Artificial Intelligence: Principles and Techniques
CS244 - Advanced Topics in Networking
CS245 - Principles of Data-Intensive Systems
CS315B - Parallel Computing Research Project

C.
Co m plet e at least 1 o f t he f o llo wing co urses:
CS255 - Introduction to Cryptography
CS355 - Advanced Topics in Cryptography
CS356 - Topics in Computer and Network Security

D.
A total of at least 21 units from categories A, B, C, and the following:
Co m plet e ANY o f t he f o llo wing Co urses:
CS151 - Logic Programming
CS250 - Algebraic Error Correcting Codes
CS257 - Introduction to Automated Reasoning
CS261 - Combinatorial Optimization
CS265 - Randomized Algorithms and Probabilistic Analysis
CS294S - Research Project in Software Systems and Security
CS295 - Software Engineering
CS315B - Parallel Computing Research Project
CS349H - Software Techniques for Emerging Hardware Platforms
CS357 - Advanced Topics in Formal Methods (Inactive)
CS357S - Formal Methods for Computer Systems
CS399 - Independent Project

CS 294S and CS 399 can be used with consent of faculty advisor.

Addit io nal Co m m ent s:

Syst em s Subplan
T ype
Completion Requirement

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
(CS399 INDEPENDENT PROJECT) 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.

A.
CS 112, CS 140, CS 140E, CS 212, and CS 144 may be waived for students with equivalent coursework.
Co m plet e ALL o f t he f o llo wing Co urses:
CS112 - Operating systems kernel implementation project
OR CS140 - Operating Systems and Systems Programming
OR CS140E - Operating systems design and implementation
OR CS212 - Operating Systems and Systems Programming
CS144 - Introduction to Computer Networking
CS240 - Advanced Topics in Operating Systems

B.
Co m plet e at least 4 o f t he f o llo wing co urses:
CS190 - Software Design Studio
CS242 - Programming Languages
CS243 - Program Analysis and Optimizations
CS244 - Advanced Topics in Networking
CS244B - Distributed Systems
CS245 - Principles of Data-Intensive Systems
CS248A - Computer Graphics: Rendering, Geometry, and Image Manipulation
CS248B - Fundamentals of Computer Graphics: Animation and Simulation
CS315B - Parallel Computing Research Project
EE271 - Introduction to VLSI Systems
EE282 - Computer Systems Architecture

C.

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


Co m plet e ANY o f t he f o llo wing Co urses:
CS149 - Parallel Computing
CS217 - Hardware Accelerators for Machine Learning
CS229S - Systems for Machine Learning
CS241 - Embedded Systems Workshop
CS244B - Distributed Systems
CS246 - Mining Massive Data Sets
CS249I - The Modern Internet
CS251 - Cryptocurrencies and blockchain technologies
CS255 - Introduction to Cryptography
CS270 - Modeling Biomedical Systems
CS272 - Introduction to Biomedical Data Science Research Methodology
CS295 - Software Engineering
CS315B - Parallel Computing Research Project
CS340 - Topics in Computer Systems (Inactive)
OR CS340LX - Advanced Operating System Lab: Accelerated (II)
OR CS340R - Rusty Systems
CS343D - Domain-Specific Programming Models and Compilers
CS344 - Topics in Computer Networks
CS348C - Computer Graphics: Animation and Simulation
CS349D - Cloud Computing Technology
CS348E - Character Animation: Modeling, Simulation, and Control of Human Motion
CS349F - Technology for Financial Systems
CS348I - Computer Graphics in the Era of AI
CS348K - Visual Computing Systems
CS349 - Topics in Programming Systems (Inactive)
OR CS349D - Cloud Computing Technology
OR CS349E - Understanding Datacenter Software Dynamics (Inactive)
OR CS349F - Technology for Financial Systems
OR CS349G - Selected Reading of Ph.D. Dissertations
OR CS349H - Software Techniques for Emerging Hardware Platforms
OR CS349M - Machine Learning for Software Engineering
OR CS349T - Project Lab: Video and Audio Technology for Live Theater in the Age of COVID (Inactive)
CS356 - Topics in Computer and Network Security
CS357S - Formal Methods for Computer Systems
CS399 - Independent Project
CS448 - Topics in Computer Graphics (Inactive)
OR CS448B - Data Visualization
OR CS448G - Hacking Games (Inactive)
OR CS448H - Topics in Computer Graphics: Agile Hardware Design (Inactive)
OR CS448I - Computational Imaging
OR CS448M - Making Making Machines for Makers (Inactive)
OR CS448P - Hacking the Pandemic (Inactive)
OR CS448V - Topics in Computer Graphics: Computational Video Manipulation (Inactive)
OR CS448Z - Physically Based Animation and Sound
EE267 - Virtual Reality
EE273 - Digital Systems Engineering
EE384S - Performance Engineering of Computer Systems & Networks

CS399 can be used with consent of faculty advisor.

Addit io nal Co m m ent s:

T heo ret ical Co m put er Science Subplan


T ype
Completion Requirement

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
(CS399 INDEPENDENT PROJECT) may be counted toward the subplan.
Section A is required. Complete the remaining 21 units by choosing courses from Section B.

A.
Co m plet e ALL o f t he f o llo wing Co urses:
CS154 - Introduction to the Theory of Computation
CS261 - Combinatorial Optimization

CS 154 may be waived by students with equivalent course work with the approval of their advisor.

B.

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


Co m plet e ANY o f t he f o llo wing Co urses:
CS151 - Logic Programming
CS163 - The Practice of Theory Research
CS166 - Data Structures
CS168 - The Modern Algorithmic Toolbox
CS225 - Machine Learning for Discrete Optimization
CS228 - Probabilistic Graphical Models: Principles and Techniques
CS229M - Machine Learning Theory
CS233 - Geometric and Topological Data Analysis
CS236 - Deep Generative Models
CS246 - Mining Massive Data Sets
CS250 - Algebraic Error Correcting Codes
CS251 - Cryptocurrencies and blockchain technologies
CS254 - Computational Complexity
CS254B - Computational Complexity II
CS255 - Introduction to Cryptography
CS256 - Algorithmic Fairness
CS257 - Introduction to Automated Reasoning
CS259Q - Quantum Computing
CS263 - Counting and Sampling
CS264 - Beyond Worst-Case Analysis
CS265 - Randomized Algorithms and Probabilistic Analysis
CS266Z - Robust Algorithms in the Face of Uncertainty
CS269I - Incentives in Computer Science
CS328 - Foundations of Causal Machine Learning
CS225 - Machine Learning for Discrete Optimization
CS341 - Project in Mining Massive Data Sets (Inactive)
CS345 - Advanced Topics in Database Systems (Inactive)
CS351 - Open Problems in Coding Theory
CS354 - Topics in Intractability: Unfulfilled Algorithmic Fantasies
CS355 - Advanced Topics in Cryptography
CS358 - Topics in Programming Language Theory (Inactive)
CS359 - Topics in the Theory of Computation (Inactive)
OR CS359A - Research Seminar in Complexity Theory
OR CS359B - Designing Decentralized Applications on Blockchain (Inactive)
OR CS359C - Topics in Theory of Computation: Classics of Cryptography (Inactive)
OR CS359D - Quantum Complexity Theory
OR CS359E - Quantum Complexity Theory
CS368 - Algorithmic Techniques for Big Data
CS369 - Topics in Analysis of Algorithms (Inactive)
OR CS369G - Algorithmic Techniques for Big Data (Inactive)
OR CS369L - Algorithmic Perspective on Machine Learning (Inactive)
OR CS369M - Metric Embeddings and Algorithmic Applications (Inactive)
OR CS369O - Optimization Algorithms
OR CS369Z - Dynamic Data Structures for Graphs
CS399 - Independent Project
CS468 - Topics in Geometric Algorithms: Non-Euclidean Methods in Machine Learning
EE364A - Convex Optimization I
MS&E310 - Linear Programming
MS&E319 - Matching Theory

CS 359. CS 369, CS 399, and CS 468 can be used with the consent of the faculty advisor.
Multiple CS359, CS 369, and/or CS 468 courses may be taken as long as they are each on different topics, denoted by different letter suffixes for the
courses.

Addit io nal Co m m ent s:

Program Policies
Ext ernal Credit Po licies
All 45 units for the CS MS degree must be completed at Stanford.
Co t erm Co urse T ransf er Po licy
Coterminal masterʼs degree candidates are expected to complete all masterʼs degree requirements as described in this Bulletin. Coterminal Master's
Degrees describes university requirements for the coterminal masterʼs degree. Graduate Degrees describes university requirements for the masterʼs
degree.
After accepting admission to this coterminal masterʼs degree program, students may request a transfer of courses from the undergraduate to the
graduate career to satisfy the requirements for the masterʼs degree. Transferring courses to the graduate career requires review and approval of both
the undergraduate and graduate programs on a case-by-case basis.
In this masterʼs program, courses taken during or after the first quarter of the sophomore year are eligible for consideration for transfer to the graduate
career; the timing of the first graduate quarter is not a factor. No courses taken before the first quarter of the sophomore year may be used to meet
masterʼs degree requirements.
Course transfers are not possible after the bachelorʼs degree has been conferred.
The university requires that the graduate advisor be assigned in the studentʼs first graduate quarter even though the undergraduate career may still
be open. The university also requires that the Masterʼs Degree Program Proposal be completed by the student and approved by the department by the
end of the studentʼs first graduate quarter.
Advising Expect at io ns
The Department of Computer Science is committed to providing academic advising in support of graduate student scholarly and professional
development. When most effective, this advising relationship entails collaborative and sustained engagement by the advisor and the advisee. As a
best practice, advising expectations should be periodically discussed and reviewed to ensure mutual understanding. Both the advisor and the
advisee are expected to maintain professionalism and integrity.
Faculty advisors guide students in critical areas such as selecting courses, designing and conducting research, developing teaching pedagogy,
navigating policies and degree requirements, and exploring academic opportunities and professional pathways.
Graduate students are active contributors to the advising relationship, proactively seeking academic and professional guidance and taking
responsibility for informing themselves of policies and degree requirements for their graduate program.
See Computer Science Graduate Advising for a statement of Computer Science policy on graduate advising. See Graduate Advising for a statement of
university policy on graduate advising.

Learning Outcomes
Pro gram Learning Out co mes
The purpose of the masterʼs program is to provide students with the knowledge and skills necessary for a professional career or doctoral studies. This
is done through coursework in the foundational elements of the field and at least one graduate specialization. Areas of specialization include artificial
intelligence, biocomputation, computer and network security, human-computer interaction, information management and analytics, real-world
computing, software theory, systems, and theoretical computer science.

You might also like