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

Instructors:
Khayms, V. (PI)
;
Le, H. (PI)

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

Instructors:
Khayms, V. (PI)
;
Le, H. (PI)

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

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

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

Instructors:
Moin, P. (PI)

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

Terms: Aut
| Units: 3

Instructors:
Santucci, A. (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 al
more »

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.

Terms: Aut
| Units: 1

Instructors:
Sarkar, R. (PI)

Filter Results: