# Teaching

SE 102 - Introduction to Computing for Engineers

Course Description and objectives:

Modern engineering requires numerical solution of equations and quantitative data analysis. The goal of this class is to introduce the most common numerical algorithms for solving a wide range of engineering problems. These include numerical solution of linear and nonlinear systems of equations, interpolation, numerical differentiation and integration, eigenvalue problems, and differential equations. Through programming assignments, students will develop the ability to implement these numerical algorithms.

SE 273/MAE 231C -  Inelasticity/Computational Plasticity

Course Description and objectives:

Many engineering materials (metals, concrete, geomaterials, composites, alloys, etc.) typically deform beyond the elastic regime. Analysis and design of structures and engineering systems that deal with these materials require knowledge of the material behavior and development of models that can capture the inelastic behavior of materials. The goal of this class is to introduce inelastic behavior of materials, underlying physical phenomena that lead to inelasticity (hardening/softening mechanisms, defects, etc.), as well as constitutive models for plasticity, viscoplasticity, and viscoelasticity. Some of the topics covered in the class include J2 plasticity, cap models, Mohr-Coulomb and Drucker-Prager, isotropic and kinematic hardening, flow rule, return mapping algorithm, and anisotropic plasticity. More advanced topics such as micromechanics and modeling of damage, fatigue phenomena, as well as processes and models of the failure of materials will also be discussed. Through programming assignments, students will develop the ability to implement these constitutive models into computer codes.

SE 276A/MAE 232A -  Finite Element Methods in Solid Mechanics I

Course Description and objectives:

The Finite Element Method (FEM) is one of the most popular numerical modeling techniques commonly used in engineering fields, such as structural engineering, mechanical and aerospace engineering, and bioengineering. This course aims at introducing basic concepts, mathematical formulation, and numerical procedures of FEM and their applications to structural mechanics, structural engineering, thermal science, and fluid conduction. Some of the topics covered in the course include FEM for linear problems, truss structures, 1D, 2D and 3D boundary value problems, stiffness matrices, strong and weak forms, Galerkin approximation, isoparametric elements, accuracy and the numerical implementation required to solve problems. Through programming and computer assignments, students will develop the ability to implement these methods into computer codes.

SE 232Machine Learning in Computational Mechanics

Course Description and objectives:

Given the rapid growth of Artificial Intelligence and its applications across engineering disciplines, this course aims at providing the necessary background and tools for graduate students to apply machine learning to solve various engineering problems, in particular in computational engineering and computational mechanics. An overview of the basic principles of machine learning will be provided, including supervised and unsupervised learning, regression, classification, regularization, cross-validation, and generative algorithms versus discriminative algorithms. The majority of the course will be devoted to deep learning, including deep neural networks, Convolutional Neural Networks, Recurrent Neural Networks and reinforcement learning. Data-driven computational mechanics and physics-informed machine learning will be introduced. Through programming assignments and exercises, students will develop the ability to implement machine learning algorithms in Python and relevant packages such as PyTorch, TensorFlow and Scikit-learn.