I have a longstanding interest in education with particular interests in teaching computational thinking and skills within engineering curricula. I have developed curricula for new courses in computational methods for engineering students at every stage of my academic career and now teach 3 different courses in computational methods for engineering at Georgia Tech. More details on courses I have taught are below.
Spring 2025:
AE 4803/8803 NUM/QNU* -- Numerical Analysis and Algorithms
Description: This course covers fundamental algorithms used in computational analysis and design of engineering systems. Topics include numerical integration of ODEs, numerical solution of PDEs, uncertainty quantification, and learning/fitting models to data. Students will both implement these algorithms and analyze their behavior theoretically. Model problems will be drawn from applications in aerospace engineering. Primary audience is advanced aerospace undergraduates, graduate students interested in the material are welcome.
Pre-requisites: (1) introductory programming course or equivalent experience: you should be proficient with for loops, if/else statements, logical operators (and/or), and array indexing. (2) Undergraduate math through multivariable calculus and differential equations (MATH 1551, 1552, 1553, 2551, 2552).
*QNU is a distance learning section.
AE 4803 AIM -- Foundations of Scientific Machine Learning
Description: This course introduces foundational methods, theory, and implementation for scientific machine learning, with a primary focus on regression models. Students will learn how to formulate scientific machine learning problems by (a) selecting a parametrized model class, (b) defining an optimization problem to select the model parameters. Several formulations for both linear and nonlinear regression will be introduced, with emphasis on understanding both the mathematical concepts underlying the methods as well as hands-on implementation and assessment of the learned models. Programming assignments will use python. The course will introduce/review basic python programming as well as the use of the numpy, scipy, pandas, pytorch, and matplotlib modules.
Pre-requisites: (1) Introductory programming: CS 1371 or CS 1301 or equivalent programming proficiency, (2) Multivariable calculus (MATH 2552 or equivalent), (3) Linear Algebra (MATH 1553/1554 or equivalent), and (4) probability and statistics (BMED 2400, ISYE 3770, ECE 3077, or MATH 3670 or equivalent).
This course counts towards College of Engineering's AI minor requirements in the "core" category (as an option alongside ME/MSE 4803, CHBE 4745, ECE 4252, and BMED 3201). AE students should note that the AE School does not currently participate in the AI minor - there are plans for AE to join the AI minor in the future, but AE students cannot currently declare the AI minor. Please feel free to get in touch with me if you have questions about the AI minor.
Previously:
AE 4803 / 8803 NUM/QNU (Spring 2023, 2024), see above for description
CSE/AE 8803 MOR (Spring 2024)
Description: Many powerful computational tools for optimization, inference, and uncertainty quantification rely on the ability to evaluate a model not once but many times. Traditional high-dimensional models are often too expensive for this many-query setting. Model reduction exploits structure in these high-dimensional models to derive cheap low-dimensional reduced models. The course will explore the mathematics and algorithmic principles of projection-based reduced modeling as well as their use in application.
Pre-requisites: (1) You must have taken at least one graduate-level course in numerical methods for PDEs, can be general like MATH 6640 or a graduate-level course in finite element analysis or computational fluid dynamics. (2) You must be sufficiently comfortable programming in a language of your choice that you can independently implement basic PDE solvers without help.
Additional helpful background: Numerical linear algebra and a first course in linear control theory are helpful but not required.
ACM 11 -- Introduction to Computational Science and Engineering: Spring 2021, Spring 2022 terms. *Received a 2021-2022 ASCIT Teaching Award from the Associated Students of Caltech.
ACM 213 -- Numerical Optimization: Spring 2022
ACM 270 -- Model Reduction for Large Scale Simulations: Winter 2021
16.s685 -- A Hands-on Introduction to Computational Engineering: co-instructor in Spring 2018, Spring 2019 terms
16.003 -- Unified Engineering: Fluid Dynamics: TA in Spring 2018
Course developer, "Machine Learning, Modeling, and Simulation Principles", MIT xPRO