Courses
I find that teaching and the students keep life going, and I would never accept any position in which somebody has invented a happy situation for me where I don't have to teach. Never.--Richard P. Feynman
Here is the list of courses that I am teaching or have taught.
- CO 456: Introduction to Game Theory
 - CO 485/685: Public-Key Cryptography
 -  CO 250: Introduction to Optimization
- Fall 2023, Winter 2017
 
 - Math 145: Algebra (Advanced Level)
 - CO 487: Applied Cryptography
 - QIC 891: Topics in Quantum-Safe Cryptography
 -  Math 239: Introduction to Combinatorics
- Spring 2020, Fall 2016, Winter 2015, Fall 2010, Fall 2009, Spring 2009, Fall 2008, Fall 2007
 
 -  CO 789: Topics in Cryptography
- Fall 2015, Fall 2011, Winter 2007 (http://math.uwaterloo.ca/~djao/co789.2007/)
 
 -  CO 331: Coding Theory 
- Winter 2013, Winter 2011, Winter 2007
 
 -  CO 690: Research Literature Studies
- Winter 2007 (http://math.uwaterloo.ca/~djao/co690.2007/)