CME 10:
How to learn Mathematics  New ideas from the science of learning (EDUC 105, FEMGEN 10)
This course will help provide the transition from high school to college learning and encourage the positive ideas and mindsets that shape productive learning. We willnconsider what learning theories have to tell us about mathematics learning, the nature of good teaching and the reasons for ongoing inequities in mathematics learning and participation. This seminar is for those who would like a more positive relationship with mathematics, and are interested in learning about ways to tackle education inequalities. Learning goals: First, it introduces students to theories of learning and in particular the learning of mathematics. Mathematics plays a key role in many students¿ learning identities and is often the cause of low selfesteem and anxiety. Research tells us that this is because mathematics in the US is taught in highly ineffective ways. Indeed there is a large gap between what we know works from research and what happens in most mathematics classrooms. This seminar will give participants an understanding of ways to relate positively to mathematics, to learn mathematics most productively and some of the learning barriers that often deny students the opportunity to engage with mathematics in productive ways.nSecond, the course will teach students about the inequalities that pervade the education system in the United States. We will examine the barriers to the participation of women and students of color and we will consider why social class and race are both strong predictors of mathematics achievement. It is hoped that students will leave the course with greater knowledge of why mathematics is important  to themselves and to the future of society.nCourse participants will be given the opportunity to take part in a mathematics camp, designed to change the pathways of middle school students, similar to this previous camp: https://www.youcubed.org/solvingmath problem/ and to take part in the work of youcubed.org. if they wish.nNote: This variable unit course can be taken for either one or three units. Students enrolled in one unit will be working on engaging mathematics tasks to improve learning relationships(Monday only classes) and students enrolled in 3 units we will also explore what is going wrong in education and think together about what to do to help (Mondays and Wednesday classes).
Terms: Aut

Units: 13

Grading: Letter or Credit/No Credit
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);
Mishra, A. (PI);
BougdalLambert, I. (TA);
Chen, E. (TA);
Chen, G. (TA);
Chiu, D. (TA);
Earley, E. (TA);
Fry, K. (TA);
Homma, Y. (TA);
Mantravadi, S. (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);
Mishra, A. (PI);
BougdalLambert, I. (TA);
Chen, E. (TA);
Chen, G. (TA);
Chiu, D. (TA);
Earley, E. (TA);
Fry, K. (TA);
Homma, Y. (TA);
Mantravadi, S. (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, Sum

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 103:
Introduction to Matrix Methods (EE 103)
Introduction to applied linear algebra with emphasis on applications. Vectors, norm, and angle; linear independence and orthonormal sets; applications to document analysis. Clustering and the kmeans algorithm. Matrices, left and right inverses, QR factorization. Leastsquares and model fitting, regularization and crossvalidation. Constrained and nonlinear leastsquares. Applications include timeseries prediction, tomography, optimal control, and portfolio optimization. Undergraduate students should enroll for 5 units, and graduate students should enroll for 3 units. Prerequisites:MATH 51 or CME 100, and basic knowledge of computing (CS 106A is more than enough, and can be taken concurrently). EE103/CME103 and Math 104 cover complementary topics in applied linear algebra. The focus of EE103 is on a few linear algebra concepts, and many applications; the focus of Math 104 is on algorithms and concepts.
Terms: Aut, Sum

Units: 35

UG Reqs: GER:DBMath, WAYAQR, 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 106:
Introduction to Probability and Statistics for Engineers (ENGR 155C)
Probability: random variables, independence, and conditional probability; discrete and continuous distributions, moments, distributions of several random variables. Topics in mathematical statistics: random sampling, point estimation, confidence intervals, hypothesis testing, nonparametric tests, regression and correlation analyses; applications in engineering, industrial manufacturing, medicine, biology, and other fields. Prerequisite: CME 100/ENGR154 or MATH 51 or 52.
Terms: Win, Sum

Units: 4

UG Reqs: GER:DBMath, WAYAQR, WAYFR

Grading: Letter or Credit/No Credit
CME 108:
Introduction to Scientific Computing (MATH 114)
Introduction to Scientific Computing Numerical computation for mathematical, computational, physical sciences and engineering: error analysis, floatingpoint arithmetic, nonlinear equations, numerical solution of systems of algebraic equations, banded matrices, least squares, unconstrained optimization, polynomial interpolation, numerical differentiation and integration, numerical solution of ordinary differential equations, truncation error, numerical stability for time dependent problems and stiffness. Implementation of numerical methods in MATLAB programming assignments. Prerequisites: MATH 51, 52, 53; prior programming experience (MATLAB or other language at level of CS 106A or higher).
Terms: Win, Sum

Units: 3

UG Reqs: GER:DBEngrAppSci, WAYAQR, WAYFR

Grading: Letter or Credit/No Credit
CME 151A:
Interactive Data Visualization in D3
This fourweek short course introduces D3, a powerful tool for creating interactive data visualizations on the web (d3js.org). The class is geared toward scientists and engineers who want to better communicate their personal projects and research through visualizations on the web. The class will cover the basics of D3: inputting data, creating scales and axes, and adding transitions and interactivity, as well as some of the most used libraries: stack, cluster and force layouts. The class will be based on short workshops and a final project. A background in programming methodology at the level of CS106A is assumed. The course will make use of Javascript, experience is recommended but not necessary.
Terms: not given this year

Units: 1

Grading: Satisfactory/No Credit
CME 181:
Projects in Applied and Computational Mathematics
Teams of students use techniques in applied and computational mathematics to tackle problems of their choosing. Students will have the opportunity to pursue openended projects in a variety of areas: economics, physics, political science, operations research, etc. Projects can cover (but are not limited to!) topics such as mathematical modeling of realworld phenomena (population dynamics), datadriven applications (movie recommendations) or complex systems in engineering (optimal control). Each team will be paired with a graduate student mentor working in applied and computational mathematics. Limited enrollment. Prerequisites: CME 100/102/104 or equivalents, or instructor consent. Recommended: CME 106/108 and familiarity with programming at the level of CME 192/193.
Terms: offered occasionally

Units: 3

Grading: Letter (ABCD/NP)
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

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: Aut, Spr

Units: 1

Grading: Satisfactory/No Credit
CME 200:
Linear Algebra with Application to Engineering Computations (ME 300A)
Computer based solution of systems of algebraic equations obtained from engineering problems and eigensystem analysis, Gaussian elimination, effect of roundoff error, operation counts, banded matrices arising from discretization of differential equations, illconditioned matrices, matrix theory, least square solution of unsolvable systems, solution of nonlinear algebraic equations, eigenvalues and eigenvectors, similar matrices, unitary and Hermitian matrices, positive definiteness, CayleyHamilton theory and function of a matrix and iterative methods. Prerequisite: familiarity with computer programming, and MATH51.
Terms: Aut

Units: 3

Grading: Letter or Credit/No Credit
CME 204:
Partial Differential Equations in Engineering (ME 300B)
Geometric interpretation of partial differential equation (PDE) characteristics; solution of first order PDEs and classification of secondorder PDEs; selfsimilarity; separation of variables as applied to parabolic, hyperbolic, and elliptic PDEs; special functions; eigenfunction expansions; the method of characteristics. If time permits, Fourier integrals and transforms, Laplace transforms. Prerequisite: CME 200/ME 300A, equivalent, or consent of instructor.
Terms: Win

Units: 3

Grading: Letter or Credit/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 207:
Numerical Methods in Engineering and Applied Sciences (AA 214A, GEOPHYS 217)
Scientific computing and numerical analysis for physical sciences and engineering. Advanced version of CME206 that, apart from CME206 material, includes nonlinear PDEs, multidimensional interpolation and integration and an extended discussion of stability for initial boundary value problems. Recommended for students who have some prior numerical analysis experience. Topics include: 1D and multiD interpolation, numerical integration in 1D and multiD including adaptive quadrature, numerical solutions of ordinary differential equations (ODEs) including stability, numerical solutions of 1D and multiD linear and nonlinear partial differential equations (PDEs) including concepts of stability and accuracy. Prerequisites: linear algebra, introductory numerical analysis (CME 108 or equivalent).
Terms: not given this year

Units: 3

Grading: Letter or Credit/No Credit
CME 211:
Software Development for Scientists and Engineers
Basic usage of the Python and C/C++ programming languages are introduced and used to solve representative computational problems from various science and engineering disciplines. Software design principles including time and space complexity analysis, data structures, objectoriented design, decomposition, encapsulation, and modularity are emphasized. Usage of campus wide Linux compute resources: login, file system navigation, editing files, compiling and linking, file transfer, etc. Versioning and revision control, software build utilities, and the LaTeX typesetting software are introduced and used to help complete programming assignments. Prerequisite: introductory programming course equivalent to CS 106A or instructor consent.
Terms: Aut

Units: 3

Grading: Letter or Credit/No Credit
CME 212:
Advanced Software Development for Scientists and Engineers
Advanced topics in software development, debugging, and performance optimization are covered. The capabilities and usage of common libraries and frameworks such as BLAS, LAPACK, FFT, PETSc, and MKL/ACML are reviewed. Computer representation of integer and floating point numbers, and interoperability between C/C++ and Fortran is described. More advanced software engineering topics including: representing data in files, signals, unit and regression testing, and build automation. The use of debugging tools including static analysis, gdb, and Valgrind are introduced. An introduction to computer architecture covering processors, memory hierarchy, storage, and networking provides a foundation for understanding software performance. Profiles generated using gprof and perf are used to help guide the performance optimization process. Computational problems from various science and engineering disciplines will be used in assignments. Prerequisites: CME 200 / ME 300A and CME 211.
Terms: Win

Units: 3

Grading: Letter or Credit/No Credit
CME 213:
Introduction to parallel computing using MPI, openMP, and CUDA (ME 339)
This class will give hands on experience with programming multicore processors, graphics processing units (GPU), and parallel computers. Focus will be on the message passing interface (MPI, parallel clusters) and the compute unified device architecture (CUDA, GPU). Topics will include: network topologies, modeling communication times, collective communication operations, parallel efficiency, MPI, dense linear algebra using MPI. Symmetric multiprocessing (SMP), pthreads, openMP. CUDA, combining MPI and CUDA, dense linear algebra using CUDA, sort, reduce and scan using CUDA. Prerequisites include: C programming language and numerical algorithms (solution of differential equations, linear algebra, Fourier transforms).
Terms: Spr

Units: 3

Grading: Letter or Credit/No Credit
CME 214:
Software Design in Modern Fortran for Scientists and Engineers (EARTH 214)
This course introduces software design and development in modern Fortran. Course covers the functional, objectoriented, and parallel programming features introduced in the Fortran 95, 2003, and 2008 standards, respectively, in the context of numerical approximations to ordinary and partial differential equations; introduces objectoriented design and design schematics based on the Unified Modeling Language (UML) structure, behavior, and interaction diagrams; cover the basic use of several opensource tools for software building, testing, documentation generation, and revision control. Recommended: Familiarity with programming in Fortran 90, basic numerical analysis and linear algebra, or instructor approval
Terms: alternate years, given next year

Units: 3

Grading: Letter (ABCD/NP)
CME 215A:
Advanced Computational Fluid Dynamics (AA 215A)
High resolution schemes for capturing shock waves and contact discontinuities; upwinding and artificial diffusion; LED and TVD concepts; alternative flow splittings; numerical shock structure. Discretization of Euler and Navier Stokes equations on unstructured meshes; the relationship between finite volume and finite element methods. Time discretization; explicit and implicit schemes; acceleration of steady state calculations; residual averaging; math grid preconditioning. Automatic design; inverse problems and aerodynamic shape optimization via adjoint methods. Pre or corequisite: 214B or equivalent.
Terms: not given this year

Units: 3

Grading: Letter (ABCD/NP)
CME 215B:
Advanced Computational Fluid Dynamics (AA 215B)
High resolution schemes for capturing shock waves and contact discontinuities; upwinding and artificial diffusion; LED and TVD concepts; alternative flow splittings; numerical shock structure. Discretization of Euler and Navier Stokes equations on unstructured meshes; the relationship between finite volume and finite element methods. Time discretization; explicit and implicit schemes; acceleration of steady state calculations; residual averaging; math grid preconditioning. Automatic design; inverse problems and aerodynamic shape optimization via adjoint methods. Pre or corequisite: 214B or equivalent.
Terms: not given this year

Units: 3

Grading: Letter (ABCD/NP)
CME 232:
Introduction to Computational Mechanics (ME 332)
Provides an introductory overview of modern computational methods for problems arising primarily in mechanics of solids and is intended for students from various engineering disciplines. The course reviews the basic theory of linear solid mechanics and introduces students to the important concept of variational forms, including the principle of minimum potential energy and the principles of virtual work. Specific model problems that will be considered include deformation of bars, beams and membranes, plates, and problems in plane elasticity (plane stress, plane strain, axisymmetric elasticity). The variational forms of these problems are used as the starting point for developing the finite element method (FEM) and boundary element method (BEM) approaches providing an important connection between mechanics and computational methods.
Terms: not given this year

Units: 3

Grading: Letter (ABCD/NP)
CME 237:
Networks, Markets, and Crowds (MS&E 237)
The course explores the underlying network structure of our social, economic, and technological worlds and uses techniques from graph theory and economics to examine the structure & evolution of information networks, social contagion, the spread of social power and popularity, and information cascades. Prerequisites: basic graph and probability theory.
Terms: not given this year

Units: 3

Grading: Letter or Credit/No Credit
CME 240:
Statistical and Machine Learning Approaches to Problems in Investment Management (MS&E 445)
This course will approach a variety of problems in investment management, using statistical and machine learning tools to model forecasting problems in the evolution of security prices. Through a combination of lectures and projects, we will investigate pricing and risk models ranging from individual securities up through asset classes. Occasional guest lecturers will present problems they currently face in their day to day work. Prerequisites: Basic background in Probability (e.g.: CME 106) and Mathematical Finance (e.g.: MATH 238), and some facility programming in R and/or Python.
Terms: Spr

Units: 3

Grading: Letter or Credit/No Credit
CME 241:
Reinforcement Learning for Stochastic Control Problems in Finance (MS&E 346)
This course will explore a few problems in Mathematical Finance through the lens of Stochastic Control such as Portfolio Management, Optimal Exercise of Derivatives, Order Execution, Personal Finance. For each of these problems, we formulate a suitable Markov Decision Process (MDP), develop Dynamic Programming (DP) solutions, and explore Reinforcement Learning (RL) algorithms. The course emphasizes the theory of DP/RL as well as modeling the practical nuances of these finance problems, and strengthening the understanding through plenty of coding exercises of the methods. Prerequisites: basic background in Probability (eg: CME 106) and Mathematical Finance (eg: MATH 238), and some experience coding in Python; Dynamic Programming or Reinforcement Learning experience not required.
Terms: Win

Units: 3

Grading: Letter or Credit/No Credit
CME 242:
Mathematical and Computational Finance Seminar (MS&E 446A, STATS 239)
May be repeat for credit.
Terms: not given this year

Units: 1

Repeatable for credit

Grading: Satisfactory/No Credit
CME 243:
Risk Analytics and Management in Finance and Insurance (STATS 243)
Market risk and credit risk, credit markets. Back testing, stress testing and Monte Carlo methods. Logistic regression, generalized linear models and generalized mixed models. Loan prepayment and default as competing risks. Survival and hazard functions, correlated default intensities, frailty and contagion. Risk surveillance, early warning and adaptive control methodologies. Banking and bank regulation, asset and liability management. Prerequisite: STATS 240 or equivalent.
Terms: not given this year

Units: 24

Grading: Letter or Credit/No Credit
CME 244:
Project Course in Mathematical and Computational Finance
For graduate students in the MCF track; students will work individually or in groups on research projects.
Terms: Aut

Units: 16

Grading: Letter (ABCD/NP)
CME 245:
Topics in Mathematical and Computational Finance
Description: Current topics for enrolled students in the MCF program: This course is an introduction to computational, statistical, and optimizations methods and their application to financial markets. Class will consist of lectures and realtime problem solving. Topics: Python & R programming, interest rates, BlackScholes model, financial time series, capital asset pricing model (CAPM), options, optimization methods, and machine learning algorithms. Appropriate for anyone with a technical and solid applied math background interested in honing skills in quantitative finance. Prerequisite: basic statistics and exposure to programming.Can be repeated up to three times.
Terms: not given this year

Units: 1

Repeatable for credit

Grading: Satisfactory/No Credit
CME 249:
Using Design for Effective Data Analysis
Teams of students use techniques in applied and computational mathematics to tackle problems with real world data sets. Application of design methodology adapted for data analysis will be emphasized; leverage design thinking to come up with efficient and effective data driven insights; explore design thinking methodology in small group setting.;apply design thinking to a specific data centric problem and make professional group presentation of the results. Limited enrollment. Prerequisites: CME100/102/104 or equivalents, or instructor consent. Recommended:CME106/108 and familiarity with programming at the level of CME 192/193.
Terms: offered occasionally

Units: 1

Grading: Satisfactory/No Credit
CME 249A:
Statistical Arbitrage
Course will cover trading strategies that are bottom up, market neutral, with trading driven by statistical or econometric models and strategies such as pair trading and index arbitrage. Models may focus on tendency of short term returns to revert, leads/lags among correlated instruments, volume momentum, or behavioral effects. nTopics include: (a) a taxonomy of market participants and what motivates trading, (b) methods of exploring relationships between instruments, (c) portfolio construction across a large number of instruments, (d) risks inherent in statistical arbitrage (e) nonstationarity of relationships due to changes in market regulations, fluctuations in market volatility and other factors and (f) frictions such as costs of trading and constraints. Students will team to analyze the provided data sets which cover distinct dynamic market regimes.
Terms: offered occasionally

Units: 1

Grading: Satisfactory/No Credit
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: Win

Units: 1

Grading: Satisfactory/No Credit
CME 250A:
Machine Learning on Big Data
A short course presenting the application of machine learning methods to large datasets.Topics include: brief review of the common issues of machine learning, such as, memorizing/overfitting vs learning, test/train splits, feature engineering, domain knowledge, fast/simple/dumb learners vs slow/complex/smart learners; moving your model from your laptop into a production environment using Python (scikit) or R on small data (laptop sized) at first; building math clusters using the open source H2O product to tackle Big Data, and finally to some model building on terabyte sized datasets. Prereqresites: basic knowledge of statistics, matrix algebra, and unixlike operating systems; basic file and text manipulation skills with unix tools: pipes, cut, paste, grep, awk, sed, sort, zip; programming skill at the level of CME211 or CS106A.
Terms: offered occasionally

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: not given this year

Units: 3

Grading: Letter or Credit/No Credit
CME 253:
Introduction to GPU Computing and CUDA
Covers the fundamentals of accelerating applications with GPUs (Graphics Processing Units); GPU programming with CUDA and OpenACC, debugging, thrust/CUB, profiling, optimization, debugging, and other CUDA tools. Libraries to easily accelerate compute code will be presented and deployment on larger systems will be addressed, including multiGPU environments. Several practical examples will be detailed, including deep learning. Prerequiste: knowledge of C/C++ at the level of CME211 or CS106b.
Terms: offered occasionally

Units: 1

Grading: Satisfactory/No Credit
CME 257:
Advanced Topics in Scientific Computing with Julia
This course will rapidly introduce students to the Julia programming language, with the goal of giving students the knowledge and experience necessary to navigate the language and package ecosystem while using Julia for their own scientific computing needs. The course will begin with learning the basics of Julia, and then introduce students to git version control and package development. Additional topics include: common packages, parallelism, interfacing with shared object libraries, and aspects of Julia's implementation (e.g. core numerical linear algebra). Lectures will be interactive, with an emphasis on collaboration and learning by example. Prerequisites: Data structures at the level of CS106B, experience with one or more scientific computing languages (e.g. Python, Matlab, or R), and some familiarity with the Unix shell. No prior experience with Julia or git is required.
Terms: Win

Units: 1

Grading: Satisfactory/No Credit
CME 258:
Libraries for Numerical Linear Algebra and Optimization
This course will cover standard libraries commonly used for numerical linear algebra and optimization, with an emphasis on giving students experience with using the libraries on real examples. The course will cover software for direct methods (BLAS, Atlas, LAPACK, Eigen), iterative methods (ARPACK, Krylov Methods), and linear/nonlinear optimization (MINOS, SNOPT). Prerequisites: at least one course in numerical linear algebra (preferably at the level of CME 200 or CME 302), and one course in numerical optimization, as well as experience with at least one compiled language such as C/C++/Fortran.
Terms: Spr

Units: 1

Grading: Satisfactory/No Credit
CME 262:
Imaging with Incomplete Information (CEE 362G)
Statistical and computational methods for inferring images from incomplete data. Bayesian inference methods are used to combine data and quantify uncertainty in the estimate. Fast linear algebra tools are used to solve problems with many pixels and many observations. Applications from several fields but mainly in earth sciences. Prerequisites: Linear algebra and probability theory.
Terms: Aut

Units: 34

Grading: Letter or Credit/No Credit
CME 263:
Introduction to Linear Dynamical Systems (EE 263)
Applied linear algebra and linear dynamical systems with applications to circuits, signal processing, communications, and control systems. Topics: leastsquares approximations of overdetermined equations, and leastnorm solutions of underdetermined equations. Symmetric matrices, matrix norm, and singularvalue decomposition. Eigenvalues, left and right eigenvectors, with dynamical interpretation. Matrix exponential, stability, and asymptotic behavior. Multiinput/multioutput systems, impulse and step matrices; convolution and transfermatrix descriptions. Control, reachability, and state transfer; observability and leastsquares state estimation. Prerequisites: Linear algebra and matrices as in EE 103 or MATH 104; ordinary differential equations and Laplace transforms as in EE 102B or CME 102.
Terms: Aut, Sum

Units: 3

Grading: Letter or Credit/No Credit
CME 279:
Computational Biology: Structure and Organization of Biomolecules and Cells (BIOE 279, BIOMEDIN 279, BIOPHYS 279, CS 279)
Computational techniques for investigating and designing the threedimensional structure and dynamics of biomolecules and cells. These computational methods play an increasingly important role in drug discovery, medicine, bioengineering, and molecular biology. Course topics include protein structure prediction, protein design, drug screening, molecular simulation, cellularlevel simulation, image analysis for microscopy, and methods for solving structures from crystallography and electron microscopy data. Prerequisites: elementary programming background (CS 106A or equivalent) and an introductory course in biology or biochemistry.
Terms: not given this year

Units: 3

Grading: Letter or Credit/No Credit
CME 285:
Computational Modeling in the Cardiovascular System (BIOE 285, ME 285)
This course introduces computational modeling methods for cardiovascular blood flow and physiology. Topics in this course include analytical and computational methods for solutions of flow in deformable vessels, onedimensional equations of blood flow, cardiovascular anatomy, lumped parameter models, vascular trees, scaling laws, biomechanics of the circulatory system, and 3D patient specific modeling with finite elements; course will provide an overview of the diagnosis and treatment of adult and congenital cardiovascular diseases and review recent research in the literature in a journal club format. Students will use SimVascular software to do clinicallyoriented projects in patient specific blood flow simulations.
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: ;
Begenau, J. (PI);
Biondi, B. (PI);
Darve, E. (PI);
Gerritsen, M. (PI);
Gevaert, O. (PI);
Giesecke, K. (PI);
Glynn, P. (PI);
Goel, A. (PI);
Grundfest, J. (PI);
Iaccarino, G. (PI);
Lai, T. (PI);
Leskovec, J. (PI);
Marsden, A. (PI);
Papanicolaou, G. (PI);
Pelger, M. (PI);
Re, C. (PI);
Suckale, J. (PI);
Wong, W. (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: Aut, Spr

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 302:
Numerical Linear Algebra
Solution of linear systems, accuracy, stability, LU, Cholesky, QR, least squares problems, singular value decomposition, eigenvalue computation, iterative methods, Krylov subspace, Lanczos and Arnoldi processes, conjugate gradient, GMRES, direct methods for sparse matrices. Prerequisites: CME 108, MATH 114, MATH 104.
Terms: Aut

Units: 3

Grading: Letter or Credit/No Credit
CME 303:
Partial Differential Equations of Applied Mathematics (MATH 220)
Firstorder partial differential equations; method of characteristics; weak solutions; elliptic, parabolic, and hyperbolic equations; Fourier transform; Fourier series; and eigenvalue problems. Prerequisite: Basic coursework in multivariable calculus and ordinary differential equations, and some prior experience with a proofbased treatment of the material as in Math 171 or Math 61CM (formerly Math 51H).
Terms: Aut

Units: 3

Grading: Letter or Credit/No Credit
CME 305:
Discrete Mathematics and Algorithms (MS&E 316)
Topics: Basic Algebraic Graph Theory, Matroids and Minimum Spanning Trees, Submodularity and Maximum Flow, NPHardness, Approximation Algorithms, Randomized Algorithms, The Probabilistic Method, and Spectral Sparsification using Effective Resistances. Topics will be illustrated with applications from Distributed Computing, Machine Learning, and largescale Optimization. Prerequisites: CS 261 is highly recommended, although not required.
Terms: Win

Units: 3

Grading: Letter or Credit/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 220A or CME 302.
Terms: Spr

Units: 3

Grading: Letter or Credit/No Credit
CME 307:
Optimization (MS&E 311)
Applications, theories, and algorithms for finitedimensional linear and nonlinear optimization problems with continuous variables. Elements of convex analysis, first and secondorder optimality conditions, sensitivity and duality. Algorithms for unconstrained optimization, and linearly and nonlinearly constrained problems. Modern applications in communication, game theory, auction, and economics. Prerequisites: MATH 113, 115, or equivalent.
Terms: Win

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 309:
Randomized Algorithms and Probabilistic Analysis (CS 265)
Randomness pervades the natural processes around us, from the formation of networks, to genetic recombination, to quantum physics. Randomness is also a powerful tool that can be leveraged to create algorithms and data structures which, in many cases, are more efficient and simpler than their deterministic counterparts. This course covers the key tools of probabilistic analysis, and application of these tools to understand the behaviors of random processes and algorithms. Emphasis is on theoretical foundations, though we will apply this theory broadly, discussing applications in machine learning and data analysis, networking, and systems. Topics include tail bounds, the probabilistic method, Markov chains, and martingales, with applications to analyzing random graphs, metric embeddings, random walks, and a host of powerful and elegant randomized algorithms. Prerequisites: CS 161 and STAT 116, or equivalents and instructor consent.
Terms: Aut

Units: 3

Grading: Letter or Credit/No Credit
CME 321A:
Mathematical Methods of Imaging (MATH 221A)
Image denoising and deblurring with optimization and partial differential equations methods. Imaging functionals based on total variation and l1 minimization. Fast algorithms and their implementation.
Terms: alternate years, given next year

Units: 3

Grading: Letter or Credit/No Credit
CME 321B:
Mathematical Methods of Imaging (MATH 221B)
Array imaging using Kirchhoff migration and beamforming, resolution theory for broad and narrow band array imaging in homogeneous media, topics in highfrequency, variable background imaging with velocity estimation, interferometric imaging methods, the role of noise and inhomogeneities, and variational problems that arise in optimizing the performance of array imaging algorithms.
Terms: not given this year

Units: 3

Grading: Letter or Credit/No Credit
CME 322:
Spectral Methods in Computational Physics (ME 408)
Data analysis, spectra and correlations, sampling theorem, nonperiodic data, and windowing; spectral methods for numerical solution of partial differential equations; accuracy and computational cost; fast Fourier transform, Galerkin, collocation, and Tau methods; spectral and pseudospectral methods based on Fourier series and eigenfunctions of singular SturmLiouville problems; Chebyshev, Legendre, and Laguerre representations; convergence of eigenfunction expansions; discontinuities and Gibbs phenomenon; aliasing errors and control; efficient implementation of spectral methods; spectral methods for complicated domains; time differencing and numerical stability.
Terms: Win

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.
Terms: alternate years, given next year

Units: 3

Grading: Letter or Credit/No Credit
CME 325:
Numerical Approximations of Partial Differential Equations in Theory and Practice
Finite volume and finite difference methods for initial boundary value problems in multiple space dimensions. Emphasis is on formulation of boundary conditions for the continuous and the discrete problems. Analysis of numerical methods with respect to stability, accuracy, and error behavior. Techniques of treating nonrectangular domains, and effects of nonregular grids.
Terms: not given this year

Units: 12

Grading: Letter or Credit/No Credit
CME 326:
Numerical Methods for Initial Boundary Value Problems
Initial boundary value problems model many phenomena in engineering and science such as, fluid flow problems, wave propagation, fluidstructure interaction, conjugate heat transfer and financial mathematics. We discuss numerical techniques for such simulations and focus on the underlying principles and theoretical understanding. Emphasis is on stability, convergence and efficiency for methods applied to hyperbolic and parabolic initial boundary value problems.
Terms: not given this year

Units: 3

Grading: Letter or Credit/No Credit
CME 327:
Numerical Methods for Stiff Problems
Focus is on analysis of numerical techniques for stiff ordinary differential equations, including those resulting from spatial discretization of partial differential equations. Topics include stiffness, convergence, stability, adaptive time stepping, implicit timestepping methods (SDIRK, Rosenbrock), linear and nonlinear system solvers (Fixed Point, Newton, Multigrid, Krylov subspace methods) and preconditioning. Prerequisites: CME200/ME300A or equivalent; or consent of instructor.
Terms: not given this year

Units: 3

Grading: Letter or Credit/No Credit
CME 328:
Advanced Topics in Partial Differential Equations
Contents change each time and is taught as a topics course, most likely by a faculty member visiting from another institution. May be repeated for credit. Topic in 201213: numerical solution of timedependent partial differential equations is a fundamental tool for modeling and prediction in many areas of science and engineering. In this course we explore the stability, accuracy, efficiency, and appropriateness of specialized temporal integration strategies for different classes of partial differential equations including stiff problems and fully implicit methods, operator splitting and semiimplicit methods, extrapolation methods, multirate time integration, multiphysics problems, symplectic integration, and temporal parallelism. Prerequisites: recommended CME303 and 306 or with instructor's consent.
Terms: not given this year

Units: 3

Grading: Letter or Credit/No Credit
CME 330:
Applied Mathematics in the Chemical and Biological Sciences (CHEMENG 300)
Mathematical solution methods via applied problems including chemical reaction sequences, mass and heat transfer in chemical reactors, quantum mechanics, fluid mechanics of reacting systems, and chromatography. Topics include generalized vector space theory, linear operator theory with eigenvalue methods, phase plane methods, perturbation theory (regular and singular), solution of parabolic and elliptic partial differential equations, and transform methods (Laplace and Fourier). Prerequisites: CME 102/ENGR 155A and CME 104/ENGR 155B, or equivalents.
Terms: Aut

Units: 3

Grading: Letter (ABCD/NP)
CME 334:
Advanced Methods in Numerical Optimization (MS&E 312)
Topics include interiorpoint methods, relaxation methods for nonlinear discrete optimization, sequential quadratic programming methods, optimal control and decomposition methods. Topic chosen in first class; different topics for individuals or groups possible. Individual or team projects. May be repeated for credit.
Terms: not given this year

Units: 3

Repeatable for credit

Grading: Letter or Credit/No Credit
CME 335:
Advanced Topics in Numerical Linear Algebra
Possible topics: Classical and modern (e.g., focused on provable communication minimization) algorithms for executing dense and sparsedirect factorizations in highperformance, distributedmemory environments; distributed dense eigensolvers, dense and sparsedirect triangular solvers, and sparse matrixvector multiplication; unified analysis of distributed Interior Point Methods for symmetric cones via algorithms for distributing Jordan algebras over products of secondorder cones and Hermitian matrices. May be repeated for credit. Prerequisites: CME 302 and CME 304 (or equivalents)
Terms: not given this year

Units: 3

Repeatable for credit

Grading: Letter or Credit/No Credit
CME 336:
Linear and Conic Optimization with Applications (MS&E 314)
Linear, semidefinite, conic, and convex nonlinear optimization problems as generalizations of classical linear programming. Algorithms include the interiorpoint, barrier function, and cutting plane methods. Related convex analysis, including the separating hyperplane theorem, Farkas lemma, dual cones, optimality conditions, and conic inequalities. Complexity and/or computation efficiency analysis. Applications to combinatorial optimization, sensor network localization, support vector machine, and graph realization. Prerequisite: MS&E 211 or equivalent.
Terms: alternate years, given next year

Units: 3

Grading: Letter or Credit/No Credit
CME 338:
LargeScale Numerical Optimization
The main algorithms and software for constrained optimization emphasizing the sparsematrix methods needed for their implementation. Iterative methods for linear equations and least squares. The simplex method. Basis factorization and updates. Interior methods. The reducedgradient method, augmented Lagrangian methods, and SQP methods. Prerequisites: Basic numerical linear algebra, including LU, QR, and SVD factorizations, and an interest in MATLAB, sparsematrix methods, and gradientbased algorithms for constrained optimization. Recommended: MS&E 310, 311, 312, 314, or 315; CME 108, 200, 302, 304, 334, or 335.
Terms: Spr

Units: 3

Grading: Letter (ABCD/NP)
CME 342:
Parallel Methods in Numerical Analysis
Emphasis is on techniques for obtaining maximum parallelism in numerical algorithms, especially those occurring when solving matrix problems, partial differential equations, and the subsequent mapping onto the computer. Implementation issues on parallel computers. Topics: parallel architecture, programming models (MPI, GPU Computing with CUDA ¿ quick review), matrix computations, FFT, fast multiple methods, domain decomposition, graph partitioning, discrete algorithms. Prerequisites: 302 or 200 (ME 300A), 213 or equivalent, or consent of instructor. Recommended: differential equations and knowledge of a highlevel programming language such as C or C++ (F90/95 also allowable).
Terms: given next year

Units: 3

Grading: Letter or Credit/No Credit
CME 345:
Model Reduction
Model reduction is an indispensable tool for computationalbased design and optimization, statistical analysis, embedded computing, and realtime optimal control. This course presents the basic mathematical theory for projectionbased model reduction. Topics include: notions of linear dynamical systems and projection; projectionbased model reduction; error analysis; proper orthogonal decomposition; Hankel operator and balancing of a linear dynamical system; balanced truncation method: modal truncation and other reduction methods for linear oscillators; model reduction via moment matching methods based on Krylov subspaces; introduction to model reduction of parametric systems and notions of nonlinear model reduction. Course material is complemented by a balanced set of theoretical, algorithmic and Matlab computer programming assignments. Prerequisites: CME 200 or equivalent, CME 263 or equivalent and basic numerical methods for ODEs.
Terms: given next year

Units: 3

Grading: Letter or Credit/No Credit
CME 356:
Engineering Functional Analysis and Finite Elements (ME 412)
Concepts in functional analysis to understand models and methods used in simulation and design. Topology, measure, and integration theory to introduce Sobolev spaces. Convergence analysis of finite elements for the generalized Poisson problem. Extensions to convectiondiffusionreaction equations and elasticity. Upwinding. Mixed methods and LBB conditions. Analysis of nonlinear and evolution problems. Prerequisites: 335A,B, CME 200, CME 204, or consent of instructor. Recommended: 333, MATH 171.
Terms: not given this year

Units: 3

Grading: Letter or Credit/No Credit
CME 358:
Finite Element Method for Fluid Mechanics
Mathematical theory of the finite element method for incompressible flows; related computational algorithms and implementation details. Poisson equation; finite element method for simple elliptic problems; notions of mathematical analysis of noncoercive partial differential equations; the infsup or BabushkaBrezzi condition and its applications to the Stokes and Darcy problems; presentation of stable mixed finite element methods and corresponding algebraic solvers; stabilization approaches in the context of advectiondiffusion equation; numerical solution of the incompressible NavierStokes equations by finite element method. Theoretical, computational, and MATLAB computer programming assignments. Prerequisites: foundation in multivariate calculus and ME 335A or equivalent.
Terms: not given this year

Units: 3

Grading: Letter or Credit/No Credit
CME 362:
An Introduction to Compressed Sensing (STATS 330)
Compressed sensing is a new data acquisition theory asserting that one can design nonadaptive sampling techniques that condense the information in a compressible signal into a small amount of data. This revelation may change the way engineers think about signal acquisition. Course covers fundamental theoretical ideas, numerical methods in largescale convex optimization, hardware implementations, connections with statistical estimation in high dimensions, and extensions such as recovery of data matrices from few entries (famous Netflix Prize).
Terms: not given this year

Units: 3

Grading: Letter or Credit/No Credit
CME 364A:
Convex Optimization I (CS 334A, EE 364A)
Convex sets, functions, and optimization problems. The basics of convex analysis and theory of convex programming: optimality conditions, duality theory, theorems of alternative, and applications. Leastsquares, linear and quadratic programs, semidefinite programming, and geometric programming. Numerical algorithms for smooth and equality constrained problems; interiorpoint methods for inequality constrained problems. Applications to signal processing, communications, control, analog and digital circuit design, computational geometry, statistics, machine learning, and mechanical engineering. Prerequisite: linear algebra such as EE263, basic probability.
Terms: Win

Units: 3

Grading: Letter or Credit/No Credit
Instructors: ;
Boyd, S. (PI);
Barratt, S. (TA);
CreusCosta, J. (TA);
Dean, J. (TA);
Diamond, S. (TA);
Garg, S. (TA);
Kim, J. (TA);
Mani, N. (TA);
Pathak, R. (TA);
Sholar, J. (TA);
Spear, L. (TA);
Tefagh, M. (TA)
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 371:
Computational Biology in Four Dimensions (BIOMEDIN 371, BIOPHYS 371, CS 371)
Cuttingedge research on computational techniques for investigating and designing the threedimensional structure and dynamics of biomolecules, cells, and everything in between. These techniques, which draw on approaches ranging from physicsbased simulation to machine learning, play an increasingly important role in drug discovery, medicine, bioengineering, and molecular biology. Course is devoted primarily to reading, presentation, discussion, and critique of papers describing important recent research developments. Prerequisite: CS 106A or equivalent, and an introductory course in biology or biochemistry. Recommended: some experience in mathematical modeling (does not need to be a formal course).
Terms: not given this year

Units: 3

Grading: Letter or Credit/No Credit
CME 372:
Applied Fourier Analysis and Elements of Modern Signal Processing (MATH 262)
Introduction to the mathematics of the Fourier transform and how it arises in a number of imaging problems. Mathematical topics include the Fourier transform, the Plancherel theorem, Fourier series, the Shannon sampling theorem, the discrete Fourier transform, and the spectral representation of stationary stochastic processes. Computational topics include fast Fourier transforms (FFT) and nonuniform FFTs. Applications include Fourier imaging (the theory of diffraction, computed tomography, and magnetic resonance imaging) and the theory of compressive sensing.
Terms: not given this year

Units: 3

Grading: Letter or Credit/No Credit
CME 375:
Advanced Topics in Convex Optimization (MATH 301)
Modern developments in convex optimization: semidefinite programming; novel and efficient firstorder algorithms for smooth and nonsmooth convex optimization. Emphasis on numerical methods suitable for large scale problems arising in science and engineering. Prerequisites: convex optimization (EE 364), linear algebra (Math 104), numerical linear algebra (CME 302); background in probability, statistics, real analysis and numerical optimization.
Terms: not given this year

Units: 3

Repeatable for credit

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: ;
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);
Darve, E. (PI);
Dror, R. (PI);
Farhat, C. (PI);
Gerritsen, M. (PI);
Giesecke, K. (PI);
Guibas, L. (PI);
Hastie, T. (PI);
Holmes, S. (PI);
Iaccarino, G. (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);
Papanicolaou, G. (PI);
Re, C. (PI);
Ryzhik, L. (PI);
Saban, D. (PI);
Saberi, A. (PI);
Sidford, A. (PI);
Suckale, J. (PI);
Wong, W. (PI);
Xing, L. (PI);
Ye, Y. (PI);
Ying, L. (PI);
Kanagawa, K. (GP)
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: not given this year

Units: 13

Repeatable for credit

Grading: Satisfactory/No Credit
CME 500:
Departmental Seminar
The seminars will be given by researcher and practitioners in computational mathematics on diverse topics ranging from optimization to linear algebra, to numerical methods, to statistical learning.The lectures will blend technical discussions on recent research innovations with discussions of trends and opportunities in industry.
Terms: Aut, Win, Spr

Units: 1

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
CME 520:
Topics in Simulation of Human Physiology & Anatomical Systems (SURG 253)
Biweekly interdisciplinary lecture series on the development of computational tools for modeling and simulation of human physiological and anatomical systems. Lectures by instructors and guest speakers on topics such as surgical simulation, anatomical & surgical Modeling, neurological Systems, and biomedical models of human movement. Group discussions, team based assignments, and project work.nPrerequisite: Medical students, residents or fellows from school of medicine, and computationally oriented students with a strong interest to explore computational and mathematical methods related to the health sciences.
Terms: not given this year

Units: 1

Repeatable for credit

Grading: Medical 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);
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);
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);
Saberi, A. (PI);
Saunders, M. (PI);
Tibshirani, R. (PI);
Wong, W. (PI);
Ye, Y. (PI);
Ying, L. (PI);
Kanagawa, K. (GP)