Selected past courses

22811 Foundations of Computer and Programming

Term: Fall 2022 | Units: 4 | Section: 01 | Students enrolled: 100 | Lectures: Sun, Tue 8:00–10:00am | Exam Date/Time: 2/14/23 9:00am | Prerequisite: Calculus I

My life 

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 object-oriented 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. This course was formerly taught 2021-22. Some of the material from that class is expanded and used here.

22059 Game Theory

Term: Fall 2022 | Units: 3 | Section: 01 | Students enrolled: 40 | Lectures: Sun, Tue 3:00–4:30pm | Exam Date/Time: 1/12/23 9:00am | Prerequisite: Undergraduate students benefit from Probability I, or equivalent.

Game theory 

Rigorous introduction to game theory and its applications to economics, political science, computer science, and biology. Topics include normal and extensive forms, dominant strategies, static and dynamic games of complete and incomplete information, repeated games and refinements, elements of evolutionary game theory, solution concepts such as Nash equilibrium, subgame-perfect equilibrium, and Bayesian equilibrium.

The class aims to provide a solid basis in game-theoretic tools and concepts. Technical material covering a variety of non-cooperative game theory topics will be presented.

22058 Algorithmic Game Theory

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.

Project Incentivus 

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 self-interested 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 cutting-edge 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.

22659 Applied Linear Algebra

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 

Introduction to applied linear algebra with a focus on applications. Vectors, distance, and angle; applications to clustering (the k-means algorithm) and document analysis. Matrices, left and right inverses, QR factorization; applications to population and epidemic dynamics. Least-squares, constrained and nonlinear least-squares; applications to model fitting, regularization and cross-validation. Additional applications include but are not limited to time-series 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.

22255 Linear Algebra I

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

Linear algebra done right 

Vector space, linear independence, dimension, duality, linear mappings, matrices, nonsingular matrices, kernel, determinant, trace, spectral theory, eigenvalues, eigenvectors, eigendecomposition, conjugacy, Cayley-Hamilton theorem, inner product space, orthonormal basis, euclidean structure, self-adjoint mappings, Hermitian matrices, unitary matrices, orthogonal matrices, diagonalizable matrices, semi-definite 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.

22290 Topics in Mathematical Biology

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

Word cloud of COBRA keywords 

This course discusses computational systems biology focusing on select topics in fluxomics in a well-balanced mixture of biology, mathematics, and computer science. We start by looking in detail at the mathematical underpinning of constraint-based analysis of genome-scale 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 research-oriented 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 constraint-based modeling lectures from a course on metabolic modeling taught by Scott Hinton.

22494 Convex Optimization

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: Some programming experience and familiarity with matrix computations.

A quadratic function 

Least-squares, constrained and nonlinear least-squares; applications to model fitting, regularization and cross-validation. Convex sets and functions and the corresponding analytical conditions for recognition. The basics of convex analysis and theory of convex programming: Karush-Kuhn-Tucker (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.

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