Academics / Courses / Course DescriptionsMECH_ENG 395: Machine Learning for Mechanical Sciences
VIEW ALL COURSE TIMES AND SESSIONS
Description

Course Title: Machine Learning for Mechanical Sciences
Instructor: Bahador Bahmani
Course Level: Undergraduate (Junior/Senior Level) / Graduate
Prerequisite: Python programming, Linear Algebra, Calculus
Tools & Software: Python (PyTorch/Jax, NumPy, scikit-learn, pandas), Jupyter Notebooks
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. Students will explore three core objectives:
- Leveraging automatic differentiation to build differentiable models for physics-based simulation and engineering design,
- Understanding key modeling paradigms in machine learning,
- Quantifying uncertainty and assessing the risks associated with data-driven models.
Special emphasis will be placed on physics-encoded surrogate models and physics-constrained data assimilation. By the end of the course, students will be equipped with both conceptual and computational tools to responsibly and effectively apply ML in mechanical engineering.
Topics covered in this course include:
- Introduction to Optimization
- Probabilistic Modeling and Bayesian Inference
- Supervised Learning
- Multi-Layer Perceptron (MLP)
- Convolutional Neural Network (CNN)
- Recurrent Neural Network (RNN)
- Gaussian Processes
- Unsupervised Learning
- Proper Orthogonal Decomposition (POD)
- Dynamic Mode Decomposition (DMD)
- Autoencoders
- Uncertainty Quantification and Active Learning
The course is designed to make machine learning accessible to mechanical engineering students from a wide range of academic experiences. All examples and homework assignments are grounded in mechanical sciences-based applications such as identifying constitutive laws from stress–strain data, forecasting dynamics of nonlinear oscillators, solving inverse problems in heat conduction, and modeling fluid flow with sparse measurements. To support students throughout the course, introductory sessions will cover the basics of Python programming and the core functionality of PyTorch/Jax. The course follows a project-based format to reinforce learning through hands-on implementation.
