Teaching Experience

Last updated 14 Mar 2013

Ngee Ann Polytechnic

School of InfoComm Technology

Lecturer

* As module leader

AY2016-2017

Apr 2016 - Aug 2016

Fundamentals for IT Professionals (FP)

Game Production (GPN)

I'm back to FP, not as a non-teaching ML but as an actual mentor. This is only my second mentee class, and I am determined to avoid all the mistakes I made with my first mentee class and to make a special effort to communicate and connect with them. It was also my duty to advise the new FP ML (hi, Isabel!) on the ins and outs of leading this unique module. Let's just say that I really like my mentee class, which is made up of a bunch of good, sincere, fun-loving kids who don't mind taking advice from a guy who plays way too many board games. Hats off also to Isabel, who took up this challenging role and ran with it, including organizing the trip to Lotus Desaru Beach Resort and making sure that all the mentors were well-informed and on the same page.

I also co-taught Game Production, a new module that is the first prescribed module for the new Games Programming specialization (GPS). The guy pulling the strings was Andrew, who is the senior manager in charge of GPS and also my deputy course chair. It was an interesting, fun experience as we tried some out-of-the-box stuff, including getting the students to submit their CAs via their e-Portfolio, having an assignment that requires producing a board game prototype, and another assignment using Gamemaker to develop a video game prototype. As expected, some of our ideas went over better than others, but we were both pleasantly surprised at the quality of some of the work produced. And the students had fun too, as evidenced by the overall MES score of 5.5. It's a good start for GPS. :)

Oct 2016 - Feb 2017

Advanced Object Oriented Analysis & Design (AOOAD)*

AY2015/2016

Apr 2015 - Aug 2016

Business Statistics (BS)

Problem Solving & Computing (PSC)

Fundamentals for IT Professionals (FP)* - non-teaching

Hoo-boy! This was an eventful semester. I took up one class of BS, the new module PSC, and once again took on the role of non-teaching ML for FP. Let's look at each module one at a time.

The challenge of Business Statistics is how to keep the attention of a whole class of Year 1 students while teaching something as ostensibly dry and boring as mathematics. It was important not to overly focus on the techniques, but to also explain how they were applied in real situations. Unfortunately, I did have one student who failed the class. Being from ITE, his mathematical foundations were rather weak, so he struggled at the start. I paid special attention to him and tried to help him along, and over time he did improve. He even managed a B in one of the tests.

Then he got complacent. He started skipping lessons towards the end of the semester, and even though I warned him that he was still in serious danger of failing, it was clear that he wasn't trying as hard as he was early on. As a result, he did really poorly in his final test and failed by a comfortable margin. It's a cautionary tale.

Next, there's Problem Solving & Computing, which is a new module that I proposed when I was part of the Diploma in IT Review team. The objective is to teach Year 1 students the art of problem solving and logical thinking, which included topics like algorithms, formal logic and logical fallacies. The idea was to use real-world examples and activities like puzzles and games to keep the students' attention while illustrating the concepts at the same time. Some of the things we did were awesome, like using the Cheryl's Birthday puzzle to demonstrate logic, and advertisements to illustrate logical fallacies. I particularly liked the activity where students had to use scientific method to try to figure out how a magic trick worked.

Like any new module, there were some teething problems. A couple of the lessons were rather uninspired, and the topic on formal logic proved to be a difficult one for the students to grasp. On the whole, though, PSC had a pretty good first run, and the students did learn the benefits of thinking logically and objectively. Time will tell if this will make them better problem solvers and IT professionals.

Finally, there's my ML-ship of FP, take two. Personally, I felt that the module was done a lot better than the last run. I called for meetings early and gave everyone plenty of time to finish their assigned tasks, and made it a point to (casually) check in on their progress along the way. We also had a significantly larger budget for the Team Bonding trip this time around as every student had $500 assigned to them for overseas trips, so this time we had a 3D2N trip to Lotus Desaru Beach Resort, which was a huuuuuge improvement. For our trip last year, it isn't much of a stretch to say that Tunjuk Laut is a bunch of huts on a beach. Lotus Desaru, however, is a proper resort, with hotel-quality rooms and all the amenities. Needless to say, the students on the whole were delighted with the trip, where they went through a number of team-building and problem solving activities.

Another addition this year was the use of the Who Knows system, which is a web-based trivia game that I had some students develop (you can read more about on my Student Development page). It was used as a way to get the students to bond with each other in a friendly competitive game while learning some interesting facts about IT. In the last week, we had a Who Knows Grand Finale where each class sent a team to compete against all the other classes, with some token prizes to be won. It was just a nice way to finish off the FP module, and while there were a few technical difficulties along the way, I was very pleased with how it turned out.

Oct 2015 - Feb 2016

Advanced Object Oriented Analysis & Design (AOOAD)*

I'm back to teaching good old AOOAD, but with a twist: we now have White Space Week on Week 5, which is a week where the students will not be having lessons in the classroom. I took the opportunity to learn PowerPoint Mix and record some short video lectures, which I have put up on a YouTube playlist. Realizing that narrated lecture slides are really boring, I took some time to put in a lot more animations, and to insert some (bad) jokes along the way. It took a lot longer than I expected, and I discovered that I sound really awkward when recorded. Anyway, the students seemed to enjoy this change in pace, and the tutorial we had a week later verified that they were able to understand the material. It goes to show that e-Learning can be an effective way to learn.

Update: For some inexplicable reason, my video on Cohesion and Coupling has garnered over 3000 views, of which 30% were from India and 12% were from the USA. None of my other videos have come close to this number of views. Weird.

AY2014/2015

Apr 2014 - Aug 2014

Object Oriented Analysis & Design (OOAD)

Fundamentals for IT Professionals (FP)* - non-teaching

This was my third time teaching OOAD, which has become a pretty stable module. We have managed to find a formula that seems to work well, and the students have been pretty receptive to the applicative nature of the module. Now we need to consolidate by making small incremental improvements where necessary, like tweaking the slides and tutorials and introducing some new and useful activities. We also have two new members in the teaching team, so we're starting to train new blood.

I also volunteered to be the ML for FP even though I was not teaching it. The module needed an overhaul, and it was my duty to make sure that it happens since it is under my section. Well-meaning colleagues warned me that it would be a tough job to manage 14 lecturers while coming up with new and relevant changes to the module, but I was willing to take up the challenge (I am not a clever man).

Well, let's just say that it was a learning experience. Other than making some refinements to the teaching materials, there were two somewhat major additions. One, we invited a number of ICT alumni to give a 2-hour talk to the students in order to inspire them to the possibilities of an IT career. It was an interesting event, and the experiment of getting the students to use Twitter to post their questions seemed to work. This is probably something we will do again next time.

Two, about 100 students and 10 staff went on a 2D1N bonding trip to a little seaside "resort" at Tunjuk Laut, Johor. It's called a resort, but it's not that much of an exaggeration to call it a collection of huts build on a beach. Accommodations aside, the programme was really well facilitated by the professional trainers we hired. The students got to do many activities that focused on problem solving, teamwork and conflict management (and us staff also joined in the fun). We climbed a steep hill, which was definitely easier for the students than for us old fogies. We also visited an Old Folk's Home, which was a real eye-opener for some of the students. In the end, the objectives of team building and bonding were certainly met.

Being the ML for FP taught me the value of being organized and clear in my communication. It was necessary to hold a meeting every week to make sure everyone was on the same page, especially in terms of consistency of marking assessments. I wrote detailed minutes after every meeting, and yet there were still some instances of miscommunication. I had to plan early, and yet be quick on my feet when the unexpected inevitably happens to force a change of plans. I also learned quite a bit about my ability to lead a large team.

Now I can do better as the ML for FP next year. Wait - I'm doing this again next year? Eep.

Oct 2014 - Feb 2015

Advanced Object Oriented Analysis & Design (AOOAD)*

Having been recently appointed as the Section Head for Cloud Computing and Data Analytics, my teaching load was reduced this semester to two classes of AOOAD. As this is the third time I'm teaching AOOAD, it's a case of "more of the same", other than a tweak to the topic of Design Patterns to add more emphasis to Design Principles. We felt that the students still tended to memorize the design patterns without really understanding the principles upon which the were built, so we took steps to address that. All in all, I'm pretty happy with how AOOAD has turned out.

AY2013/2014

Apr 2013 - Aug 2013

Object Oriented Analysis & Design (OOAD)* (Student Evaluation of Teaching)

Fundamentals for IT Professionals (FP) (Student Evaluation of Teaching)

I was the module leader of OOAD, which was taken by 8 classes of students and taught by 4 lecturers. After my successful experiment in making AOOAD open-book, I wanted to do the same for OOAD, but the rest of the teaching team were understandably hesitant. Consequently, I eased them into the idea by making a couple of small changes to the module. Firstly, I removed the MCQ section of the common test. Although MCQs are easy to mark, they are difficult to set properly and tend to test recall (which would be trivial if the test was open-book). We have also found that students score poorly for MCQs, particularly those with a poor command of English. Secondly, I encouraged all questions in the common test and exam to be set "on the assumption" that the assessment is open-book. They were also told to emphasize the understanding and application of concepts in class, and to de-emphasize memorization and rote learning.

The outcomes of these changes were very encouraging. Some members of the team were concerned that the heavy emphasis in understanding and application would cause difficulties to the weaker students, but all students passed the module and the average score increased by about a grade even though the questions were no easier than in previous years. The students still commented that OOAD was a boring and dry topic, but they also stated that they understood the need to learn object-oriented design and systems analysis techniques (which was not a comment commonly made in previous years). Oh, and the MES scores went up by a point from last year, which was nice. :)

The other module I taught was FP,  which is an introductory module that a mentor teaches to his freshman charges. This means that I was a mentor to a class of 20 freshmen, and teaching them topics like professionalism, etiquette, personal grooming, social media awareness as well as basic IT skills such as Word and Excel. The big assignment at the end was to get the students to research on their dream job, and how their diploma in ICT would help them achieve their goal (or not). My mentees range from eager students who are really passionate about a career in IT to bored, cynical and world-weary teenagers who only came to ICT as their 10th choice. To be honest, I feel that I could have done a better job at teaching this module and providing guidance - at some point, I should have a little heart-to-heart with some of my mentees. The topics taught in FP can also do with some tweaking. I wonder if I can work some board games into it?...

Oct 2013 - Feb 2014

Advanced Object Oriented Analysis & Design (AOOAD)*

User Interface Design (UID)

This semester, I was once again the module leader of AOOAD. Other than an extra week of Design Patterns to replace the topic on Testing (that was moved to OOAD), there weren't any significant changes. The module went pretty well, but the MES scores dropped by about half a point, which is still half a point higher than two runs ago. I'm not sure how to explain this, but a number of factors might have contributed, e.g., a new member of the teaching team or a sophomore slump. Personally, I think the students were just a lot pickier this semester. Yeah, that's it. Um.

I also taught UI Design (UID) this semester, a topic in which I have absolutely no experience. Although some appreciation of aesthetics is helpful, it's mainly a topic grounded in behavioural science, human experience and common sense. It was a fun experience to teach something less technical and more design-oriented. One side-effect I've noticed is that the more I immerse myself into UI design, the more I notice bad designs in everyday life. UID: the topic that makes you criticize everything. I highly recommend it. :)

AY2012/2013

Apr 2012 - Aug 2012

Object Oriented Analysis & Design (OOAD) (Student Evaluation of Teaching)

Business Statistics (BS) (Student Evaluation of Teaching)

In my first semester as a polytechnic lecturer, I taught two modules. OOAD is an essential 2nd-year module teaching systems design and analysis for IT students, while BS is an essential mathematics module for 1st-year Financial Informatics students. I spent the semester mainly getting used to the Ngee Ann Polytechnic system and trying to find my teaching mojo. One thing that struck me is how passionate all my fellow lecturers are about educating the students in the proper manner. I look forward to absorbing the wisdom of all my colleagues in what I hope will be many years in Ngee Ann Polytechnic.

Oct 2012 - Feb 2013

Advanced Object Oriented Analysis & Design (AOOAD)* (Student Evaluation of Teaching)

Games Programming (GP) (Student Evaluation of Teaching)

I was entrusted with the module leader role for AOOAD, which is an advanced version of OOAD (duh). Since I only had two classes of students, I decided to experiment with making all the assessments open-book (you can read more about this in my blog post). I think the experiment was largely successful, and I am confident that the students achieved a good understanding of the material by the end of the module. The Module Evaluation Survey (MES) scores went up by over a point from last year, which was nice. :)

The other module is GP (which I co-taught), which as the name implies involves making games. We used C# and Microsoft XNA, teaching concepts like the game loop, collision detection, vectors, matrices and particle effects. For me, the highlight was the playtesting session during the Open House where we asked members of the public to playtest the students' early prototypes. When we decided to do this, we feared that there would be no takers and the playtesting booth would be a ghost town. To our delighted surprise, it was very well-received and each game garnered over 100 survey responses. I think the students also enjoyed the experience of seeing members of the public play and enjoy their games.

DigiPen Institute of Technology Singapore 

Department of Computer Science

Assistant Professor

Jul 2008 – Jul 2009

In my year in DigiPen, I prepared and delivered courses and course materials (including lectures, programming assignments and quizzes) for the above courses. My job was to teach programming the DigiPen way, which is to teach pretty much everything in all its gory detail. The first lecture included topics like how code is converted into an application via parsing, compilation and linking; the difference between high-level, low-level and assembly languages; and how each statement is translated into instructions that affect registers. This is all done before "Hello, world." We also fully explain concepts like expressions, tokens, precedence and associativity, pointers, and of course object-oriented concepts. Oh, and the student get tonnes of programming exercises. Seriously.

The courses I taught were definitely tough and not all my students passed, but those who did acquired an in-depth understanding of programming that is so highly valued by the games industry. To this day, I feel that the DigiPen model of teaching programming by including all the fundamental concepts produces the best programmers. There is a reason that DigiPen is a world leader in games education: they do not compromise in the quality of their syllabus, and they don't mind failing students that don't make the grade, although I feel that they sometimes take it too far. There have been modules that regularly fail over 50% of the students, which to me indicates that either the module is not well-designed or not well-taught.

I look back on my time in DigiPen with sincere fondness. I consider all of my students to be my friends (both literal and Facebook), and I still keep in close touch with several of them. I am also delighted to note that many of them have found jobs in the games industry.

Nov 2008 – Dec 2008

ProjectFUN Workshop

I co-conducted two ProjectFUN Workshops intended for students aged 13-16 years, although a pair of 40+ parents did attend one session. The attendees were taught how to create their own 2D games using FunEditor, which is a DigiPen-developed game creation tool similar to Gamemaker but using C++ instead of a scripting language. Each workshop lasts two weeks. In the first week, we show the students how to use FunEditor by guiding them through the creation of mini-games such as a Bricks game (think Breakout), a side-scrolling shooter and a platformer. In the second week, we let the students loose to implement any game that they want.

Some of the games created by the students over the space of two weeks (one, really) were extremely impressive. One fellow managed to make a stick figure Street Fighter-esque fighting game that was just amazing, complete with two playable characters with their own cool combat moves (his identical twin brother's third-person shooter game wasn't bad either). This workshop is a testament to what bright-eyed youngsters can achieve if they are given free rein to express their creativity with a bit of guidance when necessary. Also, making an fun, impressive game doesn't require a multimillion budget and a huge programming team.

National University of Singapore 

School of Computing

Postgraduate Teaching Assistant

Jun 2006 – Dec 2006

CS1231Y Discrete Structures (student evaluation report)

CS1231Y Discrete Structures was my first teaching experience (other than teaching chess to the Raffles Girls' School chess team when I was in secondary school, but that's another story). As a TA, I was in charge of going over the tutorial questions in class and explaining concepts like sets, functions and mathematical induction. Discrete Structures has a reputation of being a tough module because its highly conceptual nature makes a stark contrast from secondary school math (which involves quite a bit of rote learning). We have gone from "apply this formula" to "apply this concept, but first, figure out which concept to apply." It's not surprising that many of the students had problems adapting.

While teaching this module, I took pains to explain concepts in terms that the students could understand, which is not always easy to do for a theoretical math module (e.g., I used a Star Wars analogy to explain different types of relations, as recounted in my teaching statement). Also, the link between math and computer science isn't always clear, so the students couldn't quite see why they needed to know proofs by contradiction (for example) to be a computer scientist. Hence, there was a problem with motivation. Nonetheless, I learnt a lot from the experience, not least of which is the fact that I like to teach!

Side note: The professor-in-charge of the module was Prof Chionh Eng Wee. In the middle of the semester, Prof Chionh was diagnosed with cancer. As a result of his treatment, I took up a larger role in the running of the module (I was heavily involved in marking the final exam, for example), and I was more than happy to help him out. Honestly, I was honoured that he trusted me enough to give me more responsibilities.

Prof Chionh strikes an eccentric figure with his round glasses and his trademark bermudas and sandals. He is as easy-going as they come, but with a quiet integrity that compels him to stand up for his beliefs. Oh, and he's amazingly clever. He once set a 15-question true/false quiz on functions, and three of the students achieved a score of 2/15. Calculate the probabilities and chew on that for a minute.

After the module was completed and we parted ways, it seemed like he was responding well to treatment because he was still in his usual high spirits. I also saw him around the campus in late 2008 and he told me that the treatment was complete, so I really thought he had beaten the cancer. 

While writing this in 2013, I googled him and am saddened to discover that he had succumbed to cancer in September 2009. RIP.

Jan 2007 – Jun 2007

CS1102C Data Structures and Algorithms (student evaluation report)

CS1102C Data Structures and Algorithms is a programming course for Engineering freshmen. Most of the students have only had one semester's worth of programming under their belt, and they were being thrown into a world of linked lists, recursion and graph algorithms. Motivation was a significant challenge since these students wanted to be engineers, not programmers.

In explaining algorithms, I found that I was most successful when I can show how the algorithm works visually. It was much easier for the students to understand how an AVL tree works by showing them what happens step by step using Powerpoint animation than if I just showed them the code. It was time-consuming to produce the slides, but well worth the effort.