CME 102: Ordinary Differential Equations for Engineers (ENGR 155A)
Analytical and numerical methods for solving ordinary differential equations arising in engineering applications: Solution of initial and boundary value problems, series solutions, Laplace transforms, and nonlinear equations; numerical methods for solving ordinary differential equations, accuracy of numerical methods, linear stability theory, finite differences. Introduction to MATLAB programming as a basic tool kit for computations. Problems from various engineering fields.Prerequisites: knowledge of singlevariable calculus equivalent to the content of
Math 1921 (e.g., 5 on Calc BC, 4 on Calc BC with
Math 21, 5 on Calc AB with
Math21). Placement diagnostic (recommendation non binding) at:(
https://exploredegrees.stanford.edu/undergraduatedegreesandprograms/#aptext). Recommended:
CME100.
Terms: Aut, Win, Spr, Sum

Units: 5

UG Reqs: GER:DBMath, WAYFR

Grading: Letter or Credit/No Credit
CME 102A: Ordinary Differential Equations for Engineers, ACE
Students attend
CME102/ENGR155A lectures with additional recitation sessions; two to four hours per week, emphasizing engineering mathematical applications and collaboration methods. Prerequisite: students must be enrolled in the regular section (
CME102) prior to submitting application at:n
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:
Cameron, M. (PI)
;
Le, H. (PI)
CME 106: Introduction to Probability and Statistics for Engineers (ENGR 155C)
Probability: random variables, independence, and conditional probability; discrete and continuous distributions, moments, distributions of several random variables. Topics in mathematical statistics: random sampling, point estimation, confidence intervals, hypothesis testing, nonparametric tests, regression and correlation analyses; applications in engineering, industrial manufacturing, medicine, biology, and other fields. Prerequisite:
CME 100/ENGR154 or
MATH 51 or 52.
Terms: Win, Sum

Units: 4

UG Reqs: GER:DBMath, WAYAQR, WAYFR

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

Units: 3

UG Reqs: GER:DBEngrAppSci, WAYAQR, WAYFR

Grading: Letter or Credit/No Credit
Instructors:
Marsden, A. (PI)
;
Aboumrad, G. (TA)
CME 192: Introduction to MATLAB
This short course runs for the first four weeks/eight lectures of the quarter and is offered each quarter during the academic year. It is highly recommended for students with no prior programming experience who are expected to use MATLAB in math, science, or engineering courses. It will consist of interactive lectures and applicationbased assignments.nThe goal of the short course is to make students fluent in MATLAB and to provide familiarity with its wide array of features. The course covers an introduction of basic programming concepts, data structures, and control/flow; and an introduction to scientific computing in MATLAB, scripts, functions, visualization, simulation, efficient algorithm implementation, toolboxes, and more.
Terms: Aut, Win

Units: 1

Grading: Satisfactory/No Credit
Instructors:
Aboumrad, G. (PI)
;
Dyro, R. (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, 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
Instructors:
Dwaraknath, A. (PI)
;
Nelson, B. (PI)
CME 204: Partial Differential Equations in Engineering (ME 300B)
Geometric interpretation of partial differential equation (PDE) characteristics; solution of first order PDEs and classification of secondorder PDEs; selfsimilarity; separation of variables as applied to parabolic, hyperbolic, and elliptic PDEs; special functions; eigenfunction expansions; the method of characteristics. If time permits, Fourier integrals and transforms, Laplace transforms. Prerequisite:
CME 200/
ME 300A, equivalent, or consent of instructor.
Terms: Win

Units: 3

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

Units: 3

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

Units: 3

Grading: Letter or Credit/No Credit
Instructors:
Rao, A. (PI)
;
Gu, J. (TA)
CME 250: Introduction to Machine Learning
A Short course presenting the principles behind when, why, and how to apply modern machine learning algorithms. We will discuss a framework for reasoning about when to apply various machine learning techniques, emphasizing questions of overfitting/underfitting, regularization, interpretability, supervised/unsupervised methods, and handling of missing data. The principles behind various algorithmsthe why and how of using themwill be discussed, while some mathematical detail underlying the algorithmsincluding proofswill not be discussed. Unsupervised machine learning algorithms presented will include kmeans clustering, principal component analysis (PCA), and independent component analysis (ICA). Supervised machine learning algorithms presented will include support vector machines (SVM), classification and regression trees (CART), boosting, bagging, and random forests. Imputation, the lasso, and crossvalidation concepts will also be covered. The R programming language will be used for examples, though students need not have prior exposure to R. Prerequisite: undergraduatelevel linear algebra and statistics; basic programming experience (R/Matlab/Python).
Terms: Win

Units: 1

Grading: Satisfactory/No Credit
Instructors:
Wang, S. (PI)
Filter Results: