Teaching
Teaching Experience
CISC 365: Algorithms
Principles of the design, analysis, and implementation of efficient algorithms. Case studies drawn from a variety of areas illustrate divide-and-conquer methods, the greedy approach, branch-and-bound algorithms, and dynamic programming.
Instructor, CISC 365: Algorithms, Queen’s University, Fall 2026
- Co-taught with Professor Yuanzhu Chen (103 students)
CISC 102: Discrete Structures
An introduction to the fundamental mathematical structures and reasoning techniques used in computer science. Topics include propositional and predicate logic, set theory, functions, sequences, relations, and graphs. The course emphasizes algorithmic thinking, combinatorial analysis, and proof construction, providing the theoretical foundations for later study in algorithms, data structures, and discrete system design.
Instructor, CISC 102: Discrete Structures, Queen’s University, Winter 2026 [Syllabus]
- Taught to a class of 116 students
Instructor, CISC 102: Discrete Structures, Queen’s University, Fall 2024
- Taught to a class of 146 students
Instructor, CISC 102: Discrete Mathematics, Queen’s University, Fall 2022
- Co-taught with Professor Selim Akl (418 students)
- Delivered lectures and managed student inquiries
Course evaluations (QSSET) are available upon request.
Teaching Assistant Experience
Teaching Assistant, CISC 204: Logic for Computing Science, Queen’s University, Fall 2025
Teaching Assistant, CISC 335: Computer Networks, Queen’s University, Winter 2022, 2023, 2024, 2025, 2026
Teaching Assistant, CISC 452: Neural and Genetic Computing, Queen’s University, Fall 2023
Teaching Assistant, COMP 2002: Data Structure, Memorial University, Winter 2021
Evidence of Teaching Effectiveness
Letters of Appreciation from Students
Click an image to view it at full size.
Teaching Philosophy
I envision my teaching philosophy as a Greek temple, where the roof represents inclusive, reflective, and applied learning, and three pillars uphold its foundation.

Three Pillars:
- Student-Centered Learning through Differentiation
- Respect student diversity with tiered learning paths
- Use formative assessments for real-time feedback
- Offer assessment choice to recognize diverse strengths
- Reciprocity of Teaching and Learning
- Create co-learning moments where students share insights
- Use “Muddiest Point” feedback to adapt instruction
- View teaching as continuous dialogue
- Integration of Theory and Practice
- Employ case-based learning with real-world scenarios
- Conduct live problem-solving sessions
- Map conceptual connections between proofs and algorithms
Last updated: · Privacy

