Teaching 



"The mediocre teacher tells. The good teacher explains. The superior teacher demonstrates. The great teacher inspires."  William Arthur Ward 
As such, I strive to inspire my students by
I have taught a variety of courses over the years, from introductory to advanced, from one whose enrollment was 17 to another that exceeded 300. Here's a quick look at some of them.


CS4340 Digital Special Effects (AY2009, AY2010, AY2011) [Formerly called CS5245 Vision and Graphics for Special Effects, AY2006] This is a fun course taken by senior undergraduates that teaches basic techniques in creating Visual Effects (VFX). Like those in Hollywood movies. Students learn about chroma keying, compositing, matchmoving, and inserting CG objects, etc. The course culminates in a final VFX project, in which students show off their creative and technical skills. Some examples:


CS1231 Discrete Structures (AY2012) This course is typically taken by CS freshmen in their first semester. It introduces the basic math and proof techniques required in many advanced CS courses, such as graph theory, sets, relations and functions, cardinality, and so on. As such, this tends have large enrollments. The course is not easy for many students, because it takes a more axiomatic approach which students (who are typically trained in the procedural approach) are not used to. Besides the hard core stuff, students also get to explore a fun math topic, and to explain it via a multimedia presentation. Some examples:


CS1101 Programming Methodology (Java) (AY2002, AY2003) CS1101S Programming Methodology (Scheme) (AY2004, AY2005) Learning to program a computer is a key skill for any CS student; and even for nonmajors, this is a useful skill to have. This course teaches the basics of programming using Java or Scheme. Topics covered include: recursion and iteration, control structures, data abstraction, objectoriented and functional paradigms. There's even a lab assignment to program the Lego mindstorm robot, and an optional competition for students to pit their robotic creations against one another. Robots draw letters of the alphabet, or something of their own choosing.
This use of Lego robots was an innovative pedagogical move, and was featured in an article by the NUS Centre for Development of Teaching and Learning. 

CS5240 Theoretical Foundations in Multimedia (AY2002  AY2005, AY2009  AY2012) The course is meant for first year Ph.D. students in the Department of Computer Science, preparing them for research in multimedia. As its title suggests, the course covers many fundamental mathematical techniques commonly used to analyze and solve multimedia research problems. Topics covered include: Singular Value Decomposition, Discrete Fourier Transform, Maximum Likelihood Estimation, Wavelets. Our course was featured in the inaugural issue of the SIGMM Education column because it addressed a need that seemed to be common across many graduate schools  that of "leveling up" grad students for research in multimedia. A sample of my lecture notes and a homework assignment may be seen here: Linear Algebra notes, Eigenface assignment. 

Updated Jan. 2013 