What are you studying at SoC?
I'm a final year Computer Science with specializations in Interactive Media and Visual Computing (maybe). I'm actually in my fifth year because I started school in NUS as a Mechanical Engineering student. However, in my second year, I found myself spending most of my time on a CS module I was teaching (CS1020E) rather than on my own core Mechanical engineering modules. It was then that I realized that I should probably be in a course that I'm truly interested in. With the help of Dr Ang Chuan Heng who was my CS1020E lecturer, who wrote a recommendation letter for me, I managed to change course, yet still retaining my NUS scholarship! I was extremely grateful and thankful to Dr Ang and the school.
Describe your SoC experience.
I enjoy creating applications and websites as I like to build things and solve problems. There are many aspects involved: Software design, interface design, user experience design, etc. Being able to work on all these different aspects simultaneously is a challenge and the experience is very interesting and dynamic.
Solving problems through technology: This was the main reason I changed course to Computer Science: I get to build stuff and solve problems. Many SoC modules are very hands-on and require students to code and create programs. I'm prefer hands-on activities over studying theories, hence I enjoy the way many of the CS modules are taught. Programming is a really powerful skill. After learning programming, I feel that I am empowered to solve problems that I wasn't able to if I didn't know programming. Among the useful things that I have built, there's a cleanliness records app for teachers to keep track of the cleanliness of their students' rooms, and also, NUSMods, which is used by NUS students to plan their timetables and look up module information.
Teaching: I have tutored/will tutor the modules CS1010S, CS1020E, CS3216, CS3217, CP3101B, and these are modules that I am passionate about. I hope to influence my students with my passion and encourage them to explore beyond what is taught in class. In my opinion, teaching has multiple benefits: (i) In the tutorials that I teach, I code the solution on the spot and explain the thought process behind my approach. I have found this skill to be extremely relevant in technical interviews where I have to explain my approach of tackling a technical question to the interviewer as I code the solution out. (ii) Tutoring is a good way to meet other like-minded peers among the teaching team and collaborate on projects, be it school or external ones. (iii) A stable source of income to survive the semester. The renumeration isn't a lot, but it's sufficient.
Working on NUSMods: Ever since Beng (founder of NUSMods) graduated in 2014, I have since taken over the responsibility of improving and working on NUSMods. Over the summer, Beng, Ashray Jain and I, worked on revamping NUSMods and added many more features to it. The most significant new feature was having dedicated module pages which served as wiki pages for NUS modules. Module-related information such as pre-requisites tree, module reviews, CORS bidding history, and timetable data can also be found. I enjoy building useful things that solves peoples’ problems, and NUSMods has given me an opportunity to do that, because it is being used by virtually the whole NUS student population. This keeps me motivated to keep working on it and making it better for the students of NUS. As part of my module project for CS3240, I have extended NUSMods to include friends' timetable saving and NUS venue directory features. Over the December break, I will be working with Chen Minqi on finalizing the features and testing them so that they can be pushed out by Jan 2015.
Creating content for SoC modules: I'm currently preparing for CP3101B and CS3217 next semester, I'll be serving as a tutor for CP3101B and CS3217 under Dr Steven Halim and Prof Sim Khe Chai respectively. Soon, I'm currently in the midst of preparing materials for these two modules. I enjoy creating new materials for modules because it challenges me to design questions that are helpful towards students' learning. I also try to make the nature of the assignment interesting and relevant so that students will be motivated to work on them.
Last semester, the 2048 game was extremely hot, and Prof Ben Leong had the idea of creating a programming assignment out of it. Hence I worked with Emmanuel Goh (who will be next semester's CS1010S Head Tutor) and we produced a 2048 problem set for students of CS1010FC and CS1010S. With some guidelines, CS1010FC and CS1010S students had to program the logic behind a 2048 game for their homework. Students were also encouraged to write a solver for the 2048 game as part of a contest. I recall my CS1010E days where I wrote a simple reversi game in C using an ASCII and command line interface and had a lot of fun doing it. I'm glad that there are such programming assignments these days that break the monotony of standard programming homework.
This year alone, I went on 3 overseas trips and they were all sponsored by the overseas organizations. Facebook sponsored my trip to their HQ in Menlo Park for the Facebook Open Academy program, University of Pennsylvania sponsored part of my trip to Philadelphia for PennApps and NYU Shanghai sponsored by trip to Shanghai for HackShanghai. My respective module lecturers were understanding in allowing me to skip classes for these overseas pursuits. This semester, I spent two weeks overseas and as a result I had to rush to catch up on the work during and after my trips. I had a report for CS3240 due during my return flight from Doha, hence I was rushing to complete the report on the plane from Philadelphia to Doha. My MacBook's battery was running low but thankfully I managed to connect to the WiFi at Doha's airport and submitted my report on time before the battery went flat. It kind of felt like I was defusing a bomb >_<
[Here are some of the things that I think make SoC different than other faculties.] I find that many students in SoC are innately passionate about their work, and willingly spend their weekends and free time exploring new technology and learning new things. I look forward to my classes as I’m innately interested in the content I’m being taught.
We also have undergraduate tutors! I think this is something uniquely SoC (most other faculties require their tutors to be of at least Masters level). There was this semester where my friend was taking a module that I was tutoring and I was taking a module he was tutoring. It can get complicated sometimes, but at the same time, it makes life in SoC more interesting and fun. As tutors, we get to work with professors very closely to run the course. We also have post-exam chillax sessions with some drinks! (:
And, I really think we have the best faculty staff around! Perhaps because of the nature of the course, many of the faculty staff are on Facebook where our profs share interesting posts (tech articles, Nala photos), and interact with the students. The faculty staff make an effort to know their students on a personal level - [these are a few] profs who made an impact on me and taught me some classes that I enjoyed:
- Prof Ben Leong: I owe a lot of my achievements to Prof Ben; he gave me many opportunities to learn and I learnt a tremendous amount of skills (beyond CS) from him. Prof Ben is also extremely popular among the students – he even has a Fan Club!
- Dr Colin Tan: Dr Colin is very cool and personable, and has many interesting stories to share. He's very active on Facebook and shares many cat photos (only Nala).
- Prof Ng Teck Khim: Extremely caring professor that takes the effort to know each and every of his students. He even goes the extra mile and specially gave make-up lessons to students who have missed his class. I have taken two modules (CS3218 and CS4243) under him.
- Prof Zhao Shendong: Prof Zhao is very kind and has given me extensions for his assignments as I was overseas >_<
Also, there's so much welfare for the students: interesting hacking contests, Halloween profile picture contests, and also Prof Gary Tan and Adele giving away meal vouchers during examination week. This makes us feel very taken care of (:
What is the one thing you would change about NUS?
I think more students should try programming! I would encourage everyone to take an introductory class (one of the CS1010-variants) and see if they enjoy it. Programming isn't something every student gets to try because Singapore's educational system doesn't include CS as one of the compulsory foundation subjects in secondary school. Many of my Science students from CS1010S who are extremely talented programmers, gained interested in CS after taking CS1010S. I think that if they got to try programming earlier, they might have chosen CS instead. Although, CS is not for everyone, but you won't know until you try it! Trying programming is extremely simple, all you need is your laptop!
What do you count as your most significant achievements to date?
Prof Ben appointed me as Head Tutor for CS1010S in AY2013/14 Semester 1. In fact, it was my first time tutoring but he trusted me to take up such an important role. It was an eye-opening experience for me as I got to coordinate a course from start to the end. What made it "better" was that it was a new course, there were no materials to reuse and the teaching staff had to port the materials from Scheme to Python. There were also a lot of administrative issues to handle.
People management has never been my forte but I got to hone those skills by being the Head Tutor. My approach was to get to know most of the people (staff and students) on a personal level outside the classroom. The motivation behind this was to better understand each individual's personality so that delegation of work could be more efficient and mismatch of interests could be prevented as much as possible.
The process was painful and coupled with CS3216 (another painful module), I slept very little that semester. However, I was very glad with the outcome of the course and would deem it as a huge success. It left a deep impression in many students' hearts as the toughest, most painful, most time-consuming yet enjoyable freshmen module. In my teaching performance report, positive remarks from my students included: hardworking, responsible, approachable, caring, friendly, efficient, patient and nice.
What is something most people would be surprised to learn about you?
That I have been a student in 4 NUS faculties. In my first year of National Service, I was in Architecture, but I switched to Mech Engineering and Accountancy DDP in my second year of NS, and subsequently, CS. There is also an artistic side of me; I used to write Chinese Calligraphy and do some graphic designing. In 2012, my designs for the Welfare Diary and NUSSU Student Life Tee were selected to be used university-wide!
Is there anything else you'd like to share?
Recently I talked to a few people and found that they were in their course because their parents wanted them to study it because of the supposedly good prospects and not because they are interested in it. I think it's extremely pointless to study something that one has no interest in. In my opinion, extrinsic motivation such as money and prospects will fade off eventually. One has to be intrinsically motivated by what they are studying/doing. If you haven't found something that interests you, keep finding and trying new stuff!
Quick-Fire! Pet peeves?
So many! Where do I start…
- Chewing very loudly when eating.
- Bad coding style. Students, please follow this Python style guide.
- Literally using acronyms in face-to-face conversations: “TBH”, “IMO”, “ASAP”.
- Not pushing in chairs after leaving the seat.
- "k", "kk" and "okok". These are common replies used by many people in instant messaging and it gets to my nerves. “Ok”, “okay”, “okie” sound much better as acknowledgement replies. "k" sounds rude and is a convo-killer, while "kk" and "okok" gives people the impression that they are getting impatient.
All I want for Christmas is…?
Time. Time is the only resource that money can’t buy. How nice would it be if I had 48 hours a day, I can sleep for 24 hours and still have 24 hours to do work.
Tell us who we should we talk to next. Email email@example.com