Courses

I've worked as a teaching assistant at both Western University and Simon Fraser University. Below are some of the courses I'd TAed for:


SFU STAT 342 D100 – Introduction to Statistical Computing and Exploratory Data Analysis - SAS (2)

Introduces the SAS statistical package. Data management; reading, editing and storing statistical data; data exploration and representation; summarizing data with tables, graphs and other statistical tools; and data simulation.

UWO CS3340 - Analysis of Algorithms I

This course focuses on the design and analysis of algorithms and data structures, emphasizing the logical reasoning behind algorithm development over rote implementation. Students will explore computational thinking and learn techniques to evaluate algorithm performance, highlighting that Computer Science is fundamentally about problem-solving, not just following procedures.

UWO CS3331 – Foundations of Computer Science

This course explores core computational models and their capabilities, including finite state machines, regular expressions, push-down automata, and context-free grammars. A key part of the course involves studying the boundaries of computation through powerful abstractions like Turing machines. Some problems are solvable in principle but require impractical amounts of time, while others are unsolvable regardless of computational power. By examining these limits, this course provides a deeper understanding of what computers can- and cannot-do.

UWO CS1027 – Computer Science Fundamentals II

This course explores data organization and manipulation, object-oriented programming in Java, and the implementation of abstract data types. Topics include lists, stacks, queues, trees, recursion, and file and memory organization.

UWO CS1026 – Introduction to Computer Science

This course introduces fundamental programming concepts and design using Python, with no prior experience required. Topics include data types, variables, control structures, functions, basic data structures (lists, tuples, sets, dictionaries), objects and classes, modular design, and problem-solving strategies. Examples and assignments span various disciplines to build practical programming skills.