Teaching

Click here to read my teaching philosophy.

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)