XKCD Model-Based Embedded Systems Model-Based Embedded Systems
Courses    | Teaching statement


VLSI System Design (Fall 2020, Oregon State University)

In this undergrad and grad class, students learn the basics of proper Verilog descriptions, with emphasis on synthesizability. The second half of the class focuses on testing and formal verification of digital hardware. Check-out the Syllabus.


Cyber-Physical Systems (Fall 2019, Oregon State University)

This class introduces fundamentals of rigorous modeling and verification for Cyber-Physical Systems through two case studies: implantable cardiac devices and Automatic Cruise Control. Students learn about temporal logics, timed automata in the first half, and specification-guided falsification in the second. UPPAAL and Simulink are heavily used throughout. Check-out the Syllabus.


F1/10 Autonomous Racing (Spring 2020, Oregon State University)

This is a quarter-length version of my semester-long F1/10 class (see below). The same topics are covered more compactly, and we additionally discuss regulatory aspects of autonomous vehicles, especially flying ones. Check-out the Syllabus.


F1/10 Autonomous Racing (Fall 2018, University of Pennsylvania)

Head-to-head race, speed-limited, between Ninja Turtles (red mask) and Emu IMUs.

This course introduces the basics of Perception, Control and Planning for autonomous robots in a fully hands-on manner. The students build an autonomous car from sratch, using a 1/10th scale racing chassis, a Jetson TX2, and a LIDAR. After getting up to speed on ROS on their own, the students learn how to process LiDAR data and find gaps in it, and how to navigate the car around a hallway by wall-following. They now have the basics to develop more advanced navigation software, and to beat the other teams in a race! Topics include PID, MPC, pure pursuit, and localization and mapping. The appeal of this course is that it gives students a very fast path to seeing something running, and it lowers the barrier to self-driving cars significantly. We want students and researchers to compete on algorithms, not on who has the largest team. Checkout the syllabus.


Digital Twins: Model-Based Embedded Systems (Fall 2017 and Spring 2018, University of Pennsylvania)

What does it take to design and implement a life-saving cardiac defibrillator? The lives of an additional 300,000 people worldwide depend on the answer, every year. What is needed to develop and implement reliable and efficient control software? This course will lead you to the answers, in three projects at the cutting edge of embedded systems design, covering energy-efficient buildings, cardiac medical devices, and automotive controllers. The objective of the course is to introduce model-based design, where you create a model of the phenomenon you are trying to control or verify, and use this model to develop and test your algorithms and devices. We introduce tools and theory of model-based design in a hands-on manner that highlights the nuances of modeling choices and the trade-offs between expressivity and verifiability. See the Brochure and Syllabus. The results of an informal mid-semester survey are here.