Wednesday, May 20, 2009

Understand Life, Reject Dogma, Embrace Common Sense

"SINGAPORE needs people with a sense of the aesthetics and not just people who get straight As in school, said Minister Mentor Lee Kuan Yew. "

Wei Man's response, "Say that again?! My life will be different if you thought so ten years ago."

Wei Man is one of the most outstanding students I had this past Semester and the CS3216 Blog Queen. When I read her response, it bothered me. It also reminded me of this Facebook comment conversation I had with some former CS3216 students a couple of weeks ago about scholarships for foreign students.

My question to Wei Man: why should your life be different if the Minister Mentor thought differently ten years ago? He's not your grandfather what.

First, I am surprised that people seem to think that this news reports is saying anything new. Do people think that the Minister Mentor just woke up recently and decided that we needed more than students with straight As?

If people will read carefully, the example of the two Japanese landscape architects happened during the "Singapore's early years". Translation: the MM figured this out 40 years ago. :-)

Frankly, the fact that Singapore (or any country for that matter) needs more than just students with straight-A's pretty common sense isn't it? Really doesn't take a genius to figure it out. Why then is Wei Man surprised at this latest press report?

For some strange reason, people seem to have this impression that the Government (whatever that means) "demands all its citizens to be a jack of all trades and good in everything" (to quote Wei Man). I was like "Huh? Since when?" :-P

I'm a systems scientist. A system is a entity consisting of a collection of smaller components. Systems are interesting because they often exhibit behaviour that is different from its components. Futher more, one way of understanding systems is to understand how the individual components work and interact. Society is one such system.

One criticism I have of our people is that they don't try to understand and appreciate the "laws of nature" but instead blame all their failings on "the system" or "Government". What the heck does that mean?

Let's take two examples illustrating the sense in the madness we call the "system".

First, why do we use grades for university admission. Answer is very simple: because there is a limited amount of resources (university places) and we need to allocate them in some "fair" way. Lottery wouldn't do.

Second, why the apparent "fixation" on grades in the civil service? Since I'm an ex-civil servant, I can say that there's no "fixation" on grades. It's all quite practical practical.

Again, there's limited resources, either scholarship places or jobs and there's a need to shortlist the candidates efficiently. Interviewing EVERYONE is NOT an option by a long shot.

Why are Second Uppers paid more? Because the private sector also pays them more. If the civil service doesn't pay more, it can forget about hiring the better graduates. I wish that people can understand a little more about labour markets, about Economics and realize that grades are what's known as a signal.

Line managers in the civil service are no different from those in the private sector. They hire people to do their work and minimize their own grief. If better grades do not translate to better workers, they hire for what? In case people don't know, civil servants don't get more bonuses if they hire people with better grades.

Frankly, Singapore is a really "logical" society (maybe every society is equally logical?). Everything happens for a reason and there are good reasons for everything. The system might not be perfect, but people should first look within themselves and learn to take responsibility for their own actions and/failings.

Finally, Wei Man thinks that "more options" means "more freedom to choose". She is sort of right - but my stand is somewhat more philosophical: more often than not, it not so much the lack of options but the lack of guts that limits one's freedom of choice. :-P

I agree with Wei Man that Singaporean's education system is going the right direction, but after speaking with some parents last week, I have also come to realize that all the changes mean squat unless there is a change in the mindset of the parents.

I wrote the following letter a couple of years ago at a whim while I was still a graduate student at MIT:
The Straits Times, March 27, 2006
All-rounder student mould is pointless

I, TOO, am heartened by the breadth and depth of the Ministry of Education's recent policies and I believe that our policies are indeed progressive.

People are different and few are truly 'all rounded'.

To expect our students to conform to the mould of an 'all rounder' model student is like expecting Singapore women to diet till they all look like Ally McBeal: It is self-defeating and pointless, unless what we want is a whole generation of mediocre students.

We have to let a thousand flowers bloom. Then perhaps a garden might grow on our doorstep.

Young Singaporeans have to understand that the world has changed since their parents' generation: Singapore is now a global city and they will have to compete with foreigners for jobs at home.

Protectionism is not an option. We have no oil. We have no natural resources. If we drive up our already high labour costs, we are toast.

Let us not forget also that there are 1.3 billion hungry people, in the emergent China, who are willing to do the same jobs for less; they are even willing to do jobs that Singaporeans are not willing to do.

In some ways, our situation may seem bleak but I believe in our future; among all the people in our region, I believe that Singaporeans have access to the most opportunities.

The question is: Will our people fully exploit the available opportunities to excel in a profession that they truly care about, or will they cave in to peer pressure and continue the blind pursuit of good academic grades and co-curricular activity records, believing that paper qualifications are the key to a secure future?

To me, the truly worrying part is the expectations that the parents impose upon their children.

MOE has done its part by reducing the syllabus, and it has improved the testing system by introducing questions that cannot be answered by simply regurgitating from a 10-year series.

These are steps in the right direction.

This move has, however, unnerved many parents, who seem to prefer the good old days, where their children can safely spend their entire lives buried in their books, but thereby 'guarantee' good grades at the national examinations.

Like Ally McBeal, Singaporeans may need to take a look in the mirror.

Ben Leong
Cambridge, Massachusetts

I think I was spot on. One of the key concerns I got when I spoke with the parents was "is there a career if my son/daughter chooses Computer Science? Will the starting pay be less than the other professions?"

I looked at them in the eye and told them, "if your son/daughter does well in WHATEVER course he/she chooses to study whether at NUS or NTU, he/she will probably find a decent job; if he/she does poorly, probably NO course will guarantee a job. So have your son/daughter pick a course, he/she thinks he likes. This maximizes the probability that he/she will do well. Simple as that."

MOE needs to educate not only our children, but the parents. :-)

This is my charge to my students: school is overrated. Life is *real* (and often very harsh). Take some effort to understand how the world around you works and think. Apply common sense. It takes some effort, but it's not that hard.

Saturday, May 9, 2009

Reflections Two Years Down the Road

We had BBQ tonight. Since last semester, it has become somewhat of a tradition for the class to hang out and chill out at the end of a tough semester.

It was nice that most of the students turned up, except for a couple who are out of town. A few students from last batch also came -- Zongyao, Caleb and Christine. I would like to express my gratitude again to my trusty TA, Kok Wee for organizing the BQQ and also Janus for helping him. :-)

It was really nice hanging out with the students. I had a great time chatting with the students, but I unfortunately had to leave early 'ços my wife was nagging me to go pick up our two babies. :-P

Jason asked me if I was going to offer CS3216 again next year, and I said, "Yes".

This is now the second time that we've offered CS3216 and truthfully I did have second thoughts in the middle of the semester about offering CS3216 every year. I was seriously considering the option of offering it every other year instead. I discussed this matter at length with Kok Wee, my trusty TA, who was adamant that we should offer CS3216 every year. (It's nice to have a TA who really believes in the course. :-))

Last year we had about 50 students. This year, we only had 28. Personally, I am quite confident that we can sustain a enrollment of about 25-30 students a year, but one of issues that we had this year (which we didn't have last year) was the difficulty the students had in forming Final Project teams different from those for the Facebook assignment.

It was a structural problem arising from the smaller numbers. Some groups inadvertently wanted to work together with their Facebook assignment teams and with a smaller enrollment, this made it difficult for the remaining people to switch groups even if they wanted to. The same issue didn't arise when we had 50 students last year.

I didn't really like this situation because I had this idea that one of the skills I wanted the students to learn in CS3216 was how to get to know people and then form the dream teams to develop their "killer app". Because "Musical Chairs" didn't happen, I was thinking to myself that a perhaps more efficient way to run the class was to mount it every other year so that we can collect enough (say 50 students) in each course.

What made me change my mind towards the end of the course was the realization that a smaller class actually has its advantages. With fewer project teams, I have the time to talk individually to each and every group and get to know each and every student. The quality of the Final Project apps this year also turned out to be significantly higher.

It is no secret that CS3216 was inspired two years ago by the late Prof Randy Pausch's Last Lecture. In that talk, he described this class he created when he first went to CMU called "Building Virtual Worlds". It sounded really cool, but unlike Randy, I'm an animation guy, so this virtual world business was out of my league. It so turned out that I am the sort of guy who likes to build systems - and along came Facebook, so in a moment of insanity, I proposed CS3216 to my Department.

I would like to take a moment to give credit to my Department, especially my Vice-Dean Prof Khoo Siau Cheng. Randy says CMU is great. Truthfully, NUS ain't bad. Instead of telling me that I was crazy and stupid, I actually got the support of SoC and later approval by NUS to mount a new course on Facebook programming! I am blessed to work in probably one of the most enlightened faculties on campus and probably in the world. For this, I am very grateful. :-)

Truth be told, it's actually not very reasonable for NUS to have a Facebook Programming class, because that seems to make us too much of a vocational institution, which we are not. (However, as the students will attest, I don't actually teach people how to write Facebook apps (and neither did I ever have such an intention). The whole point of CS3216 is for students to figure out how to learn. Two generations of CS3216 students have thus completed the course, survived to tell the tale and learnt (albeit painfully) that picking up the technology is the least of their problems, if they truly want to do something great).

Now two years down the road with CS3216, I can safely affirm that the late Randy Pausch was truly a great educator and his demise is indeed a real loss to humanity. I just went to read the transcript for the Last Lecture again and found the following quotes I am able to relate to quite intimately after teaching CS3216:
The first assignment, I gave it to them, they came back in two weeks and they just blew me away. I mean the work was so beyond, literally, my imagination, because I had copied the process from Imagineering’s VR lab, but I had no idea what they could or couldn’t do with it as undergraduates, and their tools were weaker, and they came back on the first assignment, and they did something that was so spectacular that I literally didn’t, ten years as a professor and I had no idea what to do next.

(If you) wait long enough and people will surprise and impress you. He said, when you’re pissed off at somebody and you’re angry at them, you just haven’t given them enough time. Just give them a little more time and they’ll almost always impress you. And that really stuck with me. I think he’s absolutely right on that one.

And the course was all about bonding. People used to say, you know, what’s going to make for a good world? I said, I can’t tell you beforehand, but right before they present it I can tell you if the world’s good just by the body language. If they’re standing close to each other, the world is good.

And BVW was a pioneering course [Randy puts on vest with arrows poking out of the back], and I won’t bore you with all the details, but it wasn’t easy to do, and I was given this when I stepped down from the ETC and I think it’s emblematic. If you’re going to do anything that pioneering you will get those arrows in the back, and you just have to put up with it. I mean everything that could go wrong did go wrong. But at the end of the day, a whole lot of people had a whole lot of fun.

So today’s talk was about my childhood dreams, enabling the dreams of others, and some lessons learned. But did you figure out the head fake? [dramatic pause] It’s not about how to achieve your dreams. It’s about how to lead your life. If you lead your life the right way, the karma will take care of itself. The dreams will come to you.

The first clue that CS3216 was doing something right happened when I was grading the Hello World assignment apps last year. How much can students do with a Hello World app? Well, a lot more than I had EVER imagined.

Teaching CS3216 is really challenging, but it is also intensely rewarding because I get to work with perhaps the most talented students we have on campus from all faculties. In some situations, the distinction between teacher and student isn't quite so clear.

Two groups of students this year taught me the truth that "wait long enough and people will surprise and impress you".

One group was MishMash. Jiayang tells their story here and it's true! Truthfully, when the team first did MishMash for their first assignment, it wasn't so hot. It wasn't even usable and so I must admit I was not exactly encouraging when I heard that they wanted to work on it for the Final Project.

I have to admit, I belong to the "Brutal Truth" camp. I don't tell students what they want to hear; I tell them what they need to hear. Telling students that they are doing well when they are not means that we condone low standards. That's not my style. :-P

In any case, the story has a happy ending. Instead of being discouraged by my initial comments, they decided to prove me wrong and persevered. I was quite blown away by MishMash when the Progress Report was due. While all the other teams had trouble producing a prototype, MishMash was done. Also, the improvement in the app was phenomenal to say the least. Even my student Zi Han who has really high standards for web apps had nothing but good things to say about the app. Of course, I conveyed my thoughts to the team.

The other group was MyCampus. This a group of four freshmen. They worked on this Flash-based app for their first assignment and it didn't work out very well. Then they told me that they decided to do a Flex app on xiaonei for their Final Project and I asked, "Sure or not? How much Flash do you know?" The rest, as they say, is history. :-)

Randy said that he could tell how well the BVW projects would turn out by the bonding between the students. The same is absolutely true for CS3216! Next year maybe we don't even have to bother to grade the apps. Maybe we just do a survey to ask the students how much time they spend with their teammates and how much they like each other. A similar trend was observed last year too, but these year's students seemed to like camping out overnight at COM1 a lot more. :-P

To a great extent, CS3216 has transcended from being just a class and evolved into a community. Perhaps shared suffering creates bonding? :-)

I have said a lot about how great things were, and I might have given the impression that life is a bed of roses. Truthfully life is NEVER a bed of roses. The class got random flak and naysayers: here and here. The attendance at lectures started to drop significantly last year after the midterm break (which is why I started blogs this year - which apparently "fixed it". *Evil laughter*).

I got a lot of flak from the students last year for random stuff like "changing deadlines" (actually I was giving extensions so I dun know what they were complaining about, but ah well), "poor scheduling" and for not being organized. I am pleased to say that I got a little bit smarter after last year and most of these logistics issues have been resolved.

I'm not complaining. Merely highlighting that things are NEVER a bed of roses even if things seem fine and dandy. This is especially if we try to smart and do something different and a little crazy.

So why do I do what I do (other than that I'm a little crazy :-P). It's because I BELIEVE. I believe that there is a place in NUS for a module like CS3216. There is a need to give our students a chance to do what they want to do. A chance to dream. A chance to learn what they WANT to learn.

CS3216 is infamous for its unreasonable workload. However, the truth is this: after the feedback from last year, I've fixed it!! Yes I did, believe it or not -- and I spent most of the Project Team meetings telling the students to scale down their projects. Just pick one thing and do it well..... but most of the students still went ahead and camped over. I suspect they actually enjoyed it (though they will still complain 'cos that's the way it is).

CS3216 is a head fake. It's really not about programming Facebook apps (though most students will learn some of that along the way). What is it all? If you are a student reading this blog to try to figure out what CS3216 is all about and trying to decide whether it's for you, read the blogs by the students found in the sidebar. :-)

The strange thing about CS3216 is that I don't know what the students learnt exactly. Much would depend on their backgrounds and what they decided they wanted to learn. Unlike a factory-system where we churn out a whole class of students all with the same set of skills, we instead have a whole class of students go away with different lessons. Yes, I know it sounds a little wild, but it's true. :-P

This reminds me of the conversation I had with Chris Henry on the way to the BBQ earlier this evening where we had this discussion about education, politics and "the system". I shared with him my view that this idea of The Singapore Dream is quite bogus. What Singapore Dream? Are our people so pathetic that they don't even know how to dream that they need the Government to tell them what to dream? My hope is that our people will dare to dream and we have 4 million different Singapore dreams. :-)

That is what education is about in my opinion: teaching our young to dream and helping them understand that life is about choices.

To conclude, I would like to quote from Larry Page's recent commencement address at Michigan (not what he said, but what his father said 53 years ago):
"...we are entering a changing world, one of automation and employment change where education is an economic necessity. We will have increased periods of time to do as we wish, as our work week and retirement age continue to decline. ... We shall take part in, or witness, developments in science, medicine, and industry that we can not dream of today. ... It is said that the future of any nation can be determined by the care and preparation given to its youth. If all the youths of America were as fortunate in securing an education as we have been, then the future of the United States would be even more bright than it is today."
I am really impressed that an 18-year-old could have said something like that. I believe that we have succeeded in making universal education a reality in Singapore today. The question remains: what will our youth do with their education? :-)

That, is a choice.

Saturday, May 2, 2009

Wrapping Up

We've just finished grading all the Final Projects and the following are some of the final points that I would like to make to wrap up CS3216 for AY2008/2009 based on what I've seen in the Final Project reports.

Forming the Dream Team. I did mention during the semester that we should seek to find the best possible people when we form teams (if we have the option of choosing). Some accused me of being elitist. :-P

Well, the truth of the matter is that due to some leftover influences of our education system, I think some students haven't quite understood the meaning of "best". I am happy to note that at least one student got it and I would like to quote Khoa, "The best is not the best, the best is the most suitable." I think Khoa got it. :-)

The moral of the story is quite simple (and not rocket science): great, you come up with an idea to take over the world. What you need to then figure out is how to break that idea into sub-tasks and what needs to be done for each of the sub-tasks. Then try to find the people who are the best in their respective fields for each of these sub-tasks. This is not the same as assembling a team of Dean's Listers or elite programmers. In fact, for Facebook apps, a whole team of elite programmers without an eye for design is almost certainly a recipe for disaster.

Idealism vs The Real World. The key impediment to ideas that can take over the world today is not the dearth of ideas, rather, it is the the people factor.

It's easy to talk about assembling the Dream Team. It's not always possible to find the Dream people. Also, some of the ultra-talented people have personality quirks that make them impossible to work with. So, therefore, for all that's said and done about this dunno what notion of a Dream Team, the reality of life is that many a times, we have to settle for a less-than-Dream-Team.

The crux of the issue is therefore to understand what needs to be done and try our best to get the necessary resources to do it. Once the team is assembled, expectations may have to be adjusted depending on the available talents and skills.

The Power of Passion. Sure, skills and knowledge are good, but sometimes passion and dedication can make up for the lack of skills and knowledge. I have to admit that I am quite blown away but what two of the all-freshmen teams, MyCampus and Spree Kingdoms, have accomplished for their Final Projects. These folks knew NOTHING about web programming at the beginning of the semester.

Through sheer grit and determination, they not only survived, they prospered. That provides that attitude probably matters more than how much people know. :-)

Reject Dogma, Embrace Common Sense. The scary thing about being a teacher is that students sometimes actually believe the things you say. :-) I did mention during one lecture that I think the best project managers are the elite programmers.

As it turns out, at least two of the groups, i.e. MyCampus and Varsity Chronicles, didn't have a programmer at the helm - but they did well. So was I wrong? Maybe. Or maybe not.

The point of the matter is this - what I really said is that elite programmers are good project managers because they are best able to assess the proficiency of their programmers and thereby estimate the amount of effort and time required to deliver different modules of a software engineering project. If need be, they can also offload some tasks. My view is that I have most confidence that a software engineering project will meet the schedule if I have an elite programmer as the lead.

That said, project management is also about leadership. Strong leadership is also necessary in order to get the team to work effectively, so an elite programmer with no EQ will not make the cut either.

The point that I would like to impress upon my students is not to take what I say too literally or assume what I say is necessarily correct. The most important skill that students today have to learn is how to look at facts, analyze them and come to their own conclusions.

Common sense really helps because in life, we are faced with new situations all the time for which there are no textbook answers. To quote Justin, "(Varsity Chronicles) forces me to make decisions which I have no experience to rely on. All I have was my common sense, my understanding of the group's ability, and the feedback of my team mates to count on".

Think Harder, Think Deeper. I must say that I am very impressed with the execution of the Final Projects this year. The average quality of the Final Projects are somewhat higher than those last year. It's not so much that the students this year are necessarily better, but it's more likely that the workload this year was moderated better so that premature burn out didn't happen after the initial assignments.

It's not that the students this year did less work this year, but they didn't do quite so much for the assignments during the first half of the Semester which leave them with more energy for the Final Projects.

What I would like to highlight however is that I still think that most students are somewhat too focussed on the execution and implementation and have often failed to take time to take a step back to think about the bigger implications of their work and longer term strategic issues like marketing and user experience. Detailed comments will be returned to the groups with the project grading reports.

Just want to highlight again the following mantra: "More thinking, less coding".

CS3216 is all about the People. What makes CS3216 work is not so much Facebook or technology or any smartness in the way the course is structured (though there's indeed some sense in the madness). What makes CS3216 tick is the people. One of the points that is highlighted over and over in the Final Project Reports is how much the students have learnt from their talented peers.

First, I am honoured to have had the opportunity to work with an outstanding group of students, who never fail to surprise me with their creativity, passion and grit. This past semester has been quite "happening" and tiring (for all involved), but it has also been a lot of fun. I would like to wish my students the very best in their studies and future endeavours.

Second, I would like to take the opportunity to thank my team of dedicated teaching staff consisting of TA Goh Kok Wee and Tutors Chris Henry, Lim Yuen Hoe, Kent Nguyen and Chin Su Yuen. They have worked tirelessly to help with the preparation of the teaching materials and executed their teaching duties with professionalism and dedication. Without them, there would not be CS3216. :-)