Teaching Overview

Undergraduate Teaching

I have principally taught undergraduate courses on beginning software and digital hardware and computer architecture.  At the University of Toronto, this included the courses APS105 (Computer Fundamentals), ECE 241 (Digital Systems), ECE 253 (Digital and Computer Systems).  I am currently teaching ECE 243 (Computer Organization).

While teaching APS105 - an introductory C programming course - I hosted a plenary lecture in which guests spoke about the impact of software in different fields.  A selection of those lectures can be found here.

In 2018, I created and taught a new course on Machine Learning, ECE 324, Introduction to Machine Intelligence; 

That course was used as the basis for APS 360 - Applied Fundamentals of Deep Learning

Graduate Teaching

ECE 1786, Creative Applications of Natural Language Processing.  A new course (first taught in Fall 2022) on Neural-Network style of Natural Language Processing, based principally on Transformers and GPT/chatGPT-style networks.  The previous version of the course, 2022, can be found here.

For the prior 10 years, I created and taught an inter-disciplinary graduate-level course, ECE 1778, Creative Applications for Mobile devices.   This course was open to all graduate students at the University of Toronto, and its purpose was to prototype new applications in many different fields of discipline. 


The Edward S. Rogers Sr. Department of Electrical and Computer  Engineering,

Faculty of Applied Science and Engineering, University of Toronto