This page provides a short summary of my teaching at NTU, including the courses I have taught since joining NTU in 2006 and the principles that guide my teaching.
UG = undergraduate; PG = postgraduate.
My guiding principle is to teach students how to think, not how to memorise. In computing and data science, tools, frameworks, and platforms change quickly; what remains valuable is the ability to reason clearly, learn independently, and solve unfamiliar problems with others.
This philosophy aligns with NTU Education's 3 Cs. I aim to develop Cognitive Agility by helping students move between concrete problem statements and abstract structures, Character by cultivating care and responsibility in how they learn, and Competence by combining conceptual clarity with deliberate practice and feedback.
Across my modules, I emphasize two interrelated pillars: interdisciplinary thinking and experiential learning. I make explicit how core ideas travel across domains such as algorithms, optimization, geometry, AI, and human–computer interaction, and I build iterative cycles of try → receive feedback → refine so that students learn through doing, reflecting, and improving.
I have graduated 14 PhD students as sole or main supervisor and 4 as co-supervisor, and I am currently supervising 10 PhD students.