Teaching at UQ
Making hard ideas workable.
I teach across capstone software delivery, deep learning and pattern recognition, and first-year software engineering, and have taught machine learning, programming paradigms, and computational theory.
Currently teaching
Design Computing Studio 3 — Build
Jul 2026 — Present
Supervising capstone teams as they take an ambitious concept through to a working, delivered product.
Course detail →COMP3710Pattern Recognition and Analysis
Jul 2026 — Present
Deep learning and pattern recognition in practice, from tensor fundamentals to generative models on real imaging data.
Course detail →CSSE1001Introduction to Software Engineering
Jul 2025 — Present
Supporting first-year students as they learn programming fundamentals, debugging, object-oriented design, and engineering practice.
Course detail →Previously taught
Machine Learning
Feb 2026 — Jul 2026
Mathematical foundations and practical implementation across supervised, unsupervised, and deep learning.
Course detail →COMP3400Functional and Logic Programming
Feb 2026 — Jul 2026
Helping students move from imperative programming to recursion, induction, functional abstractions, and logic.
Course detail →COMP2048Theory of Computing
Feb 2026 — Jul 2026
Rigorous reasoning about automata, formal languages, computability, complexity, and alternative models of computation.
Course detail →Teaching philosophy
Understanding before memorisation.
Whether the topic is recursion, complexity, or gradient descent, I try to expose the structure beneath the procedure. Students should leave with a way to reason, not only a recipe to repeat.