Teaching

Here are some of the recent courses that I have taught as an instructor. Some of these are recurring courses so the schedules are likely to be updated according the term. Inside you'll find weekly topics and some references to further understand the concepts. It is my hope that these will be useful for my students even when they complete the courses, or for those of you who are interested in any of the topics.

Lower Division Undergrad Courses


MACM 101 Discrete Mathematics I

Undergraduate course, Simon Fraser University, School of Computing Science, 2025

A foundational course in mathematics covering basics in discrete mathematics to prepare students for a wide range of courses that require math (e.g., counting, logic, proofs, represetation of numbers).

CMPT 263 Introduction to Human-Centered Computing

Undergraduate course, Simon Fraser University, School of Computing Science, 2024

This course teaches an important area of CS that people often overlook – creating computational artifacts that are useful, usable, and meaningful for human users. This is a relatively new course but many post-secondary institutions, e.g., UToronto, UWaterloo, UBC, and StanfordU, are already having similar courses in their CS program.

CMPT 225 Data Structures & Programming

Undergraduate course, Simon Fraser University, School of Computing Science, 2024

One of the most important courses in the CS program. In SFU this is a pre-requisite course for over 20 CMPT courses and it is for good reasons: it teaches some of the most fundamental concepts in CS (e.g., abstract data types, algorithms, data structures) that are used in many advanced CS topics; it also teaches some programming techniques so students can comfortably implement those concepts and write their own programs. C++ is the programming language of choice (some versions use Java, goal is to have some form of OOP).

CMPT 120 Intro. to CS & Programming I

Undergraduate course, Simon Fraser University, School of Computing Science, 2024

An introductory course on programming and some CS-related concepts (e.g., history, problem-solving). Python is the programming language of choice.

CMPT 125 Intro. to CS & Programming II

Undergraduate course, Simon Fraser University, School of Computing Science, 2023

An continuation from CMPT 120 on programming and some CS-related concepts (e.g., history, problem-solving). Introduces students to some common data structures (e.g., stacks, queues, linked lists, trees) and algorithms (e.g., Mergesort, Quicksort). C and C++ are the programming languages of choice.