## 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

Instructors:
Le, H. (PI)
;
Regev, S. (TA)

## 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/engineering-diversity-programs/additional-calculus-engineers

Terms: Aut, Win, Spr
| Units: 6
| UG Reqs: GER:DB-Math, WAY-FR

Instructors:
Le, H. (PI)

## CME 103: Introduction to Matrix Methods (EE 103)

Introduction to applied linear algebra with emphasis on applications. Vectors, norm, and angle; linear independence and orthonormal sets; applications to document analysis. Clustering and the k-means algorithm. Matrices, left and right inverses, QR factorization. Least-squares and model fitting, regularization and cross-validation. Constrained and nonlinear least-squares. Applications include time-series prediction, tomography, optimal control, and portfolio optimization. Undergraduate students should enroll for 5 units, and graduate students should enroll for 3 units. Prerequisites:
MATH 51 or
CME 100, and basic knowledge of computing (
CS 106A is more than enough, and can be taken concurrently).
EE103/CME103 and
Math 104 cover complementary topics in applied linear algebra. The focus of EE103 is on a few linear algebra concepts, and many applications; the focus of
Math 104 is on algorithms and concepts.

Terms: Aut, Win, Sum
| Units: 3-5
| UG Reqs: GER:DB-Math, WAY-AQR, WAY-FR

Instructors:
Jani, T. (PI)
;
Osgood, B. (PI)
;
Tse, D. (PI)
;
Chang, S. (TA)
;
Degleris, A. (TA)
;
Jani, T. (TA)
;
Ramesh, R. (TA)
;
Spear, L. (TA)
;
Toh, E. (TA)
;
Yen, J. (TA)

## 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, non-parametric 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:DB-Math, WAY-AQR, WAY-FR

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, 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:
MATH 51, 52, 53; prior programming experience (MATLAB or other language at level of
CS 106A or higher).

Terms: Win
| Units: 3
| UG Reqs: GER:DB-EngrAppSci, WAY-AQR, WAY-FR

Instructors:
Marsden, A. (PI)

## 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.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

Instructors:
Camelo Gomez, S. (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

Instructors:
Dwaraknath, A. (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 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

Instructors:
Lele, S. (PI)

## 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

Instructors:
Peles, S. (PI)
;
Santucci, A. (PI)

## 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: Win
| Units: 3

Instructors:
Darve, E. (PI)

Filter Results: