My work spans two connected areas: pedagogical research and technology that make
learning more effective, accessible, and evidence-based, and decision support
systems that combine optimization with expert reasoning to help people decide well under
uncertainty. In practice, this includes course-aware AI support, interactive, parallel
coursework, gamified learning, and academic planning and allocation tools.
“Education is the kindling of a flame, not the filling of a vessel.”
- Socrates
About
I hold a Ph.D. in Software Engineering from the University of Calgary, where my work concerned decision
support systems for component-based software development. I am currently an Associate Professor of Teaching in
Computer Science at the University of British Columbia, Okanagan campus.
My research concerns decision support systems: the study and development of methodologies that integrate
concepts and techniques such as optimization methods and expert systems in order to support informed
decision-making. These methodologies are intended for decisions taken in complex, uncertain, or dynamic
environments.
My current interest is the use of such systems to foster quality and creativity in higher education. I
have taken part in several initiatives investigating techniques and technologies that improve current
practice in post-secondary learning; see, for example,
this article
and LearnCoding. The aim throughout is
to improve the learning experience of
students.
Projects that interest me include tools that help students understand and analyze complex concepts such
as algorithms and data structures, and games or applications that improve student motivation and
success. Further ideas are collected here. If you have an idea for
improving teaching and learning practice at UBC Okanagan or elsewhere, I would be glad to discuss it and
to investigate ways of securing the resources to implement it.
Earlier in my career I developed decision support techniques for software engineering: an
approach integrating expert systems with optimization to analyze the impact of software component
mismatches across different systems, and a technique for generating diversified solution alternatives
for optimization-based decision support.
Selected Projects
EduAI Lab
Course-aware AI support built on your own class materials.
A research and development initiative focused on using AI to improve teaching and
learning. It builds course-aware AI systems that connect generative AI models with
actual course materials through retrieval-augmented generation, so students and
instructors receive context-specific academic support rather than generic chatbot
responses. The lab develops tools for tutoring, question generation, grading
assistance, and study support, within a secure UBCO-hosted environment designed to be
accessible, pedagogically aligned, and integrated into university courses.
LearnCoding with Parallel Coursework
Instantly switch a lesson’s content between languages to compare and learn.
A learning platform whose content can be personalized to a learner’s needs.
Learners switch the customization settings to compare and contrast content:
syntax such as Java against Python, or discipline such as mathematics against
physics.
Course Planner
Visual degree planner with conflict-free scheduling and up-to-date course insights.
A visual, web-based degree-planning platform. Students drag and drop courses across
planned years and terms, see missing pre- and co-requisites immediately, and receive
soft off-term warnings with recency-weighted offering forecasts. Multiple plans can be
explored and saved through what-if analysis. Once a term is ready, its courses export
to the Term Scheduler, where a visual section picker, seat-alert tracking,
auto-optimized timetables, and side-by-side comparison make building a conflict-free
week straightforward. The Course Insights pane adds prerequisite graphs, historical
offering heatmaps, and multi-year grade-distribution charts, so decisions are informed
before registration in Workday.
Future work includes optimization-based recommendation: suggesting
courses for the coming term from a student’s progress and degree requirements,
and suggesting sections from their schedule preferences and the term’s
offerings.
Refer to the
official calendar to
verify degree requirements and course prerequisites.
COSC · Fall 2026
ApplicationsAssignmentPost-assignment
Lab 1
Lab 2
Lab 3
You’re confirmed for Lab 2, see you Monday!
Thanks, I’ll be there!
TA Management System
Streamlines TA hiring and allocation for UBCO departments.
TAMS streamlines the TA allocation process at UBCO, guiding each role through its core
tasks. Administrators define terms and discipline scopes; coordinators create
sessions and manage assignments; instructors submit TA preferences and post-term
reviews; students apply for positions, keep their schedules current, and handle
post-acceptance changes. The system enforces strong password security, offers secure
account recovery, syncs course data from Workday, checks schedule conflicts
automatically, and records audit, security, and system events for oversight.
Interactive help provides role-specific guidance on workflows, permissions, and
post-accept processes.
Future work includes an optimization-based decision support system allocating
TAs to courses and labs using linear integer programming under soft and hard
constraints.
Still experimental; not an official process.
Other projects
Yellowknife Makerspace
Membership
and training system for a northern community makerspace, with income-sensitive membership tiers
and Universal Design features to support equitable STEM access (Mitacs, 2024-2026).
NuTeach Learning
A
Canvas-integrated platform using gamification and reward mechanics to stimulate learners’
intrinsic motivation. nuteach.ok.ubc.ca
Data Playground
Data-structures
learning through gamification and visual aids: four structures, programming challenges, and
animations of structures as programs execute. dataplayground.ok.ubc.ca
(via UBC VPN)
ULearn
Machine learning and
adaptive techniques producing quizzes shaped by collaborative student performance.
ulearn.ok.ubc.ca (via UBC VPN)
Generative AI in Education
Studies
of generative AI in support of learning: current trends, AI as tutor, AI for generating and
answering questions. Some results published; further tools to follow.
Equity, Diversity, and Inclusion
Studies identifying and addressing equity, diversity, and inclusion issues in Computer Science
at UBC Okanagan and elsewhere. Published articles available soon.
I have also coached ACM ICPC teams since 2016, including UBCO’s first
advancement to the North American finals (2020) and a 2nd-place national ranking (2025), and serve as
faculty advisor for the Coding Club.
Golden Apple Award, Structuring the Course Effectively (UBCO Wellness & Education, 2019)
Provost’s Teaching Honour Roll (UBCO, 2017/2018)
Teaching Excellence Award (QSCU, UBCO, 2018)
Also nominated four times for the Golden Apple Award: Safe Classroom Environment, I
AM Accessible, Delivering Material Effectively, and Supporting Learning Outside Classroom.