teaching

Portfolio of courses taught.

ECE750T: Topics in Computer Software: Responsible AI

(Fall 2026)

Recent advances in machine learning—driven by scalable infrastructure and algorithms that learn from massive datasets—have made AI ubiquitous. These systems exhibit a wide variety of capabilities and use cases, from high-stakes decision-making to content generation and even “agentic” software, and their failures can cause harm at scale. How do we build machine learning systems that are worthy of the trust we place in them? Does building AI responsibly differ from responsible engineering design principles at large? This course tackles these questions by surveying several technical approaches to building trustworthy AI, including algorithmic fairness, differential privacy, machine unlearning, and adversarial robustness, alongside sociotechnical concerns such as measurement validity, algorithmic auditing, and AI policy. A recurring theme is that responsible AI is not merely a technical property of a deployed system, but a consideration that must inform the entire design process—from data curation and training to evaluation and governance.

ECE457B: Machine Learning

(Fall 2026)

Fundamentals and recent advances in computational intelligence. Building accurate models with collected data or rules bases. Model-based prediction and classification. Concepts in machine learning, supervised and unsupervised learning, artificial neural networks, deep learning, feature extraction, feature selection, dimensionality reduction, classification and clustering, support vector machines. Approximate reasoning based on fuzzy set theory. Performance metrics to assess the validity of produced models. Multiple examples and case studies such as autonomous driving, intelligent manufacturing, natural language understanding, speech recognition, computer vision, stock market prediction, disease early detection and diagnosis.

ECE493/657D Neural Networks and Deep Learning

(Winter 2026)

Recent advances in neural network architectures and training algorithms have catalyzed significant breakthroughs in image classification, machine translation, protein folding, and beyond. This course follows the evolution of neural networks and their training algorithms, from the introduction of the perceptron in the 1950s and 1960s to the advent of ChatGPT in the 2020s. Topics covered include key training approaches such as maximum likelihood, contrastive learning, and diffusion modeling, as well as significant architectures such as convolutional nets, graph nets, and transformers. The course will also discuss how neural nets can learn useful “representations” of data, and explore recent trends in training models on web-scale datasets.

ECE406: Algorithm Design and Analysis

(Winter 2025, Winter 2024)

Design and analysis of efficient, correct algorithms. Advanced data structures, divide and conquer algorithms, recurrences, greedy algorithms, dynamic programming, graph algorithms, search and backtrack, inherently hard and unsolvable problems, approximation and randomized algorithms, and amortized analysis.

CSC384: Introduction to Artificial Intelligence

(Winter 2022 at University of Toronto)

Broad introduction to the foundational concepts of AI. Search algorithms, complexity analysis, constraint satisfaction, knowledge representation, probability and uncertainty, graphical models, games.