Before joining UT, I was a sessional instructor and TA at various universities in Canada. As I’m working as a graduate research assistant with my advisor I’ve not been involved with any teaching at UT, but I hope to one day find the excuse to return to the front of the class.

Ancient history

MacEwan University

At MacEwan, I was an instructor in the Department of Computer Science. I redesigned CMPT 220: Unix, Scripting, and Other Tools. My goal was to push as many topics usually relegated to upper-level operating systems courses into a de facto introductory course with minimal prerequisites. It turns out: we were able to dig deeply into concepts as diverse as the process lifecycle, signals, containerization, binary exploitation, and metaprogramming using the usual straightforward Unix primitives! The course material was well-received by students, and even made the rounds on certain colour-coded tech aggregator websites, which was pretty cool to see.

I also developed a streamlined summer curriculum for CMPT 201: Programming Methodology, the introductory C language course. CMPT 201 has the unfortunate reputation among students of being the “weed-out” course, and the accelerated schedule in the summer term doesn’t help student learning nor anxiety. To that end, I dropped the ancient, overpriced textbook in favour of a free, modern C resource, corrected numerous inaccuracies in the existing course material, and exised any material that stood in the way of students becoming formidable systems programmers.

Lastly, I worked with the instructor of CMPT 360: Introduction to Operating Systems on a new sequence of labs and assignments.

University of Toronto

I was brought on to teach a last-minute summer offering of CSC324: Principles of Programming Languages at the University of Toronto (a different UT!). This was my first time teaching a course entirely on my own; but, seeing as how feedback from students included “You are one of the best professors I had in three years at the U of T”, I like to think that the university made a good choice!

UBC

For UBC’s then-brand new Racket-based introductory CS course, I taught lab sessions, held scheduled office hours, and on occasion, lectured during instructor absences. For my work I was awarded a graduate TA award by the University (a gold star!)