Mojtaba Tefagh – Teaching
Current classes
Term: Spring 2022  Units: 4  Section: 01  Students enrolled: 100  Lectures: Sun, Tue 5:00–7:00pm  Exam Date/Time: 6/26/22 3:30pm  Prerequisite: Foundations of Computer and Programming

Computational thinking and programming code, data representation and data types, branching and iteration, recursion and bisection, string manipulation, tuples and lists, arrays and dictionaries, variables and immutable data structures, functions and methods, classes and objects, abstraction and interfaces, encapsulation and objectoriented programming, inheritance and polymorphism, overloading and overriding, testing and debugging, exceptions and assertions.

This course covers the fundamentals of computer programming with an emphasis on computational thinking, understanding algorithms, and the basic concepts of programming languages to build a solid background as it is the prerequisite for most of the CS curriculum.
Term: Spring 2022  Units: 4  Section: 01  Students enrolled: 30  Lectures: Sat, Mon 5:00–7:00pm  Exam Date/Time: 6/25/22 9:00am  Prerequisite: Some programming experience and familiarity with matrix computations.

Leastsquares, constrained and nonlinear leastsquares; applications to model fitting, regularization and crossvalidation. Convex sets and functions and the corresponding analytical conditions for recognition. The basics of convex analysis and theory of convex programming: KarushKuhnTucker (KKT) optimality conditions, complementary slackness conditions, duality theory (weak and strong duality theorems), sensitivity analysis, theorems of the alternatives including Farkas’ lemma. Linear and quadratic programming, semidefinite programming, and geometric programming.

This course was formerly known as 22494 Convex Optimization, and was taught 201920. Some of the material from that class is expanded and used here.
Selected past courses
Term: Fall 2021  Units: 4  Section: 01  Students enrolled: 15  Lectures: Sun, Tue 8:00–10:00am  Exam Date/Time: 1/15/22 3:00pm  Prerequisite: Some optimization experience and familiarity with economics.

Frontiers in mechanism design and incentive engineering for cryptoeconomic systems such as decentralized finance (DeFi). This course focuses on both the systemic risks at the protocol level ranging from miner extractable value (MEV) to transaction fee price manipulation and the economic exploits on the incentive layer like malicious flash loan transactions and the horrors of the dark forest. Through a wide variety of examples of issues stemming from incentive misalignment, we will see the emergence of adversarial attacks by selfinterested rational agents who behave strategically to optimize their own objectives and values.

This is the alpha version of a course on the ongoing research and open problems in algorithmic game theory. Many advanced topics and cuttingedge issues in the field are discussed, which require mathematical maturity at the level of Ph.D. courses. There is no official textbook for the course.
Term: Spring 2021  Units: 4  Section: 01  Students enrolled: 40  Lectures: Sun, Tue 8:00–10:00am  Exam Date/Time: 7/4/21 9:00am  Prerequisite: Linear Algebra I

Introduction to applied linear algebra with a focus on applications. Vectors, distance, and angle; applications to clustering (the kmeans algorithm) and document analysis. Matrices, left and right inverses, QR factorization; applications to population and epidemic dynamics. Leastsquares, constrained and nonlinear leastsquares; applications to model fitting, regularization and crossvalidation. Additional applications include but are not limited to timeseries prediction, tomography, optimal control, and portfolio optimization.

This course is originally developed by Stephen P. Boyd. The course materials are the same as ENGR108 at Stanford. Specifically, the textbook and lecture slides can be found here.
Term: Spring 2021  Units: 4  Section: 01  Students enrolled: 40  Lectures: Sat, Mon 8:00–10:00am  Exam Date/Time: 6/23/21 9:00am  Prerequisite: Calculus II

Vector space, linear independence, dimension, duality, linear mappings, matrices, nonsingular matrices, kernel, determinant, trace, spectral theory, eigenvalues, eigenvectors, eigendecomposition, conjugacy, CayleyHamilton theorem, inner product space, orthonormal basis, euclidean structure, selfadjoint mappings, Hermitian matrices, unitary matrices, orthogonal matrices, diagonalizable matrices, semidefinite matrices, matrix inequalities, convexity, normed linear spaces, positive matrices, systems of linear equations, matrix decomposition, the Jordan canonical form.

This course covers the fundamentals of linear algebra with emphasis on the concepts and analytical aspects to build a solid background as it is the prerequisite for most of the Math curriculum.
Term: Fall 2020  Units: 4  Section: 01  Students enrolled: 30  Lectures: Sat, Mon 3:00–5:00pm  Exam Date/Time: 1/18/21 9:00am  Prerequisite: Convex Optimization

This course discusses computational systems biology focusing on select topics in fluxomics in a wellbalanced mixture of biology, mathematics, and computer science. We start by looking in detail at the mathematical underpinning of constraintbased analysis of genomescale metabolic network reconstructions and provide a foundation for the analysis of optimization algorithms involved. Subsequently, we provide an overview of various papers and toolboxes from the literature in the remainder of the semester. Students will explore concepts through a researchoriented term project that will require them to define goals, success metrics, and deliverables for a computational challenge in systems biology and implement and evaluate a solution.

The textbook is Optimization Methods in Metabolic Networks. Applications of convex optimization in metabolic network analysis can serve as an auxiliary text. Moreover, we will use the constraintbased modeling lectures from a course on metabolic modeling taught by Scott Hinton.
Term: Spring 2020  Units: 3  Section: 01  Students enrolled: 50  Lectures: Sun, Tue 9:00–10:30am at Math 217  Exam Date/Time: 6/28/20 9:00am  Prerequisite: Linear Algebra I

Convex sets, functions, and optimization problems. The basics of convex analysis and theory of convex programming: optimality conditions, duality theory, theorems of alternative, and applications. Leastsquares, linear and quadratic programs, semidefinite programming, and geometric programming. Numerical algorithms for smooth and equality constrained problems; interiorpoint methods for inequality constrained problems. Applications to systems biology, computational geometry, statistics, machine learning, and electrical engineering.

The course materials are the same as EE364a (Stanford) and EE236b (UCLA). Specifically, the textbook and lecture slides can be found here.
