CME 10:
How to learn Mathematics  New ideas from the science of learning (EDUC 105)
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.
Terms: Aut

Units: 1

Grading: Satisfactory/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: 10 units of AP credit (Calc BC with 5, or Calc AB with 5 or placing out of the single variable math placement test: https://exploredegreesnextyear.stanford.edu/undergraduatedegreesandprograms/#aptextt), or Math 1921.
Terms: Aut, Win, Spr

Units: 5

UG Reqs: GER:DBMath, WAYFR

Grading: Letter or Credit/No Credit
Instructors: ;
Khayms, V. (PI);
Le, H. (PI);
Osgood, B. (PI);
Ahn, S. (TA);
El Assad, A. (TA);
FournierBidoz, E. (TA);
Infanger, A. (TA);
Krason, M. (TA);
Sanchez, S. (TA);
Skochdopole, N. (TA);
Slottje, A. (TA);
Suo, X. (TA);
Yin, H. (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, Win, Spr

Units: 6

UG Reqs: GER:DBMath, WAYFR

Grading: Letter or Credit/No Credit
Instructors: ;
Khayms, V. (PI);
Le, H. (PI);
Ahn, S. (TA);
El Assad, A. (TA);
FournierBidoz, E. (TA);
Infanger, A. (TA);
Krason, M. (TA);
Sanchez, S. (TA);
Skochdopole, N. (TA);
Slottje, A. (TA);
Suo, X. (TA);
Yin, H. (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. Prerequisite: 10 units of AP credit (Calc BC with 5, or Calc AB with 5 or placing out of the single variable math placement test: https://exploredegreesnextyear.stanford.edu/undergraduatedegreesandprograms/#aptextt),), or Math 1921. 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, Spr

Units: 35

UG Reqs: GER:DBMath, WAYAQR, WAYFR

Grading: Letter or Credit/No Credit
Instructors: ;
Boyd, S. (PI);
Osgood, B. (PI);
Tse, D. (PI);
Angeris, G. (TA);
Chang, S. (TA);
Daniel, J. (TA);
Degleris, A. (TA);
Go, C. (TA);
Jani, T. (TA);
Jimenez, S. (TA);
Kamath, G. (TA);
Li, L. (TA);
Lin, J. (TA);
Nishimura, M. (TA);
Patel, N. (TA);
Pathak, R. (TA);
Sholar, J. (TA);
Spear, L. (TA)
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: Aut, Win, Spr

Units: 1

Grading: Satisfactory/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 beginning in the second week of the quarter 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 R programming. The goal of the short course is to familiarize students with R's tools for scientific computing. Lectures will be interactive with a focus on learning by example, and assignments will be applicationdriven. No prior programming experience is needed. Topics covered include basic data structures, File I/O, graphs, control structures, etc, and some useful packages in R.
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 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: Aut

Units: 3

Grading: Letter or Credit/No Credit
CME 211:
Software Development for Scientists and Engineers (EARTH 211)
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 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 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, Win, Spr, Sum

Units: 16

Grading: Letter (ABCD/NP)
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 EE103 or MATH104; ordinary differential equations and Laplace transforms as in CME 102 or EE102B.
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: Aut

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: ;
Biondi, B. (PI);
Bosagh Zadeh, R. (PI);
Boyd, S. (PI);
Carlsson, G. (PI);
Darve, E. (PI);
Farhat, C. (PI);
Gerritsen, M. (PI);
Giesecke, K. (PI);
Grundfest, J. (PI);
Guibas, L. (PI);
Kahn, S. (PI);
Leskovec, J. (PI);
Pelger, M. (PI);
Re, C. (PI);
Schwartzman, A. (PI);
Suckale, J. (PI)
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 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 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 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 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: ;
Beroza, G. (PI);
Biondi, B. (PI);
Bosagh Zadeh, R. (PI);
Boyd, S. (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);
Lai, T. (PI);
Leskovec, J. (PI);
Marsden, A. (PI);
Moin, P. (PI);
Montanari, A. (PI);
Papanicolaou, G. (PI);
Rajagopal, R. (PI);
Re, C. (PI);
Reed, E. (PI);
Ryzhik, L. (PI);
Saberi, A. (PI);
Saunders, M. (PI);
Sidford, A. (PI);
Suckale, J. (PI);
Tibshirani, R. (PI);
Wong, W. (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: Aut, Win, Spr

Units: 13

Repeatable for credit

Grading: Satisfactory/No Credit
CME 500:
Departmental Seminar
Weekly research lectures by doctoral students, experts from academia, national laboratories, and industry. May be repeated for credit.
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
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: ;
Beroza, G. (PI);
Biondi, B. (PI);
Boyd, S. (PI);
Candes, E. (PI);
Carlsson, G. (PI);
Darve, E. (PI);
Farhat, C. (PI);
Gerritsen, M. (PI);
Giesecke, K. (PI);
Guibas, L. (PI);
Iaccarino, G. (PI);
Johari, R. (PI);
Lai, T. (PI);
Leskovec, J. (PI);
Marsden, A. (PI);
Moin, P. (PI);
Papanicolaou, G. (PI);
Reed, E. (PI);
Saberi, A. (PI);
Saunders, M. (PI);
Tibshirani, R. (PI);
Wong, W. (PI);
Ying, L. (PI)