Teaching

ENG EC545: Cyber-Physical Systems — Fall 2022, Fall 2021, Fall 2019

  • Graduate course on embedded and cyber-physical systems.
  • This course introduces students to the principles underlying the design and analysis of cyber-physical systems (CPSs). A strong emphasis is put on building high-assurance systems with real-time and concurrent behaviors. Topics covered include modeling of dynamical behaviors, design of CPSs, and specification and analysis of CPSs. [syllabus]

ENG EC330: Applied Algorithms for Engineers — Spring 2022, Spring 2021, Spring 2020, Fall 2018

  • Undergraduate course on algorithms.
  • Introduction to the general concept of algorithms. Efficiency and run-time of algorithms. Graph algorithms, priority queues, search trees. Various approaches to design of algorithms and data structures, together with their applications to numerical and non-numerical problems. [syllabus]

ENG EC754: Computer-Aided Verification and Synthesis — Fall 2017, Fall 2017

  • Advanced graduate course on computer-aided verification and synthesis.
  • The topics covered include formal specifications, modeling formalisms, verification techniques, inductive synthesis, and emerging applications such as autonomous robots and vehicles. [syllabus]

ENG EC535: Introduction to Embedded Systems — Spring 2017

  • Graduate course on embedded systems.
  • The topics covered include system specification languages, embedded computer architecture, real-time operating systems, hardware-software co-design, modeling formalisms, verification techniques, and embedded system applications. [syllabus]

ENG EC551: Advanced Digital Design with Verilog and FPGA — Fall 2016

  • Graduate course on digital design and computer-aided design algorithms for FPGAs.
  • The topics covered include hardware description language (Verilog), specification, design, simulation, verification and synthesis of digital designs on FPGAs. [syllabus]