Recent and ongoing courses

  • ECE 379: Data Science & Engineering (Fall 2019-20) 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).
  • ECE 717: Linear Systems (Fall 2019-20) 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 (last taught Spring 2017-18) 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 (last taught Fall 2016-17) 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

  • 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)