Teaching

Courses at Northwestern University

ME 327/CEE 327: Finite Elements Methods in Mechanics
  • Quarter: Fall 2026
  • Previously offered: Fall 2025
  • Level: Undergraduate / Graduate
  • Prerequisites: Basic computer programming (in Python) and basic linear algebra
  • Tools & Software: Python (NumPy, scikit-learn), Abaqus, Jupyter Notebooks
  • Format: Lectures + Hands-on Labs
  • Delivery: In-person
  • Course Description:

    This course provides a practical introduction to the Finite Element Method (FEM), with an emphasis on hands-on implementation using Python. It covers the basic theoretical concepts necessary to understand and apply FEM, without going into extensive mathematical detail. Students will learn how to build FEM solvers with minimal external dependencies and how to use a general-purpose framework (Abaqus). The course focuses on solving elliptic partial differential equations, with applications in heat conduction, linear elasticity, and potential flow, covering a broad range of topics relevant to students of civil and mechanical engineering.

ME 417-1/CEE 417-1: Mechanics of Continua I
  • Quarter: Fall 2026
  • Level: Graduate
  • Textbook: J. W. Rudnicki, Fundamentals of Continuum Mechanics, John Wiley & Sons, 2015
  • Format: Lectures
  • Delivery: In-person
  • Course Description:

    This course introduces the mathematical and physical foundations of continuum mechanics, with an emphasis on the kinematics, balance laws, and constitutive description of continuous media. It begins with tensor algebra and tensor calculus, developed both in Cartesian coordinate systems and in coordinate-free form, and builds toward an understanding of stress as a tensor and of the distinction between material and spatial descriptions of motion. The course then treats measures of strain, deformation, and deformation rate that remain valid for arbitrarily large deformations, and derives the equations expressing balance of mass, momentum, and energy in their various forms, closing with an introduction to constitutive behavior and constitutive modeling. By the end of the course, students will be able to work fluently with index notation, formulate boundary-value problems in continuum mechanics, and read advanced texts and research papers in the field.

ME 395: Machine Learning for Mechanical Sciences
  • Quarter: Winter 2027
  • Previously offered: Spring 2026
  • Level: Undergraduate / Graduate
  • Prerequisites: Basic computer programming (in Python) and basic linear algebra
  • Tools & Software: Python (PyTorch/Jax, NumPy, scikit-learn, pandas), Jupyter Notebooks
  • Format: Lectures + Hands-on Labs
  • Delivery: In-person
  • Course Description:

    Mechanical engineering has traditionally relied on physics, mathematics, and empirical knowledge to design and optimize systems. Machine learning (ML) introduces powerful tools that can complement this foundation by enabling data-driven modeling, prediction, and automation. In recent years, ML applications in mechanical sciences have led to notable advances, such as automation in material modeling, acceleration of simulations, design optimization, and materials discovery. However, this flexibility often comes at the cost of reliability, particularly in safety-critical applications, when models are required to extrapolate beyond observed data or when the quantity and/or quality of available data is insufficient. This course addresses the need for principled integration of machine learning into mechanical sciences by introducing foundational ML concepts with a focus on physical modeling and engineering applications—including dynamical systems, solid mechanics, heat transfer, fluid mechanics, materials science, and manufacturing and design —to build predictive models that emulate the underlying physics by augmenting data with first principles—or vice versa—depending on the application.

uq