Teaching

Click here to read my teaching philosophy.

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)