I teach a variety of courses at all levels of our undergraduate program, from Introduction to Computer Science (1st year) to advanced Software Engineering (4th year). I normally supervise between one and three undergraduate research or development course projects per term.

Current Courses

Past Courses

  • Introduction to Computer Science, CSC A08, Fall 2020.
  • Introduction to Software Engineering, CSC C01, Summer 2020.
  • Independent Study in Computer Science: Theoretical Foundations and Practical Applications of Computer Science, Winter 2020.
  • Engineering Large Software Systems, CSC D01, Winter 2020.
  • Introduction to Computer Science, CSC A08, Fall 2019.
  • Engineering Large Software Systems, CSC D01, Winter 2019.
  • Introduction to Computer Science, CSC A08, Winter 2019.
  • Introduction to Computer Science, CSC A08, Fall 2018.
  • Development Project in Computer Science: Web Development for TAid, CSC D94, Fall 2017.
  • Development Project in Computer Science: Integrating Third Party Software into TAid, CSC D94, Summer 2017.
  • Development Project in Computer Science: Web Development for TAid, CSC D94, Summer 2017.
  • Development Project in Computer Science: Upgrading TAid core to Angular 2, CSC D94, Summer 2017.
  • Research Project in Computer Science. Automated Testing for a Prover's Assistant, CSC D94, Winter 2017.
  • Engineering Large Software Systems, CSC D01, Winter 2017.
  • Principles of Programming Languages, CSC C24, Winter 2017.
  • Introduction to Software Engineering, CSC C01, Fall 2016.
  • Software Design, CSC B07, Fall 2016.
  • Research Project in Computer Science: Verifying the Verifier; Developing a Test Suite for a Prover's Assistant, CSC D94, Summer 2016.
  • Development Project in Computer Science: Building an Android Front End for TAid: A Support System for Large Teaching Teams, CSC D94, Summer 2016.
  • Development Project in Computer Science: Improving the Web Front-End for MediaCAT: A Software Tool to Support Digital Media Research, CSC D94, Summer 2016.
  • Development Project in Computer Science: Database Schema for MediaCAT: A Software Tool to Support Digital Media Research, CSC D94, Summer 2016.
  • Development Project in Computer Science: Learning State-of-the-Art Technologies: Scala and Angular2, CSC D94, Summer 2016.
  • Engineering Large Software Systems, CSC D01, Winter 2016.
  • Principles of Programming Languages, CSC C24, Winter 2016.
  • Research Project in Computer Science: Extending Zotero, CSC D94, Winter 2016.
  • Research Project in Computer Science: Developing Software Tools to Support Digital Media Research, CSC D94, Winter 2016.
  • Introduction to Software Engineering, CSC C01, Fall 2015.
  • Software Design, CSC B07, Fall 2015.
  • Research Project in Computer Science: Developing Software Tools to Support Digital Media Research, CSC D94, Fall 2015.
  • Introduction to Computer Programming, CSC A20, Summer 2015.
  • Research Project in Computer Science: Developing Software Tools to Support Digital Media Research, CSC D94, Summer 2015.
  • Research Project in Computer Science: Improving Netty, a Prover's Assistant, CSC D94, Summer 2015.
  • Engineering Large Software Systems, CSC D01, Winter 2015.
  • Principles of Programming Languages, CSC C24, Winter 2015.
  • Topics in Theoretical Computer Science: Formal Methods of Software Design, CSC D72, Winter 2015.
  • Research Project in Computer Science: Improving Netty, a Prover's Assistant, CSC D94, Fall-Winter 2014-2015.
  • Research Project in Computer Science: Statistical Data Analysis in a Computer Science Education Study, CSC D94, Fall-Winter 2014-2015.
  • Introduction to Software Engineering, CSC C01, Fall 2014.
  • Software Design, CSC B07, Fall 2014.
  • Research Project in Computer Science: Reading course on Formal Verification, CSC D94, Fall 2014.
  • Engineering Large Software Systems, CSC D01, Winter 2014.
  • Principles of Programming Languages, CSC C24, Winter 2014.
  • Research Project in Computer Science: Investigating Quipper, a Quantum Programming Language, Fall-Winter 2013-2014.
  • Introduction to Software Engineering, CSC C01, Fall 2013.
  • Software Design, CSC B07, Fall 2013.
  • Introduction to Computer Science for the Sciences, CSC A20, Summer 2013.
  • Engineering Large Software Systems, CSC D01, Winter 2013.
  • Principles of Programming Languages, CSC C24, Winter 2013.
  • Research Project in Computer Science: Using HOL Theorem Prover to Verify Probabilistic Programs, Fall-Winter 2011-2012.
  • Introduction to Computer Science for the Sciences, CSC A20, Summer 2011.
  • Principles of Programming Languages, CSC C24, Winter 2011.
  • Introduction to Computer Science, CSC A48, Winter 2011.
Before I joined the department of CMS as a faculty member, I taught some courses on St George campus, as a sessional instructor, during my doctoral studies.
  • Course Instructor, Principles of Programming Languages, CSC324, Summer 2010.
  • Course Instructor, Principles of Programming Languages, CSC324, Winter 2010.
  • Course Instructor, Introduction to Computer Science, CSC148, Winter 2010.
  • Course Instructor, Accelerated Introduction to Computer Science, CSC 150, Fall 2009.
  • Course Instructor, Introduction to Computer Programming (a first year Engineering Science course), CSC 180, Fall 2009.
  • Course Instructor, Principles of Programming Languages, CSC324, Summer 2008.
  • Course Instructor, Principles of Programming Languages, CSC324, Winter 2008.