Course
Automated Mathematics
In this course we study the representation and manipulation of mathematical knowledge symbolically using logic, automated reasoning, and proof assistants. Students will learn type theory, logic, the Curry-Howard Isomorphism, number systems, computation, and various application-specific mathematical frameworks. The course makes heavy use of the Lean Programming Language and Proof Assistant, with weekly coding assignments.
Next Offering: Winter 2027
Course
Synthetic Biology
I introduced UW's Interdisciplinary Course Seqeuence on Synthetic Biology in over a decade ago. It includes an introductory course covering the literature, mathematical modeling, and data sciences; a laboratory methods courses introducing applied molecular biology; and an advanced course that allows faculty to explore a topic of their choice. The courses also include ethics modules in which the responsible use of genetic engineering is discussed. Since the sequence was introduced, it has been taught every year by faculty members in in ECE, CSE ChemE, and BioE.
Course
Control Systems
I have taught undergraduate control systems (EE 447, EE 448, and EE449), as well as graduate control systems (EE 547). I focus on the foundations, computational methods, and experiments on hardware. I have used the excellent books by Nise, Aström & Murray, and Chen, a corpus of Jupyter Notebooks of my own design, and hardware designed by students in my group.
Course
Software Engineering
I introduced the UW ECE PMP Course "Software Engineering for Embedded Systems", which covers programing in C and C++, scheduling, I/O, signal processing, and networking. Students learn to build something like this. The course is designed for electrical and computer engineers returning to the classroom from industry positions. The course has been taught yearly since my first offering in 2018 by a number of faculty members.

I have also taught courses on Stochastic Processes, Unconvential Computing, Analytical Methods, Robotic Manipulation, and Leadership.