# Teaching

#### Numerical Analysis: Linear and Nonlinear Problems (CS 4220/5223 / MATH 4260)

Fundamentals of numerical linear algebra (linear systems, eigenvalues and SVDs), on which we’ll build iterative methods for nonlinear systems and multivariate optimization. Understanding advantages, disadvantages, and practical limits of numerical methods. Programming required.

#### Applications of Parallel Computers (CS 5220)

Overview of high performance scientific computing. Basics of modern parallel machine design, parallel programming patterns, and applications. Programming projects will likely inspire creative cursing, mostly due to the frustrations of parallel profiling and debugging.

#### Numerical Methods for Data Science (CS 6241)

Discussion of numerical methods in the context of machine learning and data analysis problems. We will discuss sparsity, rank structure, and spectral behavior of underlying linear algebra problems; convergence behavior and implicit regularization for standard solvers; and comparisons between numerical methods in data analysis and those used in physical simulations.

#### Introduction to Scientific Computing (CS 3220)

No longer offered; see CS 4210 and CS 4220.

Overview of scientific computing in MATLAB, from a user perspective. Error analysis basics, linear systems and least squares, nonlinear equations, basic optimization, numerical differentiation and quadrature, ODEs, and applications.

#### Numerical Methods for Data Science (SJTU CS 259)

Short course offered June-July 2018 at SJTU.

Survey course of numerical methods prominent in modern data analysis and machine learning. Building on basic methods of optimization and numerical linear algebra, the course will explore the role of numerical methods for treating several classes of data analysis problems, including low rank factorizations and completion of matrix data; function approximation by kernel methods; and analysis of data on graphs.

See here for older courses.