Teaching
Below are the courses that I am or will be teaching at the University of Waterloo.
MTE 481/482: Mechatronics Engineering Design Project (Fall 2025/Winter 2026)
MTE 481: This course is intended to reinforce the concepts learned in MTE 380 and to extend the significant design experience obtained. Students work individually or in small groups applying the principles of engineering design and problem-solving to a design project of their own choosing. The project must incorporate all elements of Mechatronics, namely, mechanical design, electronics, computers and software. In exceptional circumstances, one or more elements may be exempted by the course instructor. The students are required to consider a need analysis, search for prior art and present alternate designs. The course ends with the selection of a final design. Projects are selected, approved, monitored, and marked by a course co-ordinator.
This course is an extension of MTE 481. Students work on prototyping the designs they proposed and finalized in MTE 481. The students either individually or in small groups demonstrate the working prototypes; make a poster presentation for the design competition; and pitch their product on a web site. The projects are monitored by the course instructor and evaluated by the instructor with feedback from an expert judging panel.
- Previously taught in Fall 2023 and Winter 2024
ECE686: Filtering and Control of Stochastic Linear Systems (Winter 2025)
This course is concerned with discrete-time systems subject to disturbances. We seek to estimate quantities associated with these systems and to optimally control the evolution of these systems. Broadly speaking, we are interested in decision making under uncertainty. The first half of the course establishes the fundamentals of the estimation problem, culminating in the derivation of the fact that state estimation in linear systems is equivalent to projection onto a closed linear subspace generated by an observation process in a Hilbert space of random variables. This leads to the Kalman filter, which finds use in many applications ranging from aerospace to finance. The course will then cover the issues of stochastic optimal control (based on dynamic programming), the linear quadratic Gaussian (LQG) control problem and optimal control of Markov chains over infinite horizons.
- Past syllabus for course: Filtering and Control of Stochastic Linear Systems
- Previously taught in Winter 2017, 2019, 2020, 2021, 2024
ECE406: Algorithm Design and Analysis (Winter 2026)
Design and analysis of efficient, correct algorithms. Advanced data structures, divide and conquer algorithms, recurrences, greedy algorithms, dynamic programming, graph algorithms, search and backtrack, inherently hard and unsolvable problems, approximation and randomized algorithms, and amortized analysis.
- Time: Tues, Wed, Thurs, 10:30-11:20
- Room: TBD
- Past syllabus for course: Algorithm Design and Analysis
- Previously taught in Winter 2013, Winter 2014, Winter 2015, Winter 2016, Winter 2017, Winter 2018, Winter 2020, Winter 2022
ECE380: Analog Control Systems
Introduction to control systems. Advantages of closed-loop feedback systems. The role of the system mathematical model. Block diagrams and signal flow graphs. The basic control system design problem, stability in control systems. Frequency response analysis techniques. Root-locus analysis. Elementary lead-lag compensation.
- Past syllabus for course: Analog Control Systems
- Previously taught in Winter 2012, Winter 2015, Spring 2016, Winter 2018, Winter 2019, Winter 2021
ECE780 T08: Topics in Motion Coordination and Planning (Spring 2017)
There has been a surge of research in recent years on enabling mobile robots to autonomously perform complex tasks. Applications of such systems include monitoring complex spaces, autonomously transporting goods and people, and providing on-call assistance to elderly or disabled persons. This course will discuss key tools and techniques that are employed in this area. The course will start with basic path planning---how do we get a robot to move from point A to point B? We will then move onto more complex problems, such as dynamic vehicle routing (DVR) where robots are "on-call" and must respond to service requests in real-time. This will require a discussion of multi-robot coordination and some important problems in that area.
- Time: TBA
- Room: TBA
- Syllabus for course (from 2012): Motion Coordination & Planning
- Previously taught in Spring 2011, Spring 2012, Spring 2013, Spring 2015
ECE300A: Electrical and Computer Engineering Practice (Winter 2015)
Areas of research and professional practice in Electrical and Computer Engineering. Exposure to concepts from other Engineering disciplines. Support material for the academic term, cooperative education, and professional or career development. The focus is on engineering design principles, project management, and design proposals.
- Time: Wed 11:30-12:20
- Room: EIT 1015
- Previously taught in Winter 2013, Winter 2014
ECE486: Robot Dynamics and Control (Spring 2013)
This course covers the algorithms and conventions used for modeling and controlling articulated robotic systems such as robot arms. In the first half of the course, kinematic and dynamic models of robot arm motion are developed. In the second half of the course, algorithms for designing robot trajectories and controllers are introduced. The course also has a laboratory component, where robot trajectory planning, kinematic and dynamic modeling and control strategies are demonstrated.
- Time: Mon, Fri 2:30 to 3:50
- Room: QNC 1502
- Course Outline: Robot Dynamics and Control
- Previously taught in Spring 2013