Program CS MS
Program CS 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
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
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
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
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.)
Breadt h in Discipline
T ype
Completion Requirement
Breadth Areas
Co m plet e at least 3 o f t he f o llo wing :
OR
OR
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 221 may be waived by students with equivalent coursework and their advisorʼs approval.
B.
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.
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.
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.
D.
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
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
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.
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.
Or any d.school class listed at http://dschool.stanford.edu under 'elective classes' for 3 units or more numbered 100 and above
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.
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
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
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.
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
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.
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.
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.
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.