Courses

Undergraduate Courses that I teach: the Departmental web page for undergraduate courses has lengthier course descriptions.

Probability, Statistics and Data Science for Engineers (EK381)
An introductory course providing foundational knowledge of probability theory and its applications in engineering, with a focus on data science.

Algorithms and Data Structures (EC330)
A course on the theory of design, analysis and implementation of computer algorithms and data structures.  The course ranges from sorting and searching, to network optimization and hard combinatorial problems.

Signals and Systems  (EC401)
A course on the fundamentals of continuous and discrete time signals and systems.

Control Systems (EC402)
A course on the fundamentals of single input control theory, with a focus on frequency domain design, and a very brief introduction to state space systems.

Graduate Courses that I teach: the Departmental web page for Graduate Courses has detailed course descriptions

Linear Systems and Multivariable Control (EC501)
An introductory graduate course covering state space analysis of linear systems and fundamentals of multivariable state space design.

Stochastic Processes (EC505)
An introductory graduate course the fundamentals of discrete and continuous stochastic processes, including applications such as detection and estimation..

Recursive Estimation (EC702)
An advanced graduate course focusing on modern techniques for recursive state estimation and smoothing in linear and nonlinear systems. Topics vary depending on current interests.

Pattern Recognition (EC719):
An advanced graduate course focusing on statistical techniques for pattern recognition.  Topics vary depending on current interests.

Combinatorial Optimization and Graph Algorithms (EC732):
A course focused on optimization techniques for problems with discrete spaces. Covers advanced network optimization algorithms and matroid optimization, approximation algorithms for NP-Hard optimization problems, submodular optimization.