| Spring 2025: | Computer-Aided Verification | (CSE 814, Michigan State, Graduate level) |
| Fall 2024: | Discrete Structures in Computer Science | (CSE 260, Michigan State, Undergraduate level) |
| Spring 2024: | Computer-Aided Verification | (CSE 814, Michigan State, Graduate level) |
| Fall 2022: | Computer and Network Security | (CSE 825, Michigan State, Graduate level) |
| Fall 2022: | Discrete Structures in Computer Science | (CSE 260, Michigan State, Undergraduate level) |
|
Spring 2022: |
Computer-Aided Verification | (CSE 814, Michigan State, Graduate level) |
| Fall 2021: | Computer and Network Security | (CSE 825, Michigan State, Graduate level) |
| Spring 2021: | Discrete Structures in Computer Science | (CSE 260, Michigan State, Graduate level) |
| Fall 2020: | Computer and Network Security | (CSE 825, Michigan State, Graduate level) |
| Fall 2019: | Principles of Information-flow Security | (COM S 580, Iowa State, Graduate level) |
| Fall 2019: | Operating Systems | (COM S 352, Iowa State, Undergraduate level) |
| Spring 2019: | Principles of Information-flow Security | (COM S 641, Iowa State, Graduate level) |
| Spring 2019: | Operating Systems | (COM S 352, Iowa State, Undergraduate level) |
| Winter 2017: | Parallel and Distributed Computing | (SFTWRENG 3SH3, McMaster, Undergraduate level) |
| Winter 2017: | Operating Systems | (SFTWRENG 3SH3, McMaster, Undergraduate level) |
| Fall 2016: | Logic and Discrete Math in Software Engineering | (CAS 701, McMaster, Graduate level) |
| Winter 2016: | Operating Systems | (SFTWRENG 3SH3, McMaster, Undergraduate level) |
| Fall 2015: | Logic and Discrete Math in Software Engineering | (CAS 701, McMaster, Graduate level) |
| Fall 2015: | Principles of Programming | (SfwrEng/CompSci 2S03, McMaster, Undergraduate level) |
| Winter 2015: | Distributed Algorithms | (CAS 769, McMaster, Graduate level) |
| Fall 2013: | Computer-aided Verification | (CS745/ECE725, Waterloo, Graduate level) |
| Fall 2013: | Logic and Computations | (CS245, Waterloo, Undergraduate level) |
| Fall 2012: | Computer-aided Verification | (CS745/ECE725, Waterloo, Graduate level) |
| Fall 2012: | Logic and Computations | (CS245, Waterloo, Undergraduate level) |
| Fall 2011: | Operating Systems | (CS350, Waterloo, Undergraduate level) |
| Winter 2011: | Computer-aided Verification | (ECE725/CS745, Waterloo, Graduate level) |
| Summer 2008: | Operating Systems | (CSE410, Michigan State, Undergraduate level) |