Courses taught at Northeastern University

  • ME 7247: Advanced Control Engineering This is a graduate-level course that covers topics in modern control engineering, including: optimal control, optimal filtering, robust/nonlinear control, and model predictive control. The main theme of the course is how uncertainty propagates through dynamical systems, and how it can be managed in the context of a control system. We will emphasize modern tools from computational linear algebra and convex optimization, and use Matlab for implementation. Prereq: Linear algebra / differential equations (e.g., MATH 2341). Recommended: A course that covers state-space theory (e.g. ME 5659 or EECE 7200)
  • ME 4555: System Analysis and Control Undergraduate course in classical control theory. Presents the theoretical backgrounds for the analysis and design of simple feedback control systems, differential equations, and Laplace transforms. Treats: system modeling, linear approximations, transfer functions, block diagrams, transient and frequency response, stability-frequency domain, root locus, and Bode plot methods. Other topics may include linear systems with time lag and relay servomechanisms with small nonlinearities. Prereq: ME 3455 (dynamics and vibration)

Courses taught at the University of Wisconsin-Madison

  • ECE 204: Data Science & Engineering A hands-on introduction to Data Science using the Python programming language. The course is intended for Freshmen and Sophomores of any major that have no prior experience in computer programming or data science. The course teaches how to think about data-centric problems in a computational way. Given data from real-world phenomena, students will learn to describe, analyze, and make predictions. To this effect, the course will also introduce programming in Python, which is the most widely used programming language in the data science industry. Topics covered include: how to import, manipulate, summarize, and visualize data of various types, how to perform descriptive analyses such as clustering and principal component analysis, how to perform predictive analyses such as classification and regression, and notions of bias, fairness, and ethics in data science. Prereq: none. Appropriate for Freshmen and Sophomores (undergraduate only).
    Note: This course was formerly ECE 379 and was changed to ECE 204 in 2020.
  • ECE 717: Linear Systems This is a graduate-level course on linear dynamical systems with an emphasis on state-space modeling in both discrete and continuous time. Topics covered include equilibrium points and linearization, natural and forced responses, canonical forms and transformations, controllability and observability, control-theoretic concepts such as pole placement, stabilization, dynamic compensation, and the separation principle. This course presents material that should be fundamental knowledge for students pursuing research in systems/control theory, signal processing, or mechanical/electrical/industrial engineering. The official prerequisite is MATH 340. Unofficially, you should be comfortable with linear algebra and MATLAB, and preferably have taken an introductory systems/controls course (e.g. ECE 330, 332 or 334)
  • CS/ECE/ISyE 524: Introduction to Optimization This course is an introduction to optimization from a modeling perspective. The aim is to teach students to recognize and solve optimization problems that arise in industry and research applications. Topics include: linear and quadratic programs, least squares, second order cone programs, mixed-integer programs, and discrete/combinatorial problems. Examples will be drawn from a variety of disciplines, including computer science, operations research, control and mechanical engineering, machine learning, and business/finance. Prereq: undergraduate-level linear algebra and exposure to numerical computing (Matlab, Python, or Julia). Appropriate for undergraduate or graduate students.
  • ECE/CS/ME 532: Matrix Methods in Machine Learning This course is an introduction to machine learning that focuses on matrix methods and features real-world applications ranging from classification and clustering to denoising and data analysis. Mathematical topics covered include: linear equations, regression, regularization, the singular value decomposition, and iterative algorithms. Machine learning topics include: the lasso, support vector machines, kernel methods, clustering, dictionary learning, neural networks, and deep learning. Students are expected to have taken a course in vector calculus, such as MATH 234, and have exposure to numerical computing (Matlab, Python, Julia, or equivalent). Appropriate for graduate students or advanced undergraduates.
    Note: This course was formerly named “Theory and Applications of Pattern Recognition” and was renamed in 2018.

Teaching History

Northeastern University

  • Spring 2023-24: ME 5374: Optimization Modeling for Engineers
  • Fall 2023-24: ME 4555: System Analysis and Control (2 sections)
  • Spring 2022-23: ME 4555: System Analysis and Control
  • Fall 2022-23: ME 7247: Advanced Control Engineering
  • Spring 2021-22: ME 4555: System Analysis and Control
  • Fall 2021-22: ME 7247: Advanced Control Engineering
  • Spring 2020-21: ME 4555: System Analysis and Control
  • Fall 2020-21: ME 4555: System Analysis and Control

University of Wisconsin-Madison

  • Fall 2019-20: ECE 379: Data Science & Engineering
  • Fall 2019-20: ECE 717: Linear Systems
  • Spring 2018-19: ECE 379: Data Science & Engineering
  • Spring 2017-18: CS/ISyE/ECE 524: Introduction to Optimization
  • Fall 2017-18: ECE 717: Linear Systems
  • Spring 2016-17: CS/ISyE/ECE 524: Introduction to Optimization
  • Fall 2016-17: ECE/CS/ME 532, Theory and Applications of Pattern Recognition
  • Spring 2015-16: CS/ISyE 524 and ECE 601: Introduction to Optimization
  • Fall 2015-16: ECE/CS/ME 532, Theory and Applications of Pattern Recognition (co-taught with Rob Nowak)