|Steven and his family at Legoland, Malaysia|
What are you working on and why are you passionate about it?
Currently, visualgo.net, which is a tool I built to help with the visualisation of data structures and algorithms through animation. It combines my passion of teaching algorithms and the visualization work that I did back in my PhD days. When more and more CS-based Universities pick up visualgo.net, I think it should reduce the usage of static PowerPoint (or even manual hand-drawn explanations) to explain the operations of basic data structures/algorithms. The online quiz side will also eliminate the need to ask trivial questions in final examinations anymore.
Describe your SoC experience.
[The part I enjoy the most is] when I can make my student's jaw drops after explaining a certain cool concepts in class. [But the part I find the most challenging is] marking... I hate marking so much that I tried to write programs to automate the process :O.
I have been in SoC for 14 years now so there are many [people who have made impressions on me]. But if I have to choose one, I pick Associate Professor Tan Sun Teck who took me as part-time TAs for his CS1102 module in 2005-2008 period, collaborated in ICPC and IOI activities, and recommended me to stay on as Lecturer here.
I like computing so much and being in SoC is a natural fit. I’d probably suffer if I had picked another course of study for my Undergraduate degree.
What do you count as your most significant achievements to date?
Before 2008, I thought training a team that can qualify to ACM ICPC World Finals or get Gold medal in IOI was a super achievement (because I had never done so before as a student). Fast forward 6 years later, I have been to ACM ICPC World Finals 3 times (with our team), prepared a team that won an ACM ICPC Regional Contest 2 times, trained Singaporeans who brought home 4 IOI Gold medals, and all these are still ongoing. The core achievement is a system of training that ensures continuity of these (good) results.
Currently my competitive programming training schedule is like this:
Mar: National Olympiad in Informatics (NOI)
May: Asia Pacific Informatics Olympiad (APIO); ACM International Collegiate Programming Contest (ICPC) World Finals with NUS team 1
Jun: Singapore (SG) International Olympiad in Informatics (IOI) Team Intensive Training
Jul: IOI with SG IOI team
Aug-Sep: Train and select new team members for NUS ICPC teams
Oct-Nov: Typical ACM ICPC Regional Season
Dec: SG NOI training
Then repeat for another year…
[I pursued all this] because I had never won any programming competition during my student days. The turning point seems to be 2011, when SoC decided to keep me as Lecturer here. With more job stability, I can setup that system of training. [It was] heavy work at the beginning to train the first few students. The senior ICPC+IOI students from 2008-2013 era now help me train the current batch of competitors (2014-15). The system is now good enough that I can step to the side and watch it run (and still produce good results).
What did you want to be when you were younger and is that still an interest of yours?
My childhood dream was to be someone who speaks in front of many people and those people listen attentively to me. There are not many jobs in the world where I can do that. Being a lecturer is one such job and yes it is still my interest :).
Is there anything else you'd like to share?
NUS SoC will host the ACM ICPC Programming Regional Contest in Singapore in Sep and Dec 2015. I encourage SoCians, especially CS students [I am planning to have prizes for teams with female member(s)], to form teams of three and join this prestigious programming competition right here in NUS.
Quick-fire! New Year’s resolution?
Do some exercise each week.
Tell us who we should we talk to next. Email firstname.lastname@example.org