Every professor knows that the best way to learn a subject is to teach it, and I still love learning mathematics! For this reason, I try to teach as many different courses as possible (although being a department chair has reduced my opportunities to teach).

Here’s a more-or-less complete list of courses that I’ve taught in the past twenty years, beginning with the most recent:

- Complex Variables
- Numerical PDEs (graduate)
- Introduction to Partial Differential Equations
- History of Mathematics
- Numerical Optimization (graduate)
- Scientific Computing
- Calculus I
- Regularization of Linear Inverse Problems (graduate topics course)
- Introduction to Abstract Algebra
- Linear Algebra
- Calculus III
- Introduction to Scientific Programming (graduate)
- Numerical Linear Algebra
- Elementary Differential Equations
- Elementary Linear Algebra
- Discrete Optimization (graduate)
- Finite Element Methods (graduate)
- Partial Differential Equations (graduate)
- Numerical Analysis I, II
- Ordinary Differential Equations (graduate)