CME 100:
Vector Calculus for Engineers (ENGR 154)
Computation and visualization using MATLAB. Differential vector calculus: analytic geometry in space, functions of several variables, partial derivatives, gradient, unconstrained maxima and minima, Lagrange multipliers. Introduction to linear algebra: matrix operations, systems of algebraic equations, methods of solution and applications. Integral vector calculus: multiple integrals in Cartesian, cylindrical, and spherical coordinates, line integrals, scalar potential, surface integrals, Green's, divergence, and Stokes' theorems. Examples and applications drawn from various engineering fields. Prerequisites: knowledge of singlevariable calculus equivalent to the content of Math 1921 (e.g., 5 on Calc BC, 4 on Calc BC with Math 21, 5 on Calc AB with Math21). Placement diagnostic (recommendation non binding) at:(https://exploredegrees.stanford.edu/undergraduatedegreesandprograms/#aptext).
Terms: Aut, Spr

Units: 5

UG Reqs: GER:DBMath, WAYFR

Grading: Letter or Credit/No Credit
Instructors: ;
Khayms, V. (PI);
Le, H. (PI);
Abbou, R. (TA);
Bescos Alapont, G. (TA);
Burugupalli, P. (TA);
Carranza, A. (TA);
Chen, G. (TA);
Deshpande, S. (TA);
Infanger, A. (TA);
Jia, Q. (TA);
Lerner, S. (TA);
Liu, X. (TA);
Morvan, T. (TA);
Radif, D. (TA);
Rowley, J. (TA);
Saad, N. (TA);
Xin, D. (TA)
CME 100A:
Vector Calculus for Engineers, ACE
Students attend CME100/ENGR154 lectures with additional recitation sessions; two to four hours per week, emphasizing engineering mathematical applications and collaboration methods. Enrollment by department permission only. Prerequisite: must be enrolled in the regular CME10001 or 02. Application at: https://engineering.stanford.edu/students/programs/engineeringdiversityprograms/additionalcalculusengineers
Terms: Aut, Spr

Units: 6

UG Reqs: GER:DBMath, WAYFR

Grading: Letter or Credit/No Credit
Instructors: ;
Khayms, V. (PI);
Le, H. (PI);
Abbou, R. (TA);
Bescos Alapont, G. (TA);
Burugupalli, P. (TA);
Carranza, A. (TA);
Chen, G. (TA);
Deshpande, S. (TA);
Infanger, A. (TA);
Jia, Q. (TA);
Liu, X. (TA);
Morvan, T. (TA);
Radif, D. (TA);
Rowley, J. (TA);
Saad, N. (TA);
Xin, D. (TA)
CME 102:
Ordinary Differential Equations for Engineers (ENGR 155A)
Analytical and numerical methods for solving ordinary differential equations arising in engineering applications: Solution of initial and boundary value problems, series solutions, Laplace transforms, and nonlinear equations; numerical methods for solving ordinary differential equations, accuracy of numerical methods, linear stability theory, finite differences. Introduction to MATLAB programming as a basic tool kit for computations. Problems from various engineering fields.Prerequisites: knowledge of singlevariable calculus equivalent to the content of Math 1921 (e.g., 5 on Calc BC, 4 on Calc BC with Math 21, 5 on Calc AB with Math21). Placement diagnostic (recommendation non binding) at:(https://exploredegrees.stanford.edu/undergraduatedegreesandprograms/#aptext). Recommended: CME100.
Terms: Aut, Win, Spr

Units: 5

UG Reqs: GER:DBMath, WAYFR

Grading: Letter or Credit/No Credit
CME 102A:
Ordinary Differential Equations for Engineers, ACE
Students attend CME102/ENGR155A lectures with additional recitation sessions; two to four hours per week, emphasizing engineering mathematical applications and collaboration methods. Prerequisite: students must be enrolled in the regular section (CME102) prior to submitting application at:nhttps://engineering.stanford.edu/students/programs/engineeringdiversityprograms/additionalcalculusengineers
Terms: Aut, Win, Spr

Units: 6

UG Reqs: GER:DBMath, WAYFR

Grading: Letter or Credit/No Credit
CME 104:
Linear Algebra and Partial Differential Equations for Engineers (ENGR 155B)
Linear algebra: matrix operations, systems of algebraic equations, Gaussian elimination, undetermined and overdetermined systems, coupled systems of ordinary differential equations, eigensystem analysis, normal modes. Fourier series with applications, partial differential equations arising in science and engineering, analytical solutions of partial differential equations. Numerical methods for solution of partial differential equations: iterative techniques, stability and convergence, time advancement, implicit methods, von Neumann stability analysis. Examples and applications from various engineering fields. Prerequisite: CME 102/ENGR 155A.
Terms: Spr

Units: 5

UG Reqs: GER:DBMath, WAYFR

Grading: Letter or Credit/No Credit
CME 104A:
Linear Algebra and Partial Differential Equations for Engineers, ACE
Students attend CME104/ENGR155B lectures with additional recitation sessions; two to four hours per week, emphasizing engineering mathematical applications and collaboration methods. Prerequisite: students must be enrolled in the regular section (CME104) prior to submitting application at: https://engineering.stanford.edu/students/programs/engineeringdiversityprograms/additionalcalculusengineers
Terms: Spr

Units: 6

UG Reqs: GER:DBMath, WAYFR

Grading: Letter or Credit/No Credit
CME 107:
Introduction to Machine Learning (EE 104)
Introduction to machine learning. Formulation of supervised and unsupervised learning problems. Regression and classification. Data standardization and feature engineering. Loss function selection and its effect on learning. Regularization and its role in controlling complexity. Validation and overfitting. Robustness to outliers. Simple numerical implementation. Experiments on data from a wide variety of engineering and other disciplines. Undergraduate students should enroll for 5 units, and graduate students should enroll for 3 units. Prerequisites: EE 103; EE 178 or CS 109; CS106A or equivalent.
Terms: Spr

Units: 35

Grading: Letter or Credit/No Credit
CME 192:
Introduction to MATLAB
This short course runs for the first four weeks/eight lectures of the quarter and is offered each quarter during the academic year. It is highly recommended for students with no prior programming experience who are expected to use MATLAB in math, science, or engineering courses. It will consist of interactive lectures and applicationbased assignments.nThe goal of the short course is to make students fluent in MATLAB and to provide familiarity with its wide array of features. The course covers an introduction of basic programming concepts, data structures, and control/flow; and an introduction to scientific computing in MATLAB, scripts, functions, visualization, simulation, efficient algorithm implementation, toolboxes, and more.
Terms: Aut, Win, Spr

Units: 1

Grading: Satisfactory/No Credit
CME 193:
Introduction to Scientific Python
This short course runs for the first four weeks of the quarter. It is recommended for students who are familiar with programming at least at the level of CS106A and want to translate their programming knowledge to Python with the goal of becoming proficient in the scientific computing and data science stack. Lectures will be interactive with a focus on real world applications of scientific computing. Technologies covered include Numpy, SciPy, Pandas, Scikitlearn, and others. Topics will be chosen from Linear Algebra, Optimization, Machine Learning, and Data Science. Prior knowledge of programming will be assumed, and some familiarity with Python is helpful, but not mandatory.
Terms: Aut, Win, Spr

Units: 1

Grading: Satisfactory/No Credit
CME 195:
Introduction to R (STATS 195)
This short course runs for four weeks and is offered in fall and spring. It is recommended for students who want to use R in statistics, science or engineering courses, and for students who want to learn the basics of data science with R. The goal of the short course is to familiarize students with some of the most important R tools for data analysis. Lectures will focus on learning by example and assignments will be applicationdriven. No prior programming experience is assumed.
Terms: Spr

Units: 1

Grading: Satisfactory/No Credit
CME 197:
HumanCentered Design Methods in Data Science (EARTH 197)
In today's society, the most pressing data science problems we face exist in a complex sociotechnical ecosystem and cannot be solved using the numbers alone. In this fiveweek short course, students will learn how to apply humancentered design methods to solve data science problems and how to pair traditional data with a diversity of other types of data to redefine problems and gain innovative insight. The course will focus on empathybased frameworks to analyze data, problem definition and redefinition, and ideation. Additional skills in critique and storytelling will also be covered. Classes will be highly interactive and teambased. This course will offer skills in support of the teams working toward the Big Earth Hackathon Wildland Fire challenge (CEE 265H, EARTH 165H, EARTH 265H).
Terms: Spr

Units: 1

Grading: Satisfactory/No Credit
CME 206:
Introduction to Numerical Methods for Engineering (ME 300C)
Numerical methods from a user's point of view. Lagrange interpolation, splines. Integration: trapezoid, Romberg, Gauss, adaptive quadrature; numerical solution of ordinary differential equations: explicit and implicit methods, multistep methods, RungeKutta and predictorcorrector methods, boundary value problems, eigenvalue problems; systems of differential equations, stiffness. Emphasis is on analysis of numerical methods for accuracy, stability, and convergence. Introduction to numerical solutions of partial differential equations; Von Neumann stability analysis; alternating direction implicit methods and nonlinear equations. Prerequisites: CME 200/ME 300A, CME 204/ME 300B.
Terms: Spr

Units: 3

Grading: Letter or Credit/No Credit
CME 216:
Machine Learning in Computational Engineering (ME 343)
Linear and kernel support vector machines, deep learning, deep neural networks, generative adversarial networks, physicsbased machine learning, forward and reverse mode automatic differentiation, optimization algorithms for machine learning, TensorFlow, PyTorch.
Terms: Spr

Units: 3

Grading: Letter (ABCD/NP)
CME 250:
Introduction to Machine Learning
A Short course presenting the principles behind when, why, and how to apply modern machine learning algorithms. We will discuss a framework for reasoning about when to apply various machine learning techniques, emphasizing questions of overfitting/underfitting, regularization, interpretability, supervised/unsupervised methods, and handling of missing data. The principles behind various algorithmsthe why and how of using themwill be discussed, while some mathematical detail underlying the algorithmsincluding proofswill not be discussed. Unsupervised machine learning algorithms presented will include kmeans clustering, principal component analysis (PCA), and independent component analysis (ICA). Supervised machine learning algorithms presented will include support vector machines (SVM), classification and regression trees (CART), boosting, bagging, and random forests. Imputation, the lasso, and crossvalidation concepts will also be covered. The R programming language will be used for examples, though students need not have prior exposure to R. Prerequisite: undergraduatelevel linear algebra and statistics; basic programming experience (R/Matlab/Python).
Terms: Spr

Units: 1

Grading: Satisfactory/No Credit
CME 251:
Geometric and Topological Data Analysis (CS 233)
Mathematical computational tools for the analysis of data with geometric content, such images, videos, 3D scans, GPS traces  as well as for other data embedded into geometric spaces. Global and local geometry descriptors allowing for various kinds of invariances. The rudiments of computational topology and persistent homology on sampled spaces. Clustering and other unsupervised techniques. Spectral methods for geometric data analysis. Nonlinear dimensionality reduction. Alignment, matching, and map computation between geometric data sets. Function spaces and functional maps.Networks of data sets and joint analysis for segmentation and labeling. The emergence of abstractions or concepts from data. Prerequisites: discrete algorithms at the level of 161; linear algebra at the level of CME103.
Terms: Spr

Units: 3

Grading: Letter or Credit/No Credit
CME 291:
Master's Research
Students require faculty sponsor. (Staff)
Terms: Aut, Win, Spr, Sum

Units: 16

Repeatable for credit

Grading: Letter or Credit/No Credit
Instructors: ;
Aiken, A. (PI);
Begenau, J. (PI);
Biondi, B. (PI);
Brunskill, E. (PI);
Bustamante, C. (PI);
Darve, E. (PI);
Dunham, E. (PI);
Gerritsen, M. (PI);
Gevaert, O. (PI);
Giesecke, K. (PI);
Glynn, P. (PI);
Goel, A. (PI);
Gous, A. (PI);
Grundfest, J. (PI);
Iaccarino, G. (PI);
Lai, T. (PI);
Leskovec, J. (PI);
Marsden, A. (PI);
Osgood, B. (PI);
Papanicolaou, G. (PI);
Pavone, M. (PI);
Pelger, M. (PI);
Rao, A. (PI);
Re, C. (PI);
Santucci, A. (PI);
Suckale, J. (PI);
Tchelepi, H. (PI);
Wheeler, M. (PI);
Wootters, M. (PI);
Ying, L. (PI);
Gallegos, Y. (GP)
CME 292:
Advanced MATLAB for Scientific Computing
Short course running first four weeks of the quarter (8 lectures) with interactive online lectures and application based assignment. Students will access the lectures and assignments on https://suclass.stanford.edu. Students will be introduced to advanced MATLAB features, syntaxes, and toolboxes not traditionally found in introductory courses. Material will be reinforced with inclass examples, demos, and homework assignment involving topics from scientific computing. MATLAB topics will be drawn from: advanced graphics (2D/3D plotting, graphics handles, publication quality graphics, animation), MATLAB tools (debugger, profiler), code optimization (vectorization, memory management), objectoriented programming, compiled MATLAB (MEX files and MATLAB coder), interfacing with external programs, toolboxes (optimization, parallel computing, symbolic math, PDEs). Scientific computing topics will include: numerical linear algebra, numerical optimization, ODEs, and PDEs.
Terms: given next year

Units: 1

Grading: Satisfactory/No Credit
CME 298:
Basic Probability and Stochastic Processes with Engineering Applications (MATH 158)
Calculus of random variables and their distributions with applications. Review of limit theorems of probability and their application to statistical estimation and basic Monte Carlo methods. Introduction to Markov chains, random walks, Brownian motion and basic stochastic differential equations with emphasis on applications from economics, physics and engineering, such as filtering and control. Prerequisites: exposure to basic probability.
Terms: Spr

Units: 3

Grading: Letter or Credit/No Credit
CME 300:
First Year Seminar Series
Required for firstyear ICME Ph.D. students; recommended for firstyear ICME M.S. students. Presentations about research at Stanford by faculty and researchers from Engineering, H&S, and organizations external to Stanford. May be repeated for credit.
Terms: Aut, Win, Spr

Units: 1

Repeatable for credit

Grading: Satisfactory/No Credit
CME 306:
Numerical Solution of Partial Differential Equations (MATH 226)
Hyperbolic partial differential equations: stability, convergence and qualitative properties; nonlinear hyperbolic equations and systems; combined solution methods from elliptic, parabolic, and hyperbolic problems. Examples include: Burger's equation, Euler equations for compressible flow, NavierStokes equations for incompressible flow. Prerequisites: MATH 220 or CME 302.nnNOTE: Undergraduates require instructor permission to enroll. Undergraduates interested in taking the course should contact the instructor for permission, providing information about relevant background such as performance in prior coursework, reading, etc.
Terms: Spr

Units: 3

Grading: Letter or Credit/No Credit
CME 308:
Stochastic Methods in Engineering (MATH 228, MS&E 324)
The basic limit theorems of probability theory and their application to maximum likelihood estimation. Basic Monte Carlo methods and importance sampling. Markov chains and processes, random walks, basic ergodic theory and its application to parameter estimation. Discrete time stochastic control and Bayesian filtering. Diffusion approximations, Brownian motion and an introduction to stochastic differential equations. Examples and problems from various applied areas. Prerequisites: exposure to probability and background in analysis.
Terms: Spr

Units: 3

Grading: Letter or Credit/No Credit
CME 323:
Distributed Algorithms and Optimization
The emergence of clusters of commodity machines with parallel processing units has brought with it a slew of new algorithms and tools. Many fields such as Machine Learning and Optimization have adapted their algorithms to handle such clusters. Topics include distributed and parallel algorithms for: Optimization, Numerical Linear Algebra, Machine Learning, Graph analysis, Streaming algorithms, and other problems that are challenging to scale on a commodity cluster. The class will focus on analyzing parallel and distributed programs, with some implementation using Apache Spark and TensorFlow. Recommended prerequisites: Discrete math at the level of CS 161 and programming at the level of CS 106A.
Terms: Spr

Units: 3

Grading: Letter or Credit/No Credit
CME 364B:
Convex Optimization II (EE 364B)
Continuation of 364A. Subgradient, cuttingplane, and ellipsoid methods. Decentralized convex optimization via primal and dual decomposition. Monotone operators and proximal methods; alternating direction method of multipliers. Exploiting problem structure in implementation. Convex relaxations of hard problems. Global optimization via branch and bound. Robust and stochastic optimization. Applications in areas such as control, circuit design, signal processing, and communications. Course requirements include project. Prerequisite: 364A.
Terms: Spr

Units: 3

Grading: Letter or Credit/No Credit
CME 390:
Curricular Practical Training
Educational opportunities in high technology research and development labs in applied mathematics. Qualified ICME students engage in internship work and integrate that work into their academic program. Students register during the quarter they are employed and complete a research report outlining their work activity, problems investigated, results, and followon projects they expect to perform. May be repeated three times for credit.
Terms: Aut, Win, Spr, Sum

Units: 1

Repeatable for credit

Grading: Satisfactory/No Credit
CME 399:
Special Research Topics in Computational and Mathematical Engineering
Graduatelevel research work not related to report, thesis, or dissertation. May be repeated for credit.
Terms: Aut, Win, Spr, Sum

Units: 115

Repeatable for credit

Grading: Letter or Credit/No Credit
Terms: Aut, Win, Spr, Sum

Units: 115

Repeatable for credit

Grading: Satisfactory/No Credit
Instructors: ;
Aiken, A. (PI);
Athey, S. (PI);
Basu, S. (PI);
Bimpikis, K. (PI);
Biondi, B. (PI);
Blanchet Mancilla, J. (PI);
Bosagh Zadeh, R. (PI);
Boyd, S. (PI);
Bump, D. (PI);
Bustamante, C. (PI);
Candes, E. (PI);
Carlsson, G. (PI);
Chen, J. (PI);
Darve, E. (PI);
Dror, R. (PI);
Farhat, C. (PI);
Gerritsen, M. (PI);
Giesecke, K. (PI);
Goel, S. (PI);
Guibas, L. (PI);
Hastie, T. (PI);
Holmes, S. (PI);
Iaccarino, G. (PI);
Iancu, D. (PI);
James, D. (PI);
Johari, R. (PI);
Kahn, S. (PI);
Khatri, P. (PI);
Lai, T. (PI);
Lobell, D. (PI);
Marsden, A. (PI);
Montanari, A. (PI);
Owen, A. (PI);
Papanicolaou, G. (PI);
Pavone, M. (PI);
Re, C. (PI);
Ryzhik, L. (PI);
Saban, D. (PI);
Saberi, A. (PI);
Sidford, A. (PI);
Suckale, J. (PI);
Ugander, J. (PI);
Wein, L. (PI);
Weintraub, G. (PI);
Wong, W. (PI);
Xing, L. (PI);
Ye, Y. (PI);
Ying, L. (PI)
CME 444:
Computational Consulting
Advice by graduate students under supervision of ICME faculty. Weekly briefings with faculty adviser and associated faculty to discuss ongoing consultancy projects and evaluate solutions. May be repeated for credit.
Terms: Spr

Units: 13

Repeatable for credit

Grading: Satisfactory/No Credit
CME 510:
Linear Algebra and Optimization Seminar
Recent developments in numerical linear algebra and numerical optimization. Guest speakers from other institutions and local industry. Goal is to bring together scientists from different theoretical and application fields to solve complex scientific computing problems. May be repeated for credit.
Terms: Aut, Win, Spr

Units: 1

Repeatable for credit

Grading: Satisfactory/No Credit
Terms: Aut, Win, Spr, Sum

Units: 0

Repeatable for credit

Grading: TGR
CME 802:
TGR Dissertation
Terms: Aut, Win, Spr, Sum

Units: 0

Repeatable for credit

Grading: TGR
Instructors: ;
Biondi, B. (PI);
Blanchet Mancilla, J. (PI);
Boyd, S. (PI);
Bustamante, C. (PI);
Candes, E. (PI);
Carlsson, G. (PI);
Darve, E. (PI);
Farhat, C. (PI);
Gerritsen, M. (PI);
Giesecke, K. (PI);
Guibas, L. (PI);
Holmes, S. (PI);
Iaccarino, G. (PI);
Iancu, D. (PI);
Johari, R. (PI);
Lai, T. (PI);
Marsden, A. (PI);
Moin, P. (PI);
Montanari, A. (PI);
Papanicolaou, G. (PI);
Rajagopal, R. (PI);
Re, C. (PI);
Reed, E. (PI);
Saban, D. (PI);
Saberi, A. (PI);
Saunders, M. (PI);
Suckale, J. (PI);
Tibshirani, R. (PI);
Vasy, A. (PI);
Wong, W. (PI);
Ye, Y. (PI);
Ying, L. (PI)