Teaching at UQ
Making hard ideas workable.
I teach across applied machine learning, programming paradigms, computational theory, and first-year software engineering.
Machine Learning
Mathematical foundations and practical implementation across supervised, unsupervised, and deep learning.
Course detail →COMP3400Functional and Logic Programming
Helping students move from imperative programming to recursion, induction, functional abstractions, and logic.
Course detail →COMP2048Theory of Computing
Rigorous reasoning about automata, formal languages, computability, complexity, and alternative models of computation.
Course detail →CSSE1001Introduction to Software Engineering
Supporting first-year students as they learn programming fundamentals, debugging, object-oriented design, and engineering practice.
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.