Full List of Courses Taught

Fall 2023: EECS 149/249A: Introduction to Embedded Systems (co-taught with Prabal Dutta)
Spring 2023: EECS 219C: Formal Methods: Specification, Verification, and Synthesis
Spring 2022: EECS 219C: Formal Methods: Specification, Verification, and Synthesis
Fall 2021: EECS 149/249A: Introduction to Embedded Systems
Spring 2021:
EECS 219C: Formal Methods: Specification, Verification, and Synthesis
Fall 2020:
EECS 149/249A: Introduction to Embedded Systems (co-taught with Prabal Dutta)
Spring 2020:
EECS 219C: Formal Methods: Specification, Verification, and Synthesis
Fall 2019:
EECS 149/249A: Introduction to Embedded Systems (co-taught with Prabal Dutta)
Spring 2019:
EECS 219C: Formal Methods: Specification, Verification, and Synthesis
Fall 2018:
EECS 149/249A: Introduction to Embedded Systems (co-taught with Prabal Dutta)
Spring 2018:
EECS 219C: Formal Methods: Specification, Verification, and Synthesis
Fall 2016:
CS 70: Discrete Mathematics and Probability Theory (co-taught with Jean Walrand)
Spring 2016:
EECS 219C: Computer-Aided Verification
Fall 2015:
EECS 149: Introduction to Embedded Systems
Spring 2015:
EECS 219C: Computer-Aided Verification
Spring 2014:
CS294-98: Formal Methods for Engineering Education.
Fall 2013:
EECS 149: Introduction to Embedded Systems (co-taught with Edward Lee)
EECS 144 & 244: Fundamental Algorithms for System Modeling, Analysis, and Optimization (co-taught with Stavros Tripakis)
Fall 2012:
EECS 219C: Computer-Aided Verification
EECS 149: Introduction to Embedded Systems (co-taught with Edward Lee)
Fall 2011: EECS 144 & 244: Fundamental Algorithms for System Modeling, Analysis, and Optimization (co-taught with Edward Lee and Jaijeet Roychowdhury)
Spring 2011:
EECS 219C: Computer-Aided Verification
EECS 149: Introduction to Embedded Systems (co-taught with Edward Lee)
Fall 2010: EECS 144 & 244: Fundamental Algorithms for System Modeling, Analysis, and Optimization (co-taught with Edward Lee and Jaijeet Roychowdhury)
Spring 2010: CS 172: Computability and Complexity
Fall 2009: EECS 219C: Computer-Aided Verification
Spring 2009: EECS 149: Introduction to Embedded Systems
Fall 2008: EECS 244: Introduction to Computer-Aided Design of ICs (co-taught with Kurt Keutzer)
Spring 2008:
CS 172: Computability and Complexity
EECS 124: Introduction to Embedded Systems (co-taught with Edward Lee)
Fall 2007:
EECS 244: Introduction to Computer-Aided Design of ICs (co-taught with Kurt Keutzer)
CS 294-25: Current Berkeley Research in Programming Systems (co-taught with R. Bodik, K. Sen, D. Song, and K. Yelick)
Spring 2007: EECS 219C: Computer-Aided Verification
Fall 2006: CS 172: Computability and Complexity
Spring 2006: EECS 219C: Computer-Aided Verification
Fall 2005: EECS 244: Introduction to Computer-Aided Design of ICs (co-taught with Kurt Keutzer)