Teaching

University of Waterloo

CS 447/647 / ECE 453: Software Testing, Quality Assurance, and Maintenance

Undergraduate & Graduate Course | Winter 2024, Winter 2025

Introduces students to systematic software testing methodologies, automated quality assurance tools, and software maintenance frameworks for large-scale systems.

SE 465: Software Testing and Quality Assurance

Undergraduate Course | Winter 2024, Winter 2025

Covers fundamental concepts of software testing, including test case design, unit testing, structural coverage, automation tools, and static analysis.

SE 464: Software Design and Architectures

Undergraduate Course | Fall 2024

Explores software architecture paradigms, design patterns, UML modeling, refactoring strategies, and component-level software design principles.

ECE 750: Mining Large Software Data

Graduate Course | Winter 2025

Advanced seminar investigating modern techniques for extracting, preparing, and modeling data from large software repositories, execution logs, and system metrics.

Concordia University

SOEN 691: Mining Large Software System Data for DevOps

Graduate Course | Winter 2016, Fall 2017, Winter 2019, Winter 2020

Covers state-of-the-art mining techniques applied to logs, telemetry, and source code repositories to support software maintenance and DevOps workflows.

SOEN 345: Software Testing and Quality Assurance

Undergraduate Course | Winter 2020

Focuses on software quality control processes, testing methodologies, test automation, and validation standards.

SOEN 390: Software Engineering Team Project

Undergraduate Course | Winter 2018, Winter 2019

A project-based course where student teams design, develop, and deploy a large-scale software system, practicing modern software lifecycle standards.

SOEN 341: Software Process

Undergraduate Course | Winter 2016, Winter 2017, Winter 2018

Introduces software process models, agile practices, project management tools, requirements elicitation, and version control principles.

Queen's University

CISC 880: Engineering Ultra-large-scale Systems

Graduate Course | Winter 2015

Explores architectural styles, operational challenges, logging architectures, and performance engineering practices for ultra-large-scale software deployments.