Print Settings coursedescriptions scheduleinformation

## 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 single-variable calculus equivalent to the content of Math 19-21 (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:DB-Math, WAY-FR | Grading: Letter or Credit/No Credit

## 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 CME100-01 or 02. Application at: https://engineering.stanford.edu/students/programs/engineering-diversity-programs/additional-calculus-engineers
Terms: Aut, Spr | Units: 6 | UG Reqs: GER:DB-Math, WAY-FR | Grading: Letter or Credit/No Credit

## 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 single-variable calculus equivalent to the content of Math 19-21 (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:DB-Math, WAY-FR | 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/engineering-diversity-programs/additional-calculus-engineers
Terms: Aut, Win, Spr | Units: 6 | UG Reqs: GER:DB-Math, WAY-FR | Grading: Letter or Credit/No Credit
Instructors: ; Cameron, M. (PI); Le, H. (PI)

## 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:DB-Math, WAY-FR | 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/engineering-diversity-programs/additional-calculus-engineers
Terms: Spr | Units: 6 | UG Reqs: GER:DB-Math, WAY-FR | Grading: Letter or Credit/No Credit
Instructors: ; Khayms, V. (PI)

## 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, Scikit-learn, 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 application-driven. No prior programming experience is assumed.
Terms: Aut, 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, Runge-Kutta and predictor-corrector 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 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. Pre-requisites 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 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
Instructors: ; Evnine, J. (PI)

## 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, one-dimensional 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 clinically-oriented projects in patient specific blood flow simulations.
Terms: Spr | Units: 3 | Grading: Letter or Credit/No Credit

## CME 291:Master's Research

Terms: Aut, Win, Spr, Sum | Units: 1-6 | Repeatable for credit | Grading: Letter or Credit/No Credit

## 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 in-class 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), object-oriented 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
Instructors: ; Leibovich, M. (PI)

## 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
Instructors: ; Cook, N. (PI); Etter, P. (TA)

## CME 300:First Year Seminar Series

Required for first-year ICME Ph.D. students; recommended for first-year 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
Instructors: ; Iaccarino, G. (PI)

## 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, Navier-Stokes equations for incompressible flow. Prerequisites: MATH 220 or CME 302.
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 338:Large-Scale Numerical Optimization

The main algorithms and software for constrained optimization emphasizing the sparse-matrix methods needed for their implementation. Iterative methods for linear equations and least squares. The simplex method. Basis factorization and updates. Interior methods. The reduced-gradient method, augmented Lagrangian methods, and SQP methods. Prerequisites: Basic numerical linear algebra, including LU, QR, and SVD factorizations, and an interest in MATLAB, sparse-matrix methods, and gradient-based 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)
Instructors: ; Saunders, M. (PI)

## CME 364B:Convex Optimization II (EE 364B)

Continuation of 364A. Subgradient, cutting-plane, 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 follow-on 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

Graduate-level research work not related to report, thesis, or dissertation. May be repeated for credit.
Terms: Aut, Win, Spr, Sum | Units: 1-15 | Repeatable for credit | Grading: Letter or Credit/No Credit

## CME 400:Ph.D. Research

Terms: Aut, Win, Spr, Sum | Units: 1-15 | Repeatable for credit | Grading: Satisfactory/No Credit

## 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: 1-3 | 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
Instructors: ; Iaccarino, G. (PI)

## 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
Instructors: ; Saunders, M. (PI)

## CME 801:TGR Project

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