Balancing rigor and intuition is both enjoyable and essential in teaching and learning. I believe this balance is best developed through productive struggle: wrestling with difficult concepts, testing edge cases, and working through uncertainty. Rigorous engagement with theoretical foundations helps us reason precisely, question assumptions, and judge whether a conclusion is truly justified. At the same time, building an intuitive understanding helps us remember key ideas, connect them across different contexts, and apply what we have learned to new problems, often well beyond the scope of a course.


CMPUT 204: Algorithms I

CMPUT 676: Optimization and Decision-Making under Uncertainty