Department: Institute for Computational and Mathematical Engr

Code Name Description
CME100 Vector Calculus for Engineers Computation and visualization using MATLAB. Differential vector calculus: vector-valued functions, analytic geometry in space, functions of several variables, partial derivatives, gradient, linearization, unconstrained maxima and minima, Lagrange mul...
CME100ACE 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: students sho...
CME102 Ordinary Differential Equations for Engineers Analytical and numerical methods for solving ordinary differential equations arising in engineering applications are presented. For analytical methods students learn to solve linear and non-linear first order ODEs; linear second order ODEs; and Lapl...
CME102ACE 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 should submit application for enrollment at:...
CME104 Linear Algebra and Partial Differential Equations for Engineers Linear algebra: systems of algebraic equations, Gaussian elimination, undetermined and overdetermined systems, coupled systems of ordinary differential equations, LU factorization, eigensystem analysis, normal modes. Linear independence, vector space...
CME104A 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 (CME...
CME106 Introduction to Probability and Statistics for Engineers Probability: random variables, independence, and conditional probability; discrete and continuous distributions, moments, distributions of several random variables. Numerical simulation using Monte Carlo techniques. Topics in mathematical statistics:...
CME106ACE Introduction to Probability and Statistics for Engineers, ACE Students attend CME106/ENGR155C lectures with additional recitation sessions; two to four hours per week, emphasizing engineering mathematical applications and collaboration methods. Prerequisite: students should submit application for enrollment at:...
CME107 Introduction to Machine Learning Introduction to machine learning. Formulation of supervised and unsupervised learning problems. Regression and classification. Data standardization and feature engineering. Loss function selection and its effect on learning. Regularization and its ro...
CME108 Introduction to Scientific Computing Introduction to Scientific Computing Numerical computation for mathematical, computational, physical sciences and engineering: error analysis, floating-point arithmetic, nonlinear equations, numerical solution of systems of algebraic equations, bande...
CME111 The Art of Computer Modeling: Science and Data The course presents problems that are amenable to computation and associated solution techniques. Students engage with the algorithms through high-quality, freely available software toward solving problems assigned in weekly projects. The techniques...
CME187 Mathematical Population Biology Mathematical models in population biology, in biological areas including demography, ecology, epidemiology, evolution, and genetics. Mathematical approaches include techniques in areas such as combinatorics, differential equations, dynamical systems,...
CME192 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, sci...
CME193 Introduction to Scientific Python 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. Lect...
CME197 Human-Centered Design Methods in Data Science In today's society, the most pressing data science problems we face exist in a complex sociotechnical ecosystem and cannot be solved using the numbers alone. In this five-week short course, students will learn how to apply human-centered design metho...
CME200 Linear Algebra with Application to Engineering Computations Computer based solution of systems of algebraic equations obtained from engineering problems and eigen-system analysis, Gaussian elimination, effect of round-off error, operation counts, banded matrices arising from discretization of differential equ...
CME204 Partial Differential Equations in Engineering Geometric interpretation of partial differential equation (PDE) characteristics; solution of first order PDEs and classification of second-order PDEs; self-similarity; separation of variables as applied to parabolic, hyperbolic, and elliptic PDEs; sp...
CME206 Introduction to Numerical Methods for Engineering 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, Rung...
CME209 Mathematical Modeling of Biological Systems The course covers mathematical and computational techniques needed to solve advanced problems encountered in applied bioengineering. Fundamental concepts are presented in the context of their application to biological and physiological problems inclu...
CME211 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...
CME213 Introduction to parallel computing using MPI, openMP, and CUDA This class will give hands-on experience with programming multicore processors, graphics processing units (GPU), and parallel computers. The focus will be on the message passing interface (MPI, parallel clusters) and the compute unified device archit...
CME214 Software Design in Modern Fortran for Scientists and Engineers This course introduces software design and development in modern Fortran. Course covers the functional, object-oriented-, and parallel programming features introduced in the Fortran 95, 2003, and 2008 standards, respectively, in the context of numeri...
CME216 Machine Learning for Computational Engineering. Linear and kernel support vector machines, deep learning, deep neural networks, generative adversarial networks, physics-based machine learning, forward and reverse mode automatic differentiation, optimization algorithms for machine learning, TensorF...
CME217 Analytics Accelerator This is a multidisciplinary graduate level course designed to give students hands-on experience working in teams through real-world project-based research and experiential classroom activities. Students work in dynamic teams with the support of cours...
CME217A Analytics Accelerator Seminar CME 217A introduces students to potential computational mathematics research projects at Stanford and with outside organizations. This seminar series is an introduction to winter quarter CME 217B, a multidisciplinary graduate level course designed to...
CME241 Foundations of Reinforcement Learning with Applications in Finance This course is taught in 3 modules - (1) Markov Processes and Planning Algorithms, including Approximate Dynamic Programming (3 weeks), (2) Financial Trading problems cast as Stochastic Control, from the fields of Portfolio Management, Derivatives Pr...
CME243 Risk Analytics and Management in Finance and Insurance 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 funct...
CME250 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 over-fitting/u...
CME250Q Introduction to Quantum Computing and Quantum Algorithms This course will cover the basic formalism of quantum states and quantum measurements, and introduce the circuit model of quantum computation. Basic results such as the Solovay-Kitaev theorem, no-cloning theorem, quantum entanglement and Bell's inequ...
CME251 Geometric and Topological Data Analysis Mathematical and 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. Linear and non-linear dimensionality reduction techniques. Gr...
CME257 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...
CME262 Imaging with Incomplete Information 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...
CME263 Introduction to Linear Dynamical Systems Applied linear algebra and linear dynamical systems with applications to circuits, signal processing, communications, and control systems. Topics: least-squares approximations of over-determined equations, and least-norm solutions of underdetermined...
CME270 Advances in Computing with Uncertainties If a politician, executive, or medical team were to use the results of your model for some critical decision, how well would you sleep at night? As computation plays an increasingly important role in our society, understanding the limitations of its...
CME279 Computational Biology: Structure and Organization of Biomolecules and Cells Computational techniques for investigating and designing the three-dimensional structure and dynamics of biomolecules and cells. These computational methods play an increasingly important role in drug discovery, medicine, bioengineering, and molecul...
CME285 Computational Modeling in the Cardiovascular System 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 fl...
CME291 Master's Research Students require faculty sponsor. (Staff)
CME292 Advanced MATLAB for Scientific Computing Short course running first four weeks of the quarter (8 lectures) with interactive lectures and a mini project. Students will be introduced to advanced MATLAB features, syntaxes, and toolboxes not traditionally found in introductory courses. Material...
CME294 Computational Symbolic Mathematics Computational symbolic mathematics is a one-unit hands-on seminar course on the use of sophisticated computer algebra systems for addressing mathematical problems that are primarily or entirely symbolic (rather than numerical). Examples will come fro...
CME298 Basic Probability and Stochastic Processes with Engineering Applications 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 motio...
CME300 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.
CME300Q ICME QUALIFYING EXAMS WORKSHOP Prepares ICME students for the qualifying exams by reviewing relevant course topics and problem solving strategies. Senior ICME students share experiences and lead discussions revolving around ICME core courses.
CME302 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 meth...
CME303 Partial Differential Equations of Applied Mathematics First-order 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...
CME305 Discrete Mathematics and Algorithms Introduction to theoretical foundations of discrete mathematics and algorithms. Emphasis on providing mathematical tools for combinatorial optimization, i.e. how to efficiently optimize over large finite sets and reason about the complexity of such p...
CME306 Numerical Solution of Partial Differential Equations 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...
CME307 Optimization Applications, theories, and algorithms for finite-dimensional linear and nonlinear optimization problems with continuous variables. Elements of convex analysis, first- and second-order optimality conditions, sensitivity and duality. Algorithms for un...
CME308 Stochastic Methods in Engineering 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 paramete...
CME309 Randomized Algorithms and Probabilistic Analysis 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,...
CME322 Spectral Methods in Computational Physics 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...
CME323 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...
CME330 Applied Mathematics in the Chemical and Biological Sciences 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...
CME334 Optimization Algorithms Fundamental theory for solving continuous optimization problems with provable efficiency guarantees. Coverage of both canonical optimization methods and techniques, e.g. gradient descent, mirror descent, stochastic methods, acceleration, higher-order...
CME345 Model Reduction Model reduction is an indispensable tool for computational-based design and optimization, statistical analysis, embedded computing, and real-time optimal control. It is also essential for scenarios where real-time simulation responses are desired. Th...
CME350Q The ABCs of TQC: An introduction to the mathematics of Topological Quantum Computing Computation is a mechanical process. Computers process information by manipulating physical systems encoding bits, and quantum computers manipulate encodings in quantum mechanical systems. This process is extremely delicate and error-prone, so we mus...
CME364A Convex Optimization I 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. Least-squares, linear and quadratic programs, semidef...
CME364B Convex Optimization II 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 st...
CME369 Computational Methods in Fluid Mechanics The last two decades have seen the widespread use of Computational Fluid Dynamics (CFD) for analysis and design of thermal-fluids systems in a wide variety of engineering fields. Numerical methods used in CFD have reached a high degree of sophisticat...
CME371 Computational Biology in Four Dimensions Cutting-edge research on computational techniques for investigating and designing the three-dimensional structure and dynamics of biomolecules, cells, and everything in between. These techniques, which draw on approaches ranging from physics-based s...
CME372 Applied Fourier Analysis and Elements of Modern Signal Processing 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...
CME390 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 em...
CME391 Ph.D. Research Rotation First and second year ICME PhD students enroll under faculty sponsor for research rotation units.
CME399 Special Research Topics in Computational and Mathematical Engineering Graduate-level research work not related to report, thesis, or dissertation. May be repeated for credit.
CME400 Ph.D. Research No Description Set
CME444 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.
CME500 Departmental Seminar This seminar series in winter quarter will explore how ICME coursework and research is applied in various organizations around the world. It will feature speakers from ICME affiliate companies and ICME alumni giving technical talks on their use of co...
CME510 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...
CME801 TGR Project No Description Set
CME802 TGR Dissertation No Description Set
CME99 WiDS Datathon Independent Study This independent study offers students the opportunity to participate in the WiDS Datathon for 1-unit of credit. The WiDS Datathon is an annual and global event that encourages data scientists of all levels to discover and hone their data science ski...