Print Settings
 

CME 99: WiDS Datathon Independent Study (DATASCI 197)

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 skills while solving an interesting and critical social impact challenge. The 2023 Challenge, "Data Science for Subseasonal Forecast", centers on climate change and is in partnership with Climate Change AI (CCAI). Accurate long-term forecasts of temperature and precipitation is crucial for mitigating the effects of climate change (i.e. preparing for droughts and other wet weather extremes). Such forecasts can potentially impact many industries (e.g. agriculture, energy, disaster planning) in countries across the globe. Currently, purely physics-based models dominate short-term weather forecasting. But these models have a limited forecast horizon. The availability of meteorological data offers an opportunity for data scientists to improve subseasonal forecasts by blending physics-based forecasts with machine learning. To learn more, visit: https://www.widsconference.org/datathon.htmlStudents may participate in this independent study in teams of 1-4. To qualify for official participation in the datathon, at least half of each team must identify as women. To receive credit, the team will participate in the Datathon and write a report detailing their submission and reflecting on their experience. Interested students should register for the course, and sign up as a team using this form: https://forms.gle/LyX3yNU7dLnTCux1A. To find other students interested in forming a team, go here: https://docs.google.com/presentation/d/1UvutEFtYFeCkLkwnpU01R5V5WmJeMi4kVkaZYHxSiAY/edit?usp=sharing
Last offered: Winter 2023 | Units: 1 | Repeatable 4 times (up to 4 units total)

CME 100: Vector Calculus for Engineers (ENGR 154)

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 multipliers and applications to trajectory simulation, least squares, and numerical optimization. Introduction to linear algebra: matrix operations, systems of algebraic equations with applications to coordinate transformations and equilibrium problems. Integral vector calculus: multiple integrals in Cartesian, cylindrical, and spherical coordinates, line integrals, scalar potential, surface integrals, Green's, divergence, and Stokes' theorems. Numerous examples and applications drawn from classical mechanics, fluid dynamics and electromagnetism. 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 Math 21). Placement diagnostic (recommendation non-binding) at: https://exploredegrees.stanford.edu/undergraduatedegreesandprograms/#aptext.
Terms: Aut, Spr | Units: 5 | UG Reqs: GER:DB-Math, WAY-FR

CME 100ACE: 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 concurrently enrolled in CME100-01 or 02. Application at: https://engineering.stanford.edu/students/programs/engineering-diversity-programs/additional-calculus-engineers
Terms: Aut, Spr | Units: 1

CME 102: Ordinary Differential Equations for Engineers (ENGR 155A)

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 Laplace transforms. Numerical methods using MATLAB programming tool kit are also introduced to solve various types of ODEs including: first and second order ODEs, higher order ODEs, systems of ODEs, initial and boundary value problems, finite differences, and multi-step methods. This also includes accuracy and linear stability analyses of various numerical algorithms which are essential tools for the modern engineer. This class is foundational for professional careers in engineering and as a preparation for more advanced classes at the undergraduate and graduate levels. 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 Math 21). Placement diagnostic (recommendation non-binding) at: https://exploredegrees.stanford.edu/undergraduatedegreesandprograms/#aptext.
Terms: Aut, Win | Units: 5 | UG Reqs: GER:DB-Math, WAY-FR

CME 102ACE: 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. Enrollment by department permission only. Prerequisite: must be concurrently enrolled in CME102. Application at: https://engineering.stanford.edu/students/programs/engineering-diversity-programs/additional-calculus-engineers
Terms: Aut, Win | Units: 1
Instructors: ; Jose, A. (PI)

CME 104: Linear Algebra and Partial Differential Equations for Engineers (ENGR 155B)

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 spaces, subspaces and basis. Numerical analysis applied to structural equilibrium problems, electrical networks, and dynamic systems. Fourier series with applications, partial differential equations arising in science and engineering, analytical solutions of partial differential equations. Applications in heat and mass transport, mechanical vibration and acoustic waves, transmission lines, and fluid mechanics. Numerical methods for solution of partial differential equations: iterative techniques, stability and convergence, time advancement, implicit methods, von Neumann stability analysis. Examples and applications drawn from a variety of engineering fields. Prerequisite: CME102/ENGR155A.
Terms: Spr | Units: 5 | UG Reqs: GER:DB-Math, WAY-FR

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. Numerical simulation using Monte Carlo techniques. Topics in mathematical statistics: random sampling, point estimation, confidence intervals, hypothesis testing, non-parametric tests, regression and correlation analyses. Numerous applications in engineering, manufacturing, reliability and quality assurance, medicine, biology, and other fields. Prerequisite: CME100/ENGR154 or Math 51 or 52.
Terms: Win, Sum | Units: 4 | UG Reqs: GER:DB-Math, WAY-AQR, WAY-FR

CME 106ACE: Introduction to Probability and Statistics for Engineers

Students attend CME106/ENGR155C 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 concurrently enrolled in CME106. Application at: https://engineering.stanford.edu/students/programs/engineering-diversity-programs/additional-calculus-engineers
Terms: Win | Units: 1
Instructors: ; Chian, S. (PI)

CME 107: Introduction to Machine Learning (EE 104)

Introduction to machine learning. Formulation of supervised and unsupervised learning problems. Regression and classification. Data standardization and feature engineering. Loss function selection and its effect on learning. Regularization and its role in controlling complexity. Validation and overfitting. Robustness to outliers. Simple numerical implementation. Experiments on data from a wide variety of engineering and other disciplines. Undergraduate students should enroll for 5 units, and graduate students should enroll for 3 units. Prerequisites: ENGR 108; EE 178 or CS 109; CS106A or equivalent.
Terms: Spr | Units: 3-5

CME 108: 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, 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: CME 100, 102 or MATH 51, 52, 53; prior programming experience (MATLAB or other language at level of CS 106A or higher).
Terms: Aut | Units: 3 | UG Reqs: GER:DB-EngrAppSci, WAY-AQR, WAY-FR

CME 187: Mathematical Population Biology (BIO 187)

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, linear algebra, probability, and stochastic processes. Math 50 or 60 series is required, and at least two of (Bio 81, Bio 82, Bio 85) are strongly recommended.
Last offered: Winter 2022 | Units: 3

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 application-based assignments. The 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
Instructors: ; Wei, Z. (PI)

CME 193: 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. 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

CME 197: 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 methods to solve data science problems and how to pair traditional data with a diversity of other types of data to redefine problems and gain innovative insight. The course will focus on empathy-based frameworks to analyze data, problem definition and redefinition, and ideation. Additional skills in critique and storytelling will also be covered. Classes will be highly interactive and team-based. This course will offer skills in support of the teams working toward the Big Earth Hackathon Wildland Fire challenge (CEE 265H, EARTH 165H, EARTH 265H).
Last offered: Spring 2020 | Units: 1

CME 200: Linear Algebra with Application to Engineering Computations (ME 300A)

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 equations, ill-conditioned matrices, matrix theory, least square solution of unsolvable systems, solution of non-linear algebraic equations, eigenvalues and eigenvectors, similar matrices, unitary and Hermitian matrices, positive definiteness, Cayley-Hamilton theory and function of a matrix and iterative methods. Prerequisite: familiarity with computer programming, and MATH51.
Terms: Aut | Units: 3

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 second-order PDEs; self-similarity; 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

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

CME 209: Mathematical Modeling of Biological Systems (BIOE 209)

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 including cancer, cardiovascular disease, infectious disease, and systems biology. Topics include Taylor's Series expansions, parameter estimation, regression, nonlinear equations, linear systems, optimization, numerical differentiation and integration, stochastic methods, ordinary differential equations and Fourier series. Python, Matlab and other software will be used for weekly assignments and projects.Prerequisites: Math 51, 52, 53; prior programming experience (Matlab or other language at level of CS 106a or higher)
Terms: Aut | Units: 3

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, object-oriented 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.
Last offered: Autumn 2022 | Units: 3

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. The focus will be on the message passing interface (MPI, parallel clusters) and the compute unified device architecture (CUDA, GPU). Topics will include multithreaded programs, GPU computing, computer cluster programming, C++ threads, OpenMP, CUDA, and MPI. Pre-requisites include C++, templates, debugging, UNIX, makefile, numerical algorithms (differential equations, linear algebra).
Terms: Spr | Units: 3
Instructors: ; Darve, E. (PI)

CME 214: 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 numerical approximations to ordinary and partial differential equations; introduces object-oriented design and design schematics based on the Unified Modeling Language (UML) structure, behavior, and interaction diagrams; cover the basic use of several open-source 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
Last offered: Autumn 2017 | Units: 3

CME 215: Machine Learning and the Physical Sciences (GEOPHYS 148, GEOPHYS 248)

This course provides a survey of the rapidly growing field of machine learning in the physical sciences. It covers various areas such as inverse problems, emulating physical processes, model discovery given data, and solution discovery given equations. It both introduces the background knowledge required to implement physics-informed deep learning and provides practical in-class coding exercises. Students have the opportunity to apply this emerging methodology to their own research interests across all fields of the physical sciences, including geophysics, climate, fluids, or other systems where the same technique applies. Students develop individual projects throughout the semester. Recommended Prerequisite: Calculus (e.g. Math 21), Differential Equations (e.g. MATH 53 or PHYSICS 111) or equivalents.
Terms: Spr | Units: 3
Instructors: ; Lai, C. (PI)

CME 216: Machine Learning for Computational Engineering. (ME 343)

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, TensorFlow, PyTorch.
Terms: Win | Units: 3

CME 217: Analytics Accelerator (BIODS 217)

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 course faculty and mentors, researching preselected topics. Students apply a computational and data analytics lens and use design thinking methodology. The course exposes students to ethics, unintended consequences and team building exercises supported by relevant lectures on data science and subject matter topics. Pre-requisites: none. Enrollment by application only. Graduate students only. The course application closes November 30, 2021. Application and more information: https://forms.gle/VW6KKWN4AUV6cPzZA
Last offered: Winter 2022 | Units: 3 | Repeatable 2 times (up to 6 units total)

CME 217A: Analytics Accelerator Seminar (BIODS 217A)

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 give students hands-on experience working in teams through real-world project-based research. Each week throughout the quarter, a project mentor will present their research. In November, students preference projects and apply for the winter quarter CME 217B. Pre-requisites: none. Graduate students only.
Last offered: Autumn 2021 | Units: 1 | Repeatable 2 times (up to 2 units total)

CME 218: Applied Data Science (MS&E 218)

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 course faculty and mentors, researching preselected topics. Students apply a computational and data analytics lens and use design thinking methodology. The course exposes students to important techniques in applied data science as well as to the soft skills necessary for success in applied data science, such as ethics, unintended consequences and team building. Enrollment by application only. Graduate students only. The course application closes Sept 25, 2023. Application and more information: https://forms.gle/gzGXkJmGMVYuJabK7
Terms: Aut | Units: 3 | Repeatable 2 times (up to 6 units total)

CME 229: Applications of machine learning to electronic markets

In this 10-week course, students will learn to apply the techniques of modern machine learning (such as neural networks, reinforcement learning, generative adversarial networks, etc.) to electronic markets. Topics covered will include the fundamentals of financial electronic markets, market simulation, reinforcement learning for market-making and algorithmic execution, as well as predictive and generative modeling for financial markets. Assignments for this course will consist of a mixture of theoretical and coding exercises, and will expose students to real-life financial markets datasets. Throughout the course, students will be introduced to the latest academic and industry research papers, and will complete the course by working on a project of their choice. Course prerequisites: familiarity with optimization and statistics, and ability to code in Python. Open to Graduate Students and Senior-status Undergraduates. Others may request instructor permission to enroll.
Terms: Win | Units: 3
Instructors: ; Vyetrenko, S. (PI)

CME 241: Foundations of Reinforcement Learning with Applications in Finance (MS&E 346)

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 Pricing/Hedging, Order-Book Trading (2 weeks), and (3) Reinforcement Learning Algorithms, including Monte-Carlo, Temporal-Difference, Batch RL, Policy Gradient (4 weeks). The final week will cover practical aspects of RL in the industry, including an industry guest speaker. The course emphasizes the theory of RL, modeling the practical nuances of these finance problems, and strengthening the understanding through plenty of programming exercises. No pre-requisite coursework expected, but a foundation in undergraduate Probability, basic familiarity with Finance, and Python programming skills are required.
Terms: Win | Units: 3
Instructors: ; Rao, A. (PI); Zanotti, G. (TA)

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: Spr | Units: 3

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 over-fitting/under-fitting, regularization, interpretability, supervised/unsupervised methods, and handling of missing data. The principles behind various algorithms--the why and how of using them--will be discussed, while some mathematical detail underlying the algorithms--including proofs--will not be discussed. Unsupervised machine learning algorithms presented will include k-means 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 cross-validation concepts will also be covered. The R programming language will be used for examples, though students need not have prior exposure to R. Prerequisite: undergraduate-level linear algebra and statistics; basic programming experience (R/Matlab/Python).
Terms: Spr | Units: 1
Instructors: ; Sun, C. (PI)

CME 250Q: 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 inequality will be discussed followed by the quantum Fourier transform (QFT) and quantum phase estimation (QPE), and cover some of its important applications such as the celebrated Shor's algorithm for integer factorization (other applications will be mentioned but not discussed in detail), Grover's algorithm for quantum search is covered next, and lower bounds for query complexity in this context; some basic concepts of quantum error correction and quantum entropy, distance between quantum states, subadditivity and strong subadditivity of von Neumann quantum entropy will also be covered. Time permitting, we will discuss some advanced algorithms such as the HHL algorithm for matrix inversion, VQE (variational quantum eigensolver) and the QAOA algorithm for optimization. Requires programming in Python, where the goal will be to familiarize the students to available software for quantum algorithm development, existing libraries, and also run some simple programs on a real quantum computer. Prerequisites: Linear algebra at the level of CME 200 / MATH 104, basic knowledge of group theory, and programming in Python. Additionally, some knowledge of real analysis will be helpful.
Last offered: Autumn 2019 | Units: 1

CME 251: Geometric and Topological Data Analysis (CS 233)

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. Graph representations of data and spectral methods. The rudiments of computational topology and persistent homology on sampled spaces, with applications. Global and local geometry descriptors allowing for various kinds of invariances. Alignment, matching, and map/correspondence computation between geometric data sets. Annotation tools for geometric data. Geometric deep learning on graphs and sets. Function spaces and functional maps. Networks of data sets and joint learning for segmentation and labeling. Prerequisites: discrete algorithms at the level of CS161; linear algebra at the level of Math51 or CME103.
Terms: Win, Spr | Units: 3
Instructors: ; Guibas, L. (PI); Weng, Y. (TA)

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.
Last offered: Autumn 2019 | Units: 1

CME 262: Imaging with Incomplete Information (CEE 260G, GEOPHYS 260G)

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: Spr | Units: 3-4
Instructors: ; Kitanidis, P. (PI)

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: least-squares approximations of over-determined equations, and least-norm solutions of underdetermined equations. Symmetric matrices, matrix norm, and singular-value decomposition. Eigenvalues, left and right eigenvectors, with dynamical interpretation. Matrix exponential, stability, and asymptotic behavior. Multi-input/multi-output systems, impulse and step matrices; convolution and transfer-matrix descriptions. Control, reachability, and state transfer; observability and least-squares state estimation. Prerequisites: Linear algebra and matrices as in ENGR 108 or MATH 104; ordinary differential equations and Laplace transforms as in EE 102B or CME 102.
Terms: Aut | Units: 3

CME 270: 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 predictive capabilities becomes of the utmost importance. Uncertainty quantification (UQ) considers the intersection of probability, statistics, numerics, and disciplinary sciences to provide a computational framework for measuring and reducing uncertainties. This graduate course focuses in depth on topics that are less typically covered in a traditional introduction to UQ, with particular attention given to polynomial chaos methods, Galerkin schemes, linear transport with uncertainty, and active subspaces. Research applications will be emphasized through assignments, case studies, and student-defined projects. Prerequisite: probability and statistics at the level of CME 106 or equivalent, linear algebra at the level of CME 200 or equivalent, or consent of the instructor.
Last offered: Autumn 2021 | Units: 1-3

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 three-dimensional 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, cellular-level 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

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. Pre-requisites: CME102, ME133 and CME192.
Last offered: Winter 2023 | Units: 3

CME 292: 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 will be reinforced with in-class examples and demos involving topics from scientific computing. Students will be practicing the knowledge learned through a mini course project, which will be based on either the suggested topics or a topic of their own choice. MATLAB topics to be covered will be drawn from: advanced graphics and animation, MATLAB tools, data management, code optimization, object-oriented programming, and a variety of toolboxes, including optimization, statistical and machine learning, deep learning, parallel computing, and symbolic math. CME 192 (Introduction to MATLAB) or equivalent programming background is recommended prior to taking this course.
Last offered: Winter 2023 | Units: 1

CME 294: Computational Symbolic Mathematics (SYMSYS 294)

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 from the undergraduate curriculum including calculus, differential equations, linear algebra, probability and statistics, and symbolic logic. Students will program in Mathematica but the principles presented apply as well to Mathics, SymPy, Matlab's Symbolic math toolbox, and other systems. (No prior experience with symbol-manipulation programs is assumed.) Students will learn how to exploit special functionality of symbol-manipulating programs, such as Gr¿bner bases. Class lectures will be highly interactive, where both the instructor and students program. There will be weekly homework assignments and a final programming exam.
Terms: Spr | Units: 1
Instructors: ; Stork, D. (PI)

CME 298: Probability and Stochastic Differential Equations for 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 some applications in science and/or engineering. Prerequisites: Math 53 and introductory probability (such as Stats 116 or Math 151).
Terms: Spr | Units: 4
Instructors: ; Adhikari, A. (PI)

CME 300: First Year Seminar Series

Required for first-year ICME Ph.D. students; recommended for first-year ICME M.S. students interested in research. Presentations about research by Stanford faculty and researchers. May be repeated for credit.
Terms: Aut | Units: 1 | Repeatable 3 times (up to 3 units total)
Instructors: ; Iaccarino, G. (PI)

CME 300Q: 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.
Terms: Spr | Units: 1 | Repeatable 2 times (up to 2 units total)
Instructors: ; Chen, C. (PI); Darve, E. (TA)

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 and one of Math 104 or Math 113.
Terms: Aut | Units: 3

CME 303: Partial Differential Equations of Applied Mathematics (MATH 220A)

Introduction to partial differential equations: basic properties of elliptic, parabolic, and hyperbolic equations; Hamilton-Jacobi equations and applications to optimal control; stochastic modeling, forward and backward Kolmogorov equations; Fourier transform and Fourier series. Prerequisite: multivariable calculus, rigorous courses on basic real analysis and ordinary differential equations. Note: Undergraduates require instructor permission to enroll. Undergraduates interested in taking the course should contact the instructor for permission, providing information about relevant background such as performance in prior coursework, reading, etc.
Terms: Aut | Units: 3

CME 305: Discrete Mathematics and Algorithms (MS&E 316)

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 problems. Topics include: graph theory, minimum cut, minimum spanning trees, matroids, maximum flow, non-bipartite matching, NP-hardness, approximation algorithms, spectral graph theory, and Laplacian systems. Prerequisites: CS 161 is highly recommended, although not required.
Last offered: Winter 2022 | Units: 3

CME 306: Computational Methods of Applied Mathematics (MATH 220B)

Numerical methods for solving elliptic, parabolic, and hyperbolic partial differential equations. Algorithms for gradient and Hamiltonian systems. Algorithms for stochastic differential equations and Monte Carlo methods. Algorithms for computational harmonic analysis. Prerequisites: advanced undergraduate level PDE and advanced undergraduate level numerical analysis. Note: Undergraduates require instructor permission to enroll. Undergraduates interested in taking the course should contact the instructor for permission, providing information about relevant background such as performance in prior coursework, reading, etc.
Terms: Win | Units: 3

CME 307: Optimization (MS&E 311)

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

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
Instructors: ; Glynn, P. (PI)

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

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 Sturm-Liouville 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.
Last offered: Winter 2023 | Units: 3

CME 323: Distributed Algorithms and Optimization

The emergence of clusters of commodity machines with parallel processing units has brought with it a slew of new algorithms and tools. Many fields such as Machine Learning and Optimization have adapted their algorithms to handle such clusters. Topics include distributed and parallel algorithms for: Optimization, Numerical Linear Algebra, Machine Learning, Graph analysis, Streaming algorithms, and other problems that are challenging to scale on a commodity cluster. The class will focus on analyzing parallel and distributed programs, with some implementation using Apache Spark and TensorFlow. Recommended prerequisites: Discrete math at the level of CS 161 and programming at the level of CS 106A.
Terms: Spr | Units: 3
Instructors: ; Bosagh Zadeh, R. (PI)

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

CME 334: Optimization Algorithms (CS 369O, MS&E 312)

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 methods, etc. and canonical optimization problems, critical point computation for non-convex functions, smooth-convex function minimization, regression, linear programming, etc. Focus on provable rates for solving broad classes of prevalent problems including both classic problems and those motivated by large-scale computational concerns. Discussion of computational ramifications, fundamental information-theoretic limits, and problem structure. Prerequisite: linear algebra, multivariable calculus, probability, and proofs.
Terms: Win | Units: 3

CME 345: Model Reduction (AA 216)

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. This course presents the basic mathematical theory for projection-based model reduction. It is intended primarily for graduate students interested in computational sciences and engineering. The course material described below is complemented by a balanced set of theoretical, algorithmic, and Matlab computer programming homework assignments. Prerequisites: Solid foundations in numerical linear algebra (CME 200 or equivalent). Basic numerical methods for ODEs (CME 206 or equivalent).
Last offered: Spring 2021 | Units: 3

CME 350Q: 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 must develop fault-tolerant computation protocols to make quantum computers useful. Quantum error-correcting codes provide a means of developing fault-tolerance at the software level. This course will explore Topological Quantum Computing (TQC) as a means of achieving fault-tolerance at the hardware level instead, by encoding information in topological phases of matter that are intrinsically protected from local deformations and interactions. TQC promises scalable quantum computing and it lies at the crossroads of cutting-edge research in Physics, Engineering, and Mathematics. This course will introduce the mathematical machinery modeling TQC. The main players are Anyons, Braids, and Categories: braiding anyons, which are certain quasiparticles existing only in two-dimensional systems, results in unitary state transformations implementing logical gates on encoded qubits. The mathematical theory of anyons, which are neither bosons nor fermions, as simple objects in unitary modular tensor categories is quite interesting, and this course will develop it from the ground up.
Last offered: Spring 2022 | Units: 1

CME 364A: Convex Optimization I (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. Least-squares, linear and quadratic programs, semidefinite programming, and geometric programming. Numerical algorithms for smooth and equality constrained problems; interior-point 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

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

CME 369: Computational Methods in Fluid Mechanics (ME 469)

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 sophistication and accuracy. The objective of this course is to introduce 'classical' approaches and algorithms used for the numerical simulations of incompressible flows. In addition, some of the more recent developments are described, in particular as they pertain to unstructured meshes and parallel computers. An in-depth analysis of the procedures required to certify numerical codes and results will conclude the course.
Terms: Spr | Units: 3

CME 371: Computational Biology in Four Dimensions (BIOMEDIN 371, BIOPHYS 371, CS 371)

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 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).
Last offered: Winter 2023 | Units: 3

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. NOTE: Undergraduates require instructor permission to enroll. Undergraduates interested in taking the course should contact the instructor for permission, providing information about relevant background such as performance in prior coursework, reading, etc.
Last offered: Winter 2021 | Units: 3

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 3 times (up to 3 units total)

CME 391: Ph.D. Research Rotation

First and second year ICME PhD students enroll under faculty sponsor for research rotation units.
Terms: Aut, Win, Spr, Sum | Units: 1-6 | Repeatable 3 times (up to 9 units total)

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 | Units: 1-15 | Repeatable 6 times (up to 30 units total)

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

CME 500: Departmental Seminar

This seminar series explores the practical application of ICME coursework and research. Presenters are industry practitioners of computational and mathematical engineering, often ICME alumni or technical staff from affiliate organizations. May be repeated for credit.
Terms: Spr | Units: 1 | Repeatable 6 times (up to 6 units total)

CME 510: Linear Algebra and Optimization Seminar

This seminar series highlights recent developments in numerical linear algebra and numerical optimization. The goal is to bring together scientists from different theoretical and application areas to solve complex scientific computing problems. Presenters include academic researchers and industrial R&D staff. May be repeated for credit.
Last offered: Winter 2023 | Units: 1 | Repeatable 6 times (up to 6 units total)

CME 801: TGR Project

Terms: Aut, Win, Spr, Sum | Units: 0 | Repeatable for credit
© Stanford University | Terms of Use | Copyright Complaints