Teaching

Teaching at Western University since 2023

Course: Introduction to Machine Learning, DS 3000

Three optimizers descend the same loss surface.

Training a model amounts to descending a loss surface. Here SGD, Momentum and Adam start from the same point; how and why their paths differ is a central lesson of his machine learning course.

See the course

Step 0. Loss: Adam 0.00, Momentum 0.00, SGD 0.00
Same surface, same start point, three optimizers.

Courses

Since 2023, he has taught thirteen course codes across eight subjects in the Software Engineering, AI Systems Engineering and Electrical and Computer Engineering programs. Introduction to Machine Learning and Networking have public course pages, with lecture slides for enrolled students.

Each ribbon runs term by term, from Fall 2023 to Fall 2026: taught teaching now

Artificial intelligence and machine learning

Four subjects

  • Introduction to Machine Learning

    Teaching now

    DS 3000 undergraduate

    Open the course page

    Teaching in Fall 2026

  • Reinforcement Learning

    AISE 4030 undergraduate

    Taught in Winter 2026

  • Advanced Image Processing and Analysis

    ECE 4438 undergraduate, ECE 9022 and ECE 9202 graduate

    Taught in Winter 2025

  • Agentic AI Engineering

    New course

    Graduate, M.Eng.

    Designing, operating and evaluating governed agentic workflows: agents and subagents, reusable skills, tool integration through the Model Context Protocol, guardrails, and coordination across agentic platforms, applied across the engineering implementation lifecycle.

    First offered in Winter 2027

Networks, cloud and software systems

Five subjects

  • Networking: Principles, Protocols and Architecture

    Teaching now

    ECE 4436 undergraduate, ECE 9303 graduate

    Open the course page

    Taught in Fall 2023, Fall 2024 and Fall 2025; teaching in Fall 2026

  • Cloud Computing

    SE 4455 undergraduate, ECE 9016 graduate

    Taught in Winter 2024, Winter 2025 and Winter 2026

  • Database Management Systems

    SE 3309 and AISE 3309 undergraduate

    Taught in Fall 2023 and Fall 2025

  • Software Project and Process Management

    SE 3351 undergraduate

    Taught in Fall 2024 and Fall 2025

  • Scripting Programming Languages

    SE 2202 undergraduate

    Taught in Fall 2024

Teaching approach

His teaching connects theory with industry practice in an inclusive, student-centred classroom. Lectures pair fundamental concepts with hands-on work in the tools of the field, and most courses culminate in a major team project that students defend in a live demonstration.

Active participation

Class polls, real-time quizzes and collaborative problem solving keep every student involved, with immediate feedback in each lecture.

Theory connected to practice

A decade of industry experience supplies real examples and lessons learned, and course content is updated regularly to reflect current technologies.

Hands-on work in professional tools

Neural networks are trained live in lecture, networking students analyze real traffic in Wireshark, and cloud computing students build on Google Cloud.

Team projects, defended live

Teams deliver a working system in phases aligned with the lectures, and must be able to explain any line of it during a live demonstration.

Generative AI, used openly

Students learn to use AI tools effectively and responsibly, and remain accountable for everything they submit.

Mentorship

Support extends beyond the classroom, from guidance on projects and careers to recommendations for students pursuing graduate study.