Skip to main content

Teaching

Spring 2022:    Formal Methods in Software Engineering    (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)