Bulletin

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

Resources

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

Schools

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

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

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

Master of Science

MSCoterm
  • Institute for Computational and Mathematical Engr opens in a new tab
Program Minimum Units
45 Units
University Minimum Units
45 Units
Program Length
2 Years
Interests
Data and Information Sciences, Technology
Academic Areas
Engineering & Computer Science, Mathematics & Data Sciences

Overview

ICME is a degree-granting (MS/PhD) interdisciplinary institute at the intersection of mathematics, computing, engineering, and applied sciences. ICME was founded in 2004, building upon the Scientific Computing and Computational Mathematics Program (est. 1989).

At ICME, we design state-of-the-art mathematical and computational models, methods, and algorithms for engineering and science applications. The program collaborates closely with engineers and scientists in academia and industry to develop improved computational approaches and advance disciplinary fields. In particular, it leverages Stanford’s strength in engineering applications in the physical, biological, mathematical, and information sciences and has established connections with nearly 20 departments across five schools at Stanford.

The program identifies research areas that would benefit from a multidisciplinary approach in which computational mathematics is critical. This multidisciplinary intellectual environment is a core strength of ICME, with interaction among students and faculty with diverse backgrounds and expertise. Students and faculty are active in many research areas: aerodynamics and space applications, fluid dynamics, protein folding, data science, including machine learning and recommender systems, ocean dynamics, climate modeling, reservoir engineering, computer graphics, financial mathematics, and many more.

The program trains students and scholars from across Stanford in mathematical modeling, scientific computing, and advanced computational algorithms at the undergraduate and graduate levels. Courses typically provide strong theoretical foundations for solving real-world problems and numerical computations to facilitate the application of mathematical techniques and theories. Training offered includes matrix computations, computational probability and combinatorial optimization, optimization, stochastics, numerical solution of partial differential equations, parallel computer algorithms, and new computing paradigms.

ICME offers service courses for undergraduates and graduate students to fulfill departmental requirements, core courses for master’s and doctoral students in Computational and Mathematical Engineering, and specialized electives in various application areas.

The ICME master’s program offers a general Computational and Mathematical Engineering track as well as three specialized tracks: Data Science, Imaging Science, and Mathematical and Computational Finance. 

Prerequisites

Fundamental courses in mathematics and computing may be needed as prerequisites for other courses in the program. Check the prerequisites of each required course. Recommended preparatory courses include advanced undergraduate-level courses in linear algebra, probability, differential equations, stochastics, and numerical methods and proficiency in programming.

Financial Assistance

The department awards a limited number of fellowships, course assistantships, and research assistantships to incoming graduate students. Most course and research assistantships are awarded to students in the doctoral program in ICME. If there are insufficient PhD students to staff all course and research assistantships, these positions may be open to master’s students. However, master’s students are not guaranteed financial assistance.

Requirements

Program Requirements

Requirements Overview

The master’s program consists of 45 units of coursework taken at Stanford. No thesis is required; however, students may participate in research projects during the master’s program. Although there is no specific background requirement, significant exposure to mathematics and engineering coursework is necessary to complete the program successfully.

There are four tracks in the master’s program:

  • General CME

  • Data Science

  • Imaging Science

  • Mathematical and Computational Finance

Requirements

Unless specified in the Bulletin, a candidate must complete a program of 45 units of courses numbered 200 or above. Courses below the 200 level require special approval from the program office. At least 36 of these must be graded units, and all letter-graded units must be passed with a C- or better and have a grade point average (GPA) of 3.0 (B) or better. A course cannot be used to satisfy more than one requirement for the MS degree unless it can be repeated for credit.

Coterminal Master’s Program

University Coterminal Requirements

Coterminal master’s degree candidates are expected to complete all master’s degree requirements as described in this Bulletin. University requirements for the coterminal master’s degree are described in the Coterminal Master's Degrees section. University requirements for the master’s degree are described in the Graduate Degrees section of this Bulletin.

After accepting admission to this coterminal master’s degree program, students may request transfer of courses from the undergraduate to the graduate career to satisfy 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.

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.

Depth in Discipline

General CME Track

This track is designed for students interested in studying and developing computational tools in those aspects of applied mathematics central to modeling in the physical and engineering sciences. The curriculum consists of core computational and mathematical engineering courses, programming coursework, extensive breadth and depth electives, and seminars. Core courses provide instruction in mathematical and computational tools applicable to a wide range of scientific, industrial, and engineering disciplines and augment the breadth and depth electives of one’s choosing. The programming requirement ensures proficiency in scientific computing and professional computing skills. Seminars highlight emerging research in engineering and sciences.

Complete all of the following requirements:
Requirement 1: Foundational (12 units)

Students must demonstrate foundational knowledge in the field by completing four of the six core courses. Courses in this area must be taken for letter grades. 

Earn at least 12 units in the following course(s):
CME 302

Numerical Linear Algebra

3 Units
CME 303

Partial Differential Equations of Applied Mathematics

3 Units
CME 306

Computational Methods of Applied Mathematics

3 Units
CME 307

Optimization

3 Units
or
CME 364A

Convex Optimization I

3 Units
CME 310

Combinatorial Optimization

3 Units
MATH 236

Introduction to Stochastic Differential Equations

3 Units
or
CME 298

Probability and Stochastic Differential Equations for Applications

4 Units
or
CME 308

Stochastic Methods in Engineering

3 Units

and
Requirement 2: Computing and Programming (6 units)

To ensure that students have a strong foundation in programming, six units of computing and programming taken for a letter grade are required.

For the CME track, it is strongly recommended to take CME213.

Complete all of the following requirements:
Requirement 2a: Basic Programming and Computing Algorithms (3 units)
Earn at least 3 units in the following course(s):
CME 212

Programming for performance

3 Units
CME 310

Combinatorial Optimization

3 Units
CS 106B

Programming Abstractions

3-5 Units
CS 161

Design and Analysis of Algorithms

3-5 Units
CS 166

Advanced Data Structures

3-4 Units
CS 168

The Modern Algorithmic Toolbox

3-4 Units
CS 190

Software Design Studio

3-4 Units
and
Requirement 2b: Advanced Programming and Computing Algorithms  (3 units)
Earn at least 3 units in the following course(s):
CME 213

Introduction to parallel computing using MPI, openMP, and CUDA

3 Units
CS 149

Parallel Computing

3-4 Units
CS 194

Software Project

3 Units
CS 246

Mining Massive Data Sets

3-4 Units
CS 295

Software Engineering

3 Units
CS 315B

Parallel Computing Research Project

3 Units
and
Requirement 3: Breadth Electives (15 units)

Fifteen units of general electives to demonstrate breadth of knowledge in technical areas. The elective course list represents automatically accepted electives within the program. However, electives are not limited to the list below, which is expanded regularly. The elective part of the ICME program is meant to be broad and inclusive of relevant courses of comparable rigor to ICME courses. The selected courses are recommended to include offerings from (at least) two engineering departments and CME coursework. Courses outside this list can be accepted as electives subject to approval by the student’s program advisor. Six units of independent research (CME 291) can be used to fulfill this requirement with prior approval.

Earn at least 15 units in the following course(s):
BMDS 222

Cloud Computing for Biology and Healthcare

3 Units
CEE 260G

Imaging with Incomplete Information

3-4 Units
CEE 281

Mechanics and Finite Elements

3 Units
CME 218

Applied Data Science

3 Units
CME 241

Foundations of Reinforcement Learning with Applications in Finance

3 Units
CME 262

Imaging with Incomplete Information

3-4 Units
CME 263

Matrix Methods: Singular Value Decomposition

3 Units
CME 279

Computational Biology: Structure and Organization of Biomolecules and Cells

3 Units
CME 290

Xplore: Impactful Research

1-4 Units
CME 291

Master's Research

1-6 Units
CME 295

Transformers and Large Language Models

2 Units
CME 309

Randomized Algorithms and Probabilistic Analysis

3 Units
CME 364A

Convex Optimization I

3 Units
CS 204

Computational Law

3 Units
CS 221

Artificial Intelligence: Principles and Techniques

3-4 Units
CS 224N

Natural Language Processing with Deep Learning

3-4 Units
CS 224W

Machine Learning with Graphs

3-4 Units
CS 228

Probabilistic Graphical Models: Principles and Techniques

3-4 Units
CS 229

Machine Learning

3-4 Units
CS 230

Deep Learning

3-4 Units
CS 231N

Deep Learning for Computer Vision

3-4 Units
CS 233

Geometric and Topological Data Analysis

3 Units
CS 234

Reinforcement Learning

3 Units
CS 236

Deep Generative Models

3 Units
CS 238

Decision Making under Uncertainty

3-4 Units
CS 239

Advanced Topics in Sequential Decision Making

3-4 Units
CS 244B

Distributed Systems

3 Units
CS 246

Mining Massive Data Sets

3-4 Units
CS 255

Introduction to Cryptography

3 Units
CS 261

Combinatorial Optimization

3 Units
ECON 293

Machine Learning and Causal Inference

3 Units
EE 223

Applied Quantum Mechanics II

3 Units
ENGR 209A

Analysis and Control of Nonlinear Systems

3 Units
MATH 136

Stochastic Processes

4 Units
MATH 171

Fundamental Concepts of Analysis

4 Units
MATH 235

Modern Markov Chains

3 Units
MATH 236

Introduction to Stochastic Differential Equations

3 Units
MATH 238

Mathematical Finance

3 Units
MATH 275A

Topics in Applied Math: Quantum Algorithms for Scientific Computation

3 Units
ME 335A

Finite Element Analysis

3 Units
ME 408

Spectral Methods in Computational Physics

3 Units
ME 469

Computational Methods in Fluid Mechanics

3 Units
MS&E 220

Probabilistic Analysis

3 Units
MS&E 221

Stochastic Modeling

3 Units
MS&E 223

Stochastic Simulation and Monte Carlo Methods

3 Units
MS&E 226

Fundamentals of Data Science: Prediction, Inference, Causality

3 Units
MS&E 228

Applied Causal Inference with Machine Learning and AI

3 Units
MS&E 232H

Introduction to Game Theory (Accelerated)

3 Units
MS&E 235B

Reinforcement Learning: Behaviors and Applications

3 Units
MS&E 236

Machine Learning for Discrete Optimization

3 Units
MS&E 310

Linear Programming

3 Units
MS&E 321

Stochastic Systems

3 Units
MS&E 322

Stochastic Calculus and Control

3 Units
MS&E 323

Stochastic Simulation

3 Units
MS&E 328

Foundations of Causal Machine Learning

3 Units
STATS 202

Statistical Learning and Data Science

3 Units
STATS 207

Time Series Analysis

3 Units
STATS 208

Resampling Methods: Bootstrap, Cross Validation and Beyond

3 Units
STATS 217

Introduction to Stochastic Processes I

3 Units
STATS 218

Introduction to Stochastic Processes II

3 Units
STATS 219

Stochastic Processes

4 Units
STATS 250

Mathematical Finance

3 Units
STATS 300A

Theory of Statistics I

3 Units
STATS 300B

Theory of Statistics II

3 Units
STATS 300C

Theory of Statistics III

3 Units
STATS 305A

Applied Statistics I

3 Units
STATS 310A

Theory of Probability I

3 Units
STATS 315A

Modern Applied Statistics: Learning

3 Units
STATS 315B

Modern Applied Statistics: Learning II

3 Units
STATS 362

Topic: Monte Carlo

3 Units
and
Requirement 4: Specialized Electives (9 units)

Nine units of focused graduate application electives, approved by the program advisor, in engineering, mathematics, physical, biological, information, and other quantitative sciences. These courses should be foundational depth courses relevant to the student’s professional development and research interests.

and
Requirement 5: Seminar (3 units)

Students must complete a total of 3 Seminar units.

  • 1 seminar unit must come from CME 500

  • 2 units are up to the student’s choice of ICME graduate seminars or other approved seminars.

CME 299 is strongly recommended.

Additional seminar units may not be counted toward the 45-unit requirement.

Complete all of the following course(s):
CME 500

Departmental Seminar

1 Units

Data Science Track

The Data Science track develops strong mathematical, statistical, computational, and programming skills through the foundational and programming requirements. In addition, it provides a fundamental data science education through general and focused electives requirements from courses in data sciences and related areas. DS track covers both computational data science and machine learning but can be tailored to be more focused on one of the two areas by taking more credits in that concentration (requirement 2 or 4). Course choices are limited to predefined courses from the data sciences and related courses group for requirements 1-5. 

Complete all of the following requirements:
Requirement 1: Mathematical and Statistical Foundations (15 units)

Students must demonstrate foundational knowledge in the field by completing the following courses. Courses in this area must be taken for letter grades.

Earn at least 15 units in the following course(s):
CME 298

Probability and Stochastic Differential Equations for Applications

4 Units
or
MATH 236

Introduction to Stochastic Differential Equations

3 Units
CME 302

Numerical Linear Algebra

3 Units
STATS 200

Introduction to Theoretical Statistics

3-4 Units
or
STATS 300A

Theory of Statistics I

3 Units
STATS 203

Regression Models and Analysis of Variance

3 Units
or
STATS 305A

Applied Statistics I

3 Units
STATS 315A

Modern Applied Statistics: Learning

3 Units
or
STATS 229

Machine Learning

3-4 Units

MATH 236 is strongly recommended.

and
Requirement 2: Computing and Programming (9 units)

To ensure that students have a strong foundation in programming, three units of basic programming and computing algorithms and three units of advanced programming and computing algorithms.

Students must take nine units from Requirement 2 for a letter grade and nine units from Requirement 4 for a letter grade, with an additional six units from either Requirement 2 or 4, for a total of 24 units in the two areas. The other six units may be taken for a non-letter grade.

For the DS track, it is strongly recommended to take CME213, CME 310, CS246.

Complete all of the following requirements:
Requirement 2a: Basic Programming and Computing Algorithms (3 units)
Earn at least 3 units in the following course(s):
CME 212

Programming for performance

3 Units
CME 310

Combinatorial Optimization

3 Units
and
Requirement 2b: Advanced Programming and Computing Algorithms  (6 units)
Earn at least 6 units in the following course(s):
CME 213

Introduction to parallel computing using MPI, openMP, and CUDA

3 Units
CS 246

Mining Massive Data Sets

3-4 Units
CS 295

Software Engineering

3 Units
CS 315B

Parallel Computing Research Project

3 Units
and
Requirement 3: Experimentation (3 units)

Experimental method and causal considerations are fundamental to data science. The course chosen from this area must be taken for letter grades.

Earn at least 3 units in the following course(s):
ECON 271

Intermediate Econometrics II

5 Units
ECON 293

Machine Learning and Causal Inference

3 Units
MS&E 228

Applied Causal Inference with Machine Learning and AI

3 Units
STATS 209

Introduction to Causal Inference

3 Units
STATS 263

Design of Experiments

3 Units

*The additional three units can count toward the “Machine Learning Methods and Applications” requirement below if two courses are taken.

and
Requirement 4: Machine Learning Methods and Applications (9 units)

Nine units of coursework from this area are required for a letter grade.

Students must take nine units from Requirement 2 for a letter grade and nine units from Requirement 4 for a letter grade, with an additional six units from either Requirement 2 or 4, for a total of 24 units in the two areas. The other six units may be taken for a non-letter grade.

Earn at least 9 units in the following course(s):
CME 364A

Convex Optimization I

3 Units
CS 221

Artificial Intelligence: Principles and Techniques

3-4 Units
CS 224N

Natural Language Processing with Deep Learning

3-4 Units
CS 224W

Machine Learning with Graphs

3-4 Units
CS 229M

Machine Learning Theory

3 Units
CS 230

Deep Learning

3-4 Units
CS 231N

Deep Learning for Computer Vision

3-4 Units
CS 234

Reinforcement Learning

3 Units
CS 236

Deep Generative Models

3 Units
CS 330

Deep Multi-task and Meta Learning

3 Units
STATS 315B

Modern Applied Statistics: Learning II

3 Units
and
Requirement 5: Practical component (3 units)

Students are required to take three units of practical component that may include any combination of:

Earn at least 3 units in the following course(s):
CME 218

Applied Data Science

3 Units
CME 290

Xplore: Impactful Research

1-4 Units
CME 291

Master's Research

1-6 Units
CME 299

Engineering Your Career Path - Career Readiness Workshops

1 Units
STATS 390

Consulting Workshop

1 Units

* STATS 390 - Consulting Workshop may only be taken for up to 1 unit.

* CME 299 is strongly recommended.

and
Additional Units (6 units)

Students must take nine units from Requirement 2 for a letter grade and nine units from Requirement 4 for a letter grade, with an additional six units from either Requirement 2 or 4, for a total of 24 units in the two areas. The other six units may be taken for a non-letter grade.

Imaging Science Track

The Imaging Science track is designed for students interested in the skills and knowledge required to develop efficient and robust computational tools for imaging science. The curriculum is based on four fundamental areas: mathematical models and analysis for imaging sciences and inverse problems, tools and techniques from modern imaging sciences from medicine, biology, physics/chemistry, and earth science, algorithms in numerical methods and scientific computing, and high-performance computing skills and architecture oriented toward imaging sciences.

The coursework follows the requirements of the general master’s degree in the core course requirement. The general and focused elective requirements (requirements 3 and 4 below) are limited to approved courses listed below. The programming requirement (requirement 2) is extended to six units and includes advanced scientific programming and high-performance computing coursework.

Complete all of the following requirements:
Requirement 1: Foundational (12 units)

Students must demonstrate foundational knowledge in the field by completing four of the six core courses. Courses in this area must be taken for letter grades. 

Earn at least 12 units in the following course(s):
CME 302

Numerical Linear Algebra

3 Units
CME 303

Partial Differential Equations of Applied Mathematics

3 Units
CME 306

Computational Methods of Applied Mathematics

3 Units
CME 307

Optimization

3 Units
or
CME 364A

Convex Optimization I

3 Units
CME 308

Stochastic Methods in Engineering

3 Units
or
CME 298

Probability and Stochastic Differential Equations for Applications

4 Units
CME 310

Combinatorial Optimization

3 Units
and
Requirement 2: Computing and Programming (6 units)

To ensure that students have a strong foundation in programming, three units of basic programming and computing algorithms and three units of advanced programming and computing algorithms for letter grades are required.

For the IS track, it is strongly recommended to take CME213, CME323, or GEOPHYS257.

Complete all of the following requirements:
Requirement 2a: Basic Programming and Computing Algorithms (3 units)
Earn at least 3 units in the following course(s):
CME 212

Programming for performance

3 Units
CME 310

Combinatorial Optimization

3 Units
CS 106B

Programming Abstractions

3-5 Units
CS 161

Design and Analysis of Algorithms

3-5 Units
CS 166

Advanced Data Structures

3-4 Units
CS 168

The Modern Algorithmic Toolbox

3-4 Units
CS 190

Software Design Studio

3-4 Units
and
Requirement 2b: Advanced Programming and Computing Algorithms  (3 units)
Earn at least 3 units in the following course(s):
CME 213

Introduction to parallel computing using MPI, openMP, and CUDA

3 Units
CS 149

Parallel Computing

3-4 Units
CS 194

Software Project

3 Units
CS 246

Mining Massive Data Sets

3-4 Units
CS 295

Software Engineering

3 Units
CS 315B

Parallel Computing Research Project

3 Units
and
Requirement 3: Imaging Sciences electives (18 units)

Imaging Sciences electives should demonstrate breadth of knowledge in the technical area. The elective course list is defined. Courses outside this list can be accepted as electives subject to approval by the student’s program advisor. Six units of independent research can be used to fulfill this requirement with prior approval.

Earn at least 18 units in the following course(s):
APPPHYS 232

Advanced Imaging Lab in Biophysics

4 Units
BIOE 220

Introduction to Imaging and Image-based Human Anatomy

3-4 Units
CEE 260G

Imaging with Incomplete Information

3-4 Units
CME 279

Computational Biology: Structure and Organization of Biomolecules and Cells

3 Units
CS 231N

Deep Learning for Computer Vision

3-4 Units
CS 237A

Principles of Robot Autonomy I

3 Units
EARTHSYS 242

Remote Sensing of Land

3 Units
EE 236A

Modern Optics

3 Units
EE 355

Imaging Radar and Applications

3 Units
EE 367

Computational Imaging

3 Units
EE 369A

Medical Imaging Systems I

3 Units
EE 369B

Medical Imaging Systems II

3 Units
EE 369C

Medical Image Reconstruction

3 Units
GEOPHYS 211

Environmental Soundings Image Estimation

3 Units
GEOPHYS 280

3-D Seismic Imaging

2-3 Units
PSYCH 204A

Human Neuroimaging Methods

3 Units
and
Requirement 4: Specialized electives (6 units)

Six units of focused graduate application electives, approved by the ICME graduate advisor, in engineering, mathematics, physical, biological, information, and other quantitative sciences. These courses should be foundational depth courses relevant to the student’s professional development and research interests.

and
Requirement 5: Seminar (3 units)

Students must complete a total of 3 Seminar units.

  • 1 seminar unit must come from CME 500

  • 2 units are up to the student’s choice of ICME graduate seminars or other approved seminars.

CME 299 is strongly recommended.

Additional seminar units may not be counted toward the 45-unit requirement.

Complete all of the following course(s):
CME 500

Departmental Seminar

1 Units

Mathematical and Computational Finance Track

The Mathematical & Computational Finance (MCF) track is an interdisciplinary program that provides education in applied and computational mathematics, statistics, and financial applications for individuals with strong mathematical skills. Upon successful completion of the MCF track in the ICME master’s program, students will be prepared to assume positions in the financial industry as data and information scientists, quantitative strategists, risk managers, regulators, and financial technologists or to continue to advanced graduate work in applied mathematics, statistics, finance, and other disciplines.

The Institute for Computational and Mathematical Engineering, in close cooperation with Mathematics, Management Science and Engineering, and Statistics, provides many basic courses. 

Complete all of the following requirements:
Requirement 1: Foundational (9 units)

Students must demonstrate foundational knowledge in the field by completing the following core courses. Courses in this area must be taken for letter grades. Additional courses taken from this list beyond 9 units may be applied to Requirements 3 and 4.

Complete all of the following requirements:
Numerics (3 units)
Earn at least 3 units in the following course(s):
CME 302

Numerical Linear Algebra

3 Units
CME 303

Partial Differential Equations of Applied Mathematics

3 Units
CME 310

Combinatorial Optimization

3 Units
and
Optimization (3 units)
Earn at least 3 units in the following course(s):
CME 307

Optimization

3 Units
CME 364A

Convex Optimization I

3 Units
and
Stochastics (3 units)
Earn at least 3 units in the following course(s):
CME 308

Stochastic Methods in Engineering

3 Units
MATH 236

Introduction to Stochastic Differential Equations

3 Units
and
Requirement 2: Computing and Programming (6 units)

To ensure that students have a strong foundation in programming, three units of basic programming and computing algorithms for a letter grade and three units of advanced programming and computing algorithms for a letter grade are required. Students can take an additional course from this list for a letter grade or credit to fulfill Requirement 4.

For the MCF track, it is strongly recommended to take CME213, CME323, CS149, CS315B, or CS316.

Complete all of the following requirements:
Requirement 2a: Basic Programming and Computing Algorithms (3 units)
Earn at least 3 units in the following course(s):
CME 212

Programming for performance

3 Units
CS 106B

Programming Abstractions

3-5 Units
CS 161

Design and Analysis of Algorithms

3-5 Units
CS 166

Advanced Data Structures

3-4 Units
CS 168

The Modern Algorithmic Toolbox

3-4 Units
CS 190

Software Design Studio

3-4 Units
and
Requirement 2b: Advanced Programming and Computing Algorithms  (3 units)
Earn at least 3 units in the following course(s):
CME 213

Introduction to parallel computing using MPI, openMP, and CUDA

3 Units
CS 149

Parallel Computing

3-4 Units
CS 194

Software Project

3 Units
CS 246

Mining Massive Data Sets

3-4 Units
CS 295

Software Engineering

3 Units
CS 315B

Parallel Computing Research Project

3 Units
and
Requirement 3: Finance electives (12 units)

Choose three courses from the following list. Courses outside this list can be accepted as electives subject to approval by the student’s program adviser.

Earn at least 12 units in the following course(s):
CME 229

Applications of machine learning to electronic markets

3 Units
CS 251

Cryptocurrencies and blockchain technologies

3 Units
FINANCE 320

Debt Markets

3 Units
FINANCE 620

Financial Markets I

3 Units
FINANCE 622

Dynamic Asset Pricing Theory

3 Units
MATH 238

Mathematical Finance

3 Units
MS&E 232H

Introduction to Game Theory (Accelerated)

3 Units
MS&E 242

Machine Learning for Algorithmic Trading

3 Units
MS&E 244

Statistical Arbitrage

3 Units
MS&E 245A

Investment Science

4 Units
MS&E 245B

Advanced Investment Science

3 Units
MS&E 247

Decentralized Finance & Blockchain: Innovation, Applications, and Entrepreneurship

3 Units
MS&E 339

Algorithms for Decentralized Finance

3 Units
MS&E 342

Stochastic Systems and Learning Theory with Applications in Finance

3 Units
MS&E 348

Optimization of Uncertainty and Applications in Finance

3 Units
MS&E 349

Financial Statistics

3 Units
and
Requirement 4: Data Science electives (12 units)

Data Science electives should demonstrate breadth of knowledge in the technical area. Courses outside this list can be accepted as electives subject to approval by the student’s program advisor.

Earn at least 12 units in the following course(s):
CME 241

Foundations of Reinforcement Learning with Applications in Finance

3 Units
CS 224N

Natural Language Processing with Deep Learning

3-4 Units
CS 230

Deep Learning

3-4 Units
CS 236

Deep Generative Models

3 Units
CS 246

Mining Massive Data Sets

3-4 Units
MS&E 223

Stochastic Simulation and Monte Carlo Methods

3 Units
MS&E 338

Aligning Superintelligence

3 Units
MS&E 342

Stochastic Systems and Learning Theory with Applications in Finance

3 Units
MS&E 347

Advanced Topics in Blockchain & DeFi: Research, Market Design, and Microstructure

3 Units
MS&E 349

Financial Statistics

3 Units
STATS 200

Introduction to Theoretical Statistics

3-4 Units
STATS 203

Regression Models and Analysis of Variance

3 Units
STATS 205

Introduction to Nonparametric Statistics

3 Units
STATS 206

Applied Multivariate Analysis

3 Units
STATS 207

Time Series Analysis

3 Units
STATS 219

Stochastic Processes

4 Units
STATS 270

Bayesian Statistics

3 Units
STATS 285

Massive Computational Experiments, Painlessly

2 Units
STATS 305A

Applied Statistics I

3 Units
STATS 305B

Applied Statistics II

3 Units
STATS 305C

Applied Statistics III

3 Units
STATS 315A

Modern Applied Statistics: Learning

3 Units
STATS 315B

Modern Applied Statistics: Learning II

3 Units
STATS 361

Causal Inference

3 Units
and
Requirement 5: Practical component (6 units)

Students are required to take six units of practical and project courses ONLY from the courses listed below.

Earn at least 6 units in the following course(s):
CME 229

Applications of machine learning to electronic markets

3 Units
CME 241

Foundations of Reinforcement Learning with Applications in Finance

3 Units
CME 290

Xplore: Impactful Research

1-4 Units
CME 291

Master's Research

1-6 Units
CME 299

Engineering Your Career Path - Career Readiness Workshops

1 Units
CS 349F

Fabric Architectures For AI Systems

2 Units
MS&E 242

Machine Learning for Algorithmic Trading

3 Units
MS&E 244

Statistical Arbitrage

3 Units
MS&E 246

Financial Risk Analytics

3 Units
MS&E 247

Decentralized Finance & Blockchain: Innovation, Applications, and Entrepreneurship

3 Units
MS&E 339

Algorithms for Decentralized Finance

3 Units
MS&E 348

Optimization of Uncertainty and Applications in Finance

3 Units
MS&E 446

Artificial Intelligence in Financial Technology

3 Units

* CME 299 is strongly recommended.

ICME Master of Science with Distinction in Research (Optional)

Program Overview and Eligibility

The ICME Master of Science with Distinction in Research program is designed for students interested in pursuing in-depth research or preparing for a PhD. This selective program allows students to engage in an extended, original research project for a minimum of three quarters, culminating in a written thesis. The work is conducted under the guidance of a faculty advisor and is associated with the CME 291 research course.

To be eligible, students must be enrolled in the ICME M.S. program, be in good academic standing with a cumulative GPA of 3.6 or higher, and secure a faculty advisor. The advisor must be a member of Stanford’s Academic Council or an ICME Affiliated Faculty member who agrees to supervise the thesis.

Students are encouraged to consult with the ICME Faculty Director and ICME Student Services officers for guidance on identifying a suitable research project and faculty supervisor.

Application Process 

To apply for the program, students must submit the following materials:

  • A brief research proposal (3–5 pages) describing the planned project and relevant background.

  • A letter of endorsement from the proposed faculty advisor.

  • A current unofficial transcript.

Admission to the program is selective. Applications will be reviewed by an ICME faculty committee. Meeting the eligibility criteria does not guarantee acceptance.

Students may submit their application by May 1 or August 31 of each year. Successful applicants will be notified by late September.

Requirements

Students admitted to the Master of Science with Distinction in Research are expected to:

  • Enroll in and complete a minimum of 9 research units (CME 291) under their thesis advisor’s supervision.

  • Produce a thesis or substantial research report to be reviewed and approved by their advisor and ICME faculty director as second faculty reader. Submit the final, approved thesis to ICME Student Services by the university's degree conferral deadline.

  • Present their thesis work at the ICME symposium either as a poster or oral presentation. Posters must be reviewed and approved by their advisor before presenting.

  • Maintain a cumulative GPA of 3.6 or higher in courses counted towards the ICME major during their time in the program. The GPA will be reviewed at the end of each quarter.

  • Enroll in the CME CME 300 or CME 500 seminar series.

Complete all of the following course(s):
CME 291

Master's Research

1-6 Units
CME 300

First Year Seminar Series

1 Units
or
CME 500

Departmental Seminar

1 Units