Associate Professor
School of Computing

National University of Singapore

15 Computing Drive, COM2 Building, #03-20, S(117418)

Tel: (+65) 6516 4240 Fax: (+65) 6779 4580

Email: benleong at


Results of CS3216 (Semester 2, 2009/2010) Mid-term Survey + My Responses

The following are the results for the online survey that we did after the mid-term exam. I've also included some of my comments to the mid-term survey.

There are several reasons for this survey:

  • Timely Feedback - We cannot teach well unless we know what's going on and what students do not understand. Waiting till the end of the semester would be too late and there's nothing much that we can do. That said, I hope that students will appreciate that the lecturers are only human and it's not always possible to address all concerns and fix all problems this semester. In any case, the feedback will be taken seriously and future batches of students will benefit.

  • Allow Lecturer to Respond - This survey also presents the lecturers with a opportunity to address the concerns of the class and to clarify some issues from the perspective of the teaching staff, which is also why this particular page exists.

  • Reference for future batches - Students always want to know about class before they take it.

Note: Feedback on the TA and Tutors are omitted here because of privacy reasons. I do not feel that it is right for me to put up the feedback they received on this site (not implying that they are bad. In fact, I have the privilege of the support of a FANTASTIC teaching staff this semester and the feedback is raving good, but I still omit as a matter of policy). They can choose to put up their feedback on their own homepages if they wish. 

This is an anonymous survey. We have no idea who said what. We just know what was said. :-)

Total Number of Respondents : 41/41

1) Why did you decide to take this module?
1. To meet cool and great ppl! =P And I did...
2. Interesting
3. To challenge myself to learn in brand new environment and to get to know how to work with people from various discipline
4. Christina.
5. To learn more practical skills, wanted to be more confidence of my technical skills after this. Want to make a difference to my life in NUS.
6. I decide to take this module because I wanted to challenge myself, learn something new and work with people. It did sound like awfully demanding at the onset where prof ben got students to warn us off but laid the caveat which goes "What doesn't kill you will make you stronger!" Verily. Another strong reason that made me choose this module was because of prof ben. I love his character and charisma and I really wanted to learn from him. So cheers, Here I am.
7. Because I want to challenge myself, do something meaningful and not waste my uni life.
8. something fun, kind of different from regular cs modules.
9. a. Prof Ben b. The people in the class c. The TAs are interesting d. The chance to learn from others e. To share some of my experiences that can hopefully benefit the class
10. To try making something cool
11. To challenge myself out of my comfort zone.
12. To meet more like minded people
13. To explore and have fun..but mostly to learn and realise my dreams :) that we can do it!! it's a once in a life time experience that i just can't miss!
14. Got invited!
15. Challenge, projects are special and probably more open ended than any other module.
16. The challenge-aspect To learn a hell a lot of programming stuff in a short time To do something that is not bound by syllabus and "rules"
17. Two reasons. 1) I've always wanted to do a tech startup. Tech startups these days are launched on the web, with just two to three founders behind them. CS3216 emulates this model pretty closely, and is therefore a valuable learning environment for whoever wants to go out and do this thing after college. 2) This is the last year that CS3216 is going to be held.
18. It's challenging. I like challenges
19. Perhaps something to do with my life. Perhaps finding out what I am good at. One can only find what he is good at by tasting every fruit in his garden. My experience till now has been quite awesome. I ask Prof Ben - "What will happen to the remaining of my stay in NUS. Who will be there to push us so hard that even the limits expand? Is there any other *work hard* + *fun* course? Prof, do let me know if there is." And Prof replies - "After CS3216, you are supposed to have figured out how to push yourself! :-)"
20. Wanted to learn more about software industry and web developments. Wanted to meet like-minded and entrepreneurial people. Build contacts. Learn how to work with technical teams, talk to technical people. Prof Ben Leong's reputation.
21. I love pain. Last sem its offered as an elective course. Wanted to differentiate myself, hopefully it would help in my application for CMU concurrent programme 
22. - To find like-minded entrepreneurial people - To challenge myself - To learn about software engineering
23. - learn web development - meet like-minded people - learn to work well in cross-discipline teams
24. I wanted to learn practical programming skills and understand what it took to create web applications. These skills will be helpful when I go for NOC and when I start working especially if it's IT-related. I also wanted to get a better understanding of the IT industry.
25. Cant find a fifth module...  
26. It seemed fun, a breather from what I'm usually doing, and challenging.
27. Challenge myself! interesting!
28. My senior strongly recommended me this module, he once recommended me CS1101S so I know how spectacular this module must be. Prof Ben recommended this module as well, and he also teaches this module, and judging from CS1101S, I can expect a great amount of fun, work and lessons in this module. The next reason is generally that I want to evolve. Challenges are a great way to get a person to evolve greatly, and I really like challenges as well. Programming, teamwork and many many lessons here are a wonderful way to get evolving as well. And seriously, I really enjoyed CS3216 up to now. Last reason is that I want to make a difference, and want to do what I want to do, not just things and work given to me from the professor like many others modules apart from CS3216.
29. -> Learn new programming languages; know whether programming is what I want to do -> Work with awesome people -> Get out of comfort zone -> Non-traditional module, exciting structure -> Got completely sold at the seminar
30. It promises fun and challenges.
31. Too many reasons (wouldn't fit in 500 words). Documented both in blog posts and the initial personal statement.
32. I wanted to be immersed in a pool of very bright and motivated people. Well, I have to admit that with the exception of a few classmates, most of the people are EXTREMELY bright and competent in one or more fields (i.e. Programming, Management or Graphics design.) Besides, i wanted to challenge myself to see if i can pick up the programming expertise FAST enough to cope with this module. I failed in this aspect, I can only say that i didn't try hard enough.
33. Interesting module that emphasize on reality rather than unreasonable assumptions.
34. I am seeking talented people for future projects/ventures.
35. It's interesting! Something different from other modules. And this module is very closely linked to entrepreneurship which i am interested in
36. For kicks =P Frankly tho, it was the chance for me to put together a team and do something big.
37. LOL. For fun and challenge myself. for learning and exploring new ideas :P
38. I have some ideas to express and want to make a difference by building some web apps.
39. force me self to learn skill. hopefully gain some sense of achievement.
Skip: 2 (4.8%)

This is a good sanity check. Responses are quite consistent with what we've seen for the past two years. Most of the students who sign up are generally highly motivated and are taking this class to challenge themselves and/or to meet like-minded people. Yes, and I know that Kah Hong is the one who is in CS3216 because of Christina, who ended up not applying to take the class.

The only response that this is a little disturbing is response 25 (Can't find a fifth module). In case people are wondering, the "invited" person is probably Justin or Henry. While not "official" students, I am pleased to see that they are operating exactly like NUS students (and suffering together with them). They have validated my decision to invite them to join the class by bringing with them their invaluable industry experience which I believe has benefitted the other students. :-)

I would also say something about this course being the last semester for CS3216. CS3216 has proven to be a good course and it would be illogical to kill it, so obviously, it won't be killed ('cos it would be duh to kill it). That said, CS3216 was started mostly as an experiment three years ago (though I didn't exactly tell the students that they were guinea pigs). It was an experiment to test if the late Prof Randy's Pausch's "Building Virtual Worlds" really works. Glad to report that it does and I've sort of figured out how to implement it after these three years!

With the new CS Curriculum Review and the introduction our two new elite CS Programmes, the challenge is now to take what works in CS3216 and integrate that into the new curriculum. It will not be easy, and I will be wrecking my brains over the next 3 to 6 months -- but there will not be any dumbing down (if people will read my CS1101S reviews, it should be clear that I'm unflinching in the face of students complaining that it's too hard.... has anyone paused to think about whether there's a possibility that it's not that my classes are too hard, but that the other classes are too easy? ;-P). The class size will likely be increased basically to accommodate the expected increase in elite CS students. Right now, CS3216 is about 40 students per year. I estimate that this number will go up to about 60 in about 2 or 3 years for its spiritual successor under the new curriculum in the steady state.

Multiple Choice
1) Did you think the assignments were designed well to meet your learning needs?
Rank Percentage

Complete waste of time, I learnt  nothing.


There was little to be learnt


I learnt some stuff, but not a lot


I learnt quite a lot


I learnt more in CS3216 than all my other classes put together.

Skip 0

Seems like we've dropped a little from last year with only about 85% of the students claiming that they have learnt a lot (compared to 90% from last year). Might not be statistically significant.

The proportion of "I learnt more in CS3216 than all my other classes put together" has however increased from 30% to about 44%, which I guess is a good sign. :-)
Multiple Choice
2) How would you assess the difficulty of the assignments?
Rank Percentage

They were too easy


They were not much of a challenge


Average, just like my other classes


They were challenging


I almost wanted to commit suicide

Skip 0

The difficulty of the assignments is definitely lower than last year (as we had expected since we substituted Google Wave for Microsoft WPF). The proportion of students who want to commit suicide has fallen from 22% to 14.6%. How nice is that! :-)
Multiple Choice
3) How many hours per week do you estimate you spent on this class?
Rank Percentage

At most 10 hours.


Between 11 and 13 hours.


Between 14 and 15 hours.


Between 16 and 18 hours.


More than 19 hours.

Skip 0

The time taken also seems to be marginally lower compared to last year.
4) Please let us have your views on the Facebook assignment.
1. Facebook assignment is a great assignment to let experienced web programmers to get familiar with some of facebook specific stuff like FBML, FBJS, FQL,... and to let non-experienced programmers to get familiar with web programming and facebook programming at the same time. The difficult of facebook assignment was built to achieve this goal (apart from the 'idea' stuff) and it did achieve that goal well. Additionally, facebook assignment is a great way for creativity, no real bound limit was set up so that students could do anything they want (of course students needed to think of something not too big, saying that something realistic), and also give chance for student to think of final project even right then. Lastly, the milestones in the facebook assignment made a good example of a project proposal (just part of, not all)
2. good practice.
3. Absolutely fantastic. I think each person's experience would be different according to the kind of app you're making and the kind of people in your team, and I got quite a bad mix of personalities for my first assignment. And so I have learnt how to manage, err, personalities. I have learnt how to manage software development on a two-week schedule. Great assignment.
4. The facebook assignment deadline is rather tight. While I recall being told that we had 3 weeks for the facebook assignment, I feel that it wasn't really 3 weeks as by the time the groups for the assignment were formed, there was much less than 3 weeks of time left. On the other hand, the Google Wave assignment definitely had 3 weeks between group forming and deadline. With that said, I feel that I learnt the most from the Facebook Assignment thus far. It was immensely challenging; I did at one point of time wonder why I got myself into CS3216. At the end of it all though, I found the experience very satisfying.
5. Remove the chance to re-submit milestones. It is essentially giving 1 week of extra time. Effectively, it rewards those who worked on their coolness factor rather than those who chose to learn properly, penalizing those who worked smart. 1 more week to work on the coolness factor is absolutely huge. Have to realize some apps may not be so cool because they factored in the time frame and what they could realistically achieve while at the same time doing a good job of the milestones, and not because they weren't creative (but realistic).
6. Very good learning experience working with real world platforms.
7. Assignment was so fun that we almost forfeited the supposedly must-get 70%
8. Should have a briefing session like that of Wave before the assignment starts. Could have given us more time so we can explore more and do more with it.
9. awesome assignment. Open-ended and empowering.
10. ... I don't like facebook so much (I completely Q6 and Q7 before this :p)
11. Generally good
12. Facebook Assignment is great! It gives us a proper introduction to writing facebook application.
13. Er... More or less restricted by technical skills. Have all kinds of ideas but can't put them into reality.
14. It's a good starting point for us to get used to the course.
15. excellent ice-breaker, aspirations good and useful for a quick hello world, yet allowing free reins for doing anything
16. Somewhat too rigid. We have to follow 'aspirations' which made most of the apps similar in some sense. In retrospect, the entire Facebook Assignment team felt that our product became the way it is instead of what we imagined because we had wanted to fulfill aspirations.
17. Aspirations weight too high, should pay more attention to functionality and usefulness of application
18. The assignment got completed in a hurry. With an experienced person on the team, rather than learning from him (which didn't happen because of lack of time), I was not forced to do much, so didn't learn much. The sad part is this chance of learning cannot be caught up with later on, because work just keeps coming. The assignment itself is a very good way to get new students started with picking up technical skills, and pros brushed up with theirs. A possible solution to the aforementioned problem is grouping the class according to skill and allowing teams to be formed only among people of the same or nearby groups. The quality of work might differ widely as a result, but that does not matter.
19. You expect far too much to happen - it is supposed to be challenging and fun, not unrealistic. Nevertheless, it was a good experience - to get to know that sometimes expectations are unrealistic and that you may fail.
20. milestones set were abit unrealistic. too many things to complete in such a short time frame.
21. The deadline seems incredible. For some of the milestones in the Facebook assignment, perhaps it will be good to have a rating system to indicate the difficulty level. For instance: 1 stars = Even idiots can do it. 2 stars = Programmers: Easy Non-programmers: Need a bit of time, but surely can figure out. 3 stars = Programmers: Need a bit of time, but surely can figure out. Non-programmers: Do not try, unless you are 4 stars = Programmers: Tough Non-programmer: Forget it.
22. Put after the Facebook Application Seminar. The seminar should be on the 2nd week, so people have the first week to find more about each other.
23. It is quite good
24. I had a good experience with my team.
25. There should not be rules that enforce teams to implement features which they do not require.
26. Too many milestones. There is a problem with this because people start thinking about how to achieve the milestones instead of seeing the big picture. Bottom line is sometimes the easy stuff are well executed and have much more potential to be successful as compared to cool stuff.
27. set less limitations on the aspiration parts.
28. Too little time
29. Not enough time.
30. A great chance to learn how to deploy applications on Facebook. Really useful and fun.
31. Too short a time frame.
32. A very good way to provide training to get people get used to facebook environment for final project. Also, an effective way to let group to test out their idea and consider to stay in facebook or not.
33. hmmm.... I think the milestones itself is rather achievable just that for us and many of the other group, we have big dreams. that means we have to do a lot to make sure that things works cause the assignment, if you follow it to the T is just a hello world fb application but I guess since we all want to make it big, it means a lot of time and hard work spent on it. Which is mostly our 30% of the grade. but doing so, we learn really a lot on the way though the process is like vomit blood and slpless nights...
34. Some of the milestones actually forces us to do stuff that are not really helpful.
35. Good one. Had the awesome experience of putting the most important web technologies together - PHP/MySQL and a bit of AJAX. Really got to know the User psychology and UI designs stuff. Though I am a bit of non-believer in facebook applications and perhaps this led me to build an application that actually could be helpful :)
36. Very well-planned and detailed. Good balance between handholding and freedom to explore.
37. I think facebook is saturated for hacked up applications that dream of making it big, but nonetheless a good place to get a feel for coding and web 2.0. (=
38. Its good that it was placed at the start where ppl have more time.. Where the stress of other mods have no come in yet.. And where everyone has a lto of passion and very onz abt CS3216..
Skip: 3 (7.3%)

Most of the comments this year are quite positive and similar to what we got last year.

On the issue of students complaining that some milestones are not useful, the problem here is that these students don't read instructions. It is stated in no uncertain terms that if a group should feel that a certain milestone is not relevant, it can try to explain its way through not doing it. Not to say we will definitely agree, but the option is always there. I believe that one or two groups actually took this tack and got full credit even though they didn't implement certain milestones. Moral of the story: please read instructions.

On the complaints that the expectations are unreasonable, perhaps take a good look at the small number of complaints about unreasonableness. Compared to the first batch who did three facebook assignments (one every two weeks), our one FB assignment over three weeks is quite reasonable. Also, the good programmers can solo all the milestones in a couple of hours (I got Yuen Hoe to test this). There are many good programmers in the class who are capable of doing so -- many of them I trained personally in CS1101S. Do not impose your own limitations on your fellow classmates.

Re: comment 21, we'd look into it. My only concern is whether we can rate the milestones accurately. They all look pretty easy to me and my tutors are typically elite programmers also. :-P

Re: complaint 5 about the resubmission, did I not explain myself very clearly at the beginning of the class that the course is structured to make sure that the Final Project will be the main factor that determines a student's grade in the class? Which part of this statement did you not understand? I'm very tired of these sorts of kiasu mentality -- and frankly, I think I know where it's coming from. It's not just one student. Hiaz. Anyway, this is not the end. There's still another half a semester for these students to figure it out.

5) Please let us have your views on the Facebook Application Seminar.
1. It should be named "Facebook Seminar" instead, cos ppl kept calling the 1st assignment "Facebook Application".
2. Bullshit
3. allow us to compare between applications
4. I have learned a lot from the sharing of others which is good. I cannot believe the effort people had put in for this - especially the show-stopper - a movie!
5. a proper break after FB assignment lol. no coding, give us time to think more. by analyzing the apps, we also thought back on our own app. what's the good/bad/ugly that we could improve
6. Try to encourage people to look for apps that failed spectacularly, even though developers clearly put in lots of effort and were looking to build something great. Analyzing successful apps is so easy. There're so many of them out there. Do we even need to analyze?
7. Not very useful. Basically smoking.
8. Because it is together with the facebook assignment, most of us didn't really prepare well for the seminar, too short a time to really prepare well and learn.
9. none
10. It is too close to the Facebook assignment's deadline. Better output can be expect if there are longer gaps gap between deadlines.
11. This is a great opportunity for the non-programmers to display their presentation skills (if any). Although this 'project' requires much less time than the Facebook Application, I feel that this is just as important. It allows the entire class to learn about various facebook applications in a VERY short amount of time. Moreover, the bulk of the class does not spend much time on Facebook (yes, it is surprising) so this 2 hour session saves them a lot of time to explore the features of various facebook games/apps.
12. A bit too easy/simple for a four man team, but a refreshing break from the pressure of the first FB assignment.
13. Should be the first assignment and serve as a chance for people to get to know each other before real work start.
14. - I had a fantastic experience with my team, and thought we did wonderful. - the main lesson I took away wasn't that of learning to critique an application, but rather it was working in a team of people who I didn't know, and yet outperforming ourselves.
15. Not really a good thing - in fact, I don't see much benefit coming out of it. Yes - its a good thing to access other applications - but if you give us almost not time to work on them, the work ends up being only towards meeting expectations and not towards learning
16. the seminar itself is rather interesting since we do have to analyse the application and present on it...but compared to the fb assignment, it does not require that much time and hence very manageable :)
17. Could have given longer time, too rushed to produce decent work.
18. Very good way to get us thinking. The QnA session at the end of each presentation was actually the most important part of it. The critiques-period was the most intense period of thinking I've had in a long time. It gives me the confidence that whenever required, I can scale my thinking intensity without losing quality. Unable to think of improvements.
19. It's good! We need to know what makes successful apps and what makes apps fail.
20. I don't believe Facebook seminar is much of a help. But it may give us some ideas about how we should approach writing Facebook applications
21. I don't think group work is very useful for this. Though it may be impossible to let everyone present.
22. Really, really good assignment. Everyone had the chance to review what people already did in facebook, why they succeeded, why they failed, and then review the facebook assignment that every group had done. Moreover, every single one needed to give his views on one particular application, which made every people concentrated on every single presentation, which is a good thing. And people have the chance to give their views and discussed with others, which is a really, really great things.
23. I think in general, there was not enough time to do all the assignments properly. I had difficulties cause of the requirements of the other modules. I did want to do it better, but I had to balance the time with the other modules. The FB Application Seminar was good. Firstly, it managed to finish roughly on time. Second, I think it forced a lot of people to consider a good application. Could it be possible to shift the seminar before the assignment? Or to start both concurrently, but to make the seminar deadline earlier than the FB App?
24. Hmm... a good learning process since students who understand more can share their views with those who don't understand how to make something more marketable or cooler, esp. those who code. Though I felt it was a slight waste of time because it was quite obvious to figure out most of it and google some of the info out. It felt like a mass summary, but I suppose that is learn and share what us most relevant.
25. I like the 7mins limit on presentation. It forces us to be concise and precise.
26. I think it was fun, but wasn't particularly useful. Maybe giving us more time after the Facebook Assignment to do it might be way better.
27. Don't really like this assignment
28. Honestly wouldn't want to do this again, but I found some things mentioned by classmates during the app seminar very interesting such as the way zynga works.
29. Application Seminar really made us critique and analyse the companies and how the facebook applications actually make money (and why are they so popular). Presentation part was fun.
30. I had never used a Facebook application prior to this assignment, so I can't say I didn't learn anything. Didn't use it as an excuse to play Facebook games in class though!
31. not very time consuming, yet useful in the sense we switch role from developers to critics to gain a different view of the things we are engaging.
32. Quite interesting also but might not really teach as much.
33. Generally good
34. It showed me some insights in social networking app and game designing so that I know what I should be careful about when designing my own apps
35. I enjoyed the way the class presentations were handled and that each group only had 7 minutes max. This made us think about what is important and to focus on the core messages that we wanted to present. Blogging is meaningful. Unfortunately, I feel that the Seminar was overshadowed by the urgency of the Facebook Assignment. Hence, it was regarded as being less important. I had far less interactions with my seminar group and I didn't really get to know them that well.
36. N/A
Skip: 5 (12.1%)

I am actually very pleased with how the Facebook Application Seminar (or Facebook Seminar as someone suggested) went this year. For the first time, I managed to finish up the session mostly within 2 hours instead of 3 hours last year (even though there were fewer groups) or over 2 days during the first course.

If people will read through the comments, it will become apparent why teaching is difficult. How is it possible that some people are raving about it, while others hate it? :-) Well, it's possible.

Several points to note:
1) Re: scheduling, I've considered whether to put that before or after the Facebook Assignment and there are pros and cons in each case. Thinking through and looking at the scheduling, I decided that it would be helpful to have the seminar AFTER the Facebook Assignment because I think you will all understand better. I believe that I'm right.
2) Re: the short time, I think it's time that people stop whining. Geez, it's 7 minutes! How long does it take to prepare for a 7-minute presentation?  Let's have some perspectives.
3) Like some people mentioned, the seminar was meant to be somewhat of an "easy" assignment
4) Teaching objectives (clearly, I am aware that not all will be fulfilled for everyone):
(a) To give the non-programmers to shine and to provide the nerdy programmers an opportunity to learn from these folks on how to talk and sell (like it or not, sales is *very* important)
(b) To give you guys one more opportunity to know each other
(c) To provide students with an overview of a whole bunch of different apps efficiently
(d) To provide students with an opportunity to write a critique to improve writing skills and to engage each other in discussions
Yes, it's IMPOSSIBLE to let everyone present -- but I'm not going to beat myself over the head for failing to do so. :-P

Sometimes students need to learn to think from different perspectives. Imagine that you're the prof and you need to deal with scheduling issues and the need to balance out the workload so that students don't drown while maximizing learning value, what would you do or how else would you do it? :-)
6) Please let us have your views on the Google Wave Assignment
1. Wave assignment was perhaps the fastest. After CNY we just got like a week, and I believe everybody coded to their max in the week. It was good to pick up a new platform and be called the elite "Wave Developers".
2. Very cool stuff.
3. Given the lack of proper documentation on Google's side, I think the TAs did a good job. However, for non-programmers, it was difficult to contribute in a meaningful way. The ideas were restricted by the ability of the programmers in the team.
4. Most serious problem I think is people doesn't really get excited about this assignment. But if you want to consider it a breeze break before the final assignment I have no opinion.
5. would have opted for a longer period for facebook assignment over this.
6. I don't really like wave assignment. First of all, wave is still very laggy. Secondly, there is not much wave api. The is also no proper way of marketing the gadget in the wave also. I am not so sure how a gadget will generate an income.
7. Well thought assignment.
8. - it was very fun. - everyone had their own role to do, and all did their roles very well.
9. Ah, slightly discouraging trying to think of creative applications. Was really more of a thinking assignment like you said. Got to brush up on my javascript though, so (Y).
10. This got us thinking really hard because we still don't know whether Wave is any good, and if it is, then what good. It was quite an experience working on a new platform with different mechanisms. If someone tried to make an extension even moderately big, the assignment would be sure to get him out of his comfort zone. This assignment quite justifies the name of the module. Pamela Fox? Wow.
11. CNY semester break spoils it all. Momentum hit one time low after CNY. However, it was a wonderful experience.
12. none
13. Somehow, I did not really enjoy this assignment that much. I feel that Google Wave by itself is quite complete. Hence, trying to improve Google Wave through extensions that are general in nature will not be that good. Meaningful extensions would have to be more specialised such as being able to retrieve specific data for a specific need (e.g. financial, stocks). However, I think such projects, while meaningful, would be difficult to execute in the span of 3 weeks as it would require case studies and understandings of the needs of a specific field.
14. The Wave was a nice change - particularly because no one had any idea on how to make it work properly. A mid-assignment checkpoint, like the one we had for facebook, would have been very helpful.
15. Generally good. Just that Google Wave is so new that it was not easy finding directions
16. in my opinion, wave is a very exciting platform to work with, but the inherent slowness of wave and unstable nature of it caused many unforseeable problem problem for developer. Since wave just updated their api, it is worth another try I suppose.
17. I think this is cool! Pioneer Wave developers, rock on! The documentation of API is too minimal. We spent a lot of time running in circles trying to know how to do a simple thing.
18. It is very difficult for non-techies to contribute to Wave Assignment. Time duration is also fairly short. Cannot implement stuff like Scrum. How to do marketing except through the Wikis and geek forums? Not a very exciting assignment at all.
19. There was no real sense of direction and we felt a bit lost, unlike for FB assignment. Not as much emphasis seemed to be placed on it, and we didn't know what the heck we were doing at first. But good for programmers b/c it is another learn-to-code-this-really-fast session for those who don't know how to use Flash (quite a lot).
20. Although it was a good experience developing on Wave, perhaps it was a bit early, especially in the light of Pamela's briefing on the new API
21. lol. sucks. may not because of the assignment itself but CNY. arrrrhhhh. I personally think wave assignment is good. we try something really new though a lot of ppl complain it's useless. well, it is useless unless someone makes it useful. may be a great opportunity. but we didn't get the chance to make a difference.
22. not very Xiong. I didn't learn much. didn't feel it n it was over.
23. n/a But I think many ppl are not too excited about it because none of their friends really use it.. nor do they themselves really use it.. Thus, they are kind of just building a product for the assignment.. Should do something more "real-world" like Mozilla Extension or Chrome Extension which will be used by millions of ppl and contribute to the community and which ppl will feel they are doing something which will (or can have the potential) to be used by thousands of ppl..
24. The learning curve is a bit steep for non-programmers.
25. I loved this assignment because I got to work with two really awesome programmers - Haocong and Biyan. Haocong is the kind of person who says 'I need this function', and you're left to go write the function because he has finished his backend so quickly he doesn't know what to do with his time, and then he reviews your code for you. I am now officially comfortable with Javascript. =)
26. great, get the chance to learn more bout wave API and robots
27. Hard to tell. Since wave already does what it's supposed to do. And everything else just lags.
28. Glad I learnt more about JavaScript. But Google Wave after all have not much potential use in the current times. Could have let us develop sth else that have more potential use among our friends.
29. The Wave Assignment was ok, but scheduling issues and clashes with mid terms meant that people were not as interested in the assignment.
30. A really interesting idea. In this assignment, we don't have to compete with own people, it's somewhat a competition between ideas, not like facebook, while many ideas have been already invested. This assignment truly gave us a chance of making something new and let our creativity fly high. It also gave us a higher chance to enter the market.
31. It's a chrome extension assignment for my group. I did programming this time, I have learned alot along the way, but admittably could have done much more. lol, however hard I hacked together code though, it still pales in comparison in what our guru Henry and Edwin can do in blink.
32. It provides me a chance to do something in a completely new environment -- it may or may not be a good platform, but I learnt a lot along the way
33. I prefer working on the Wave Assignment compared on the Facebook Assignment because there are less existing published apps, hence allowing more room for creativity.
34. Not very helpful.
Skip: 7 (17%)

First of all, the CNY "disruption" is not something under my control. Re: the mid-assignment submission, it actually did cross my mind, but I decided it might be a good thing this year to actually let students enjoy CNY instead of making them work? People please let me know if I was wrong. :-)

On the comments that "it's hard to find directions" and sparse documentation, welcome to the bleeding edge. That's something that was SUPPOSED to be the case. Another thing is the changing APIs. This was something that the first course experienced with Facebook and now you experience the same with Wave, so in this light, the assignment has highlighted the challenges of dealing with evolving platforms on the bleeding edge. My take: better get used to it. This is the way of life in the 21st century. The only constant is change. Those who survive best are not necessarily the smartest, strongest or fastest, but the most adaptable.

On the complaints that it was not very useful because the platform is currently not very popular, I have two responses: (i) I'm not a prophet and I have NO IDEA how popular that Wave was going to be when we started to design the assignment. All I know was that this was new enough for the API to be evolving and that there was potential; (ii) it is PRECISELY because it's not quite popular that the platform is interesting. I'm glad that one student recognised this opportunity in comment 33. Do people understand how crowded Facebook and iPhone app store have become? Also, we have been flexible to allow one group of students to do a Chrome extension instead of the Wave extensions. How many other classes are this flexible?? :-P

If students will not take the risk to get out of their comfort zones, they will not achieve anything great, guaranteed. No guts, no glory.

I just want to take this opportunity to thank Kok Wee and the Tutors for helping me design, set up and test the Google Wave assignment. I thought it was very well designed and there were no major (not sure there were any) complaints about bugs or stuff (other than the miscount in the marks, which didn't really affect anything).
5) Did you find the feedback write-ups that you received after grading to be useful? If so, why? If not, why?
1. Yes. Useful because the write-up helps us see the good and not-so-good about the application made so that we know where to make improvements in the future
2. Yes, that is the one thing that none of my other modules did. I've always wondered how good or bad I've did in my assignments OR mid-terms. I like the feedbacks!
3. Erm, which feedback write up? So far we have only received facebook assignment one. That one is quite a useful assessment of our apps, gave us a perspective that we might have missed and provide us another chance to learn new things.
4. Could be better formatted. I understand TAs are busy, but the feedback seem like quick copy and past of all the feedback. Still, it is helpful to let us know what our app is like in the eyes of others.
5. It is useful because it allows us to be aware of our strengths and weaknesses.
6. This is one of the best things that happened to me in this module. It allowed me to reflect on my work and my behavior thus far. The good points are really encouraging; the bad points and suggestions are really helpful. It works well, also because there are 9 different people giving you reviews. This is quite cool.
7. Yeah the write ups were quite useful and had suggestions (which I remember nobody applied). I think the suggestions could actually have been like 3-4 days before the main submission so that we could make the application even better and it would have actually shown the true dedication of the teams.
8. They're okay. Not amazingly great - because the only way for feedback to be 100% great would be to get it from a real user - but they're good.
9. Could have explained more why we are wrong in some cases.
10. Yes, people usually cant get critical and honest comments by team mates.
11. Yes, they were useful to know what we were doing right/wrong.
12. it was useful to hear the views of others. sometimes, as it's our project, we get too blinded by our passion.
13. Fairly useful. Prof gives very good suggestions on how to improve Boomzcart. But to be honest, it was a more a time limitation that led to certain features not implemented before the deadline. Seems like we've thought of most of the stuff Prof mentioned. :P
14. yes, definitely. these r valuable feedbacks from seasoned fellow in this field.
15. Yes it is. Being in a group without experienced programmers meant that I don't have much idea on whether the code we were writing was good or not. Hence, the feedback on code is helpful for us.
16. Useful. Different perspective.
17. Somewhat. I think most of us know our weaknesses already, but having people you've worked with point them out makes it more obvious which ones we should start addressing first.
18. useful in the sense it makes us reflect on what we've experienced and what we have done. useless in the sense that it eats in the development time when we do not have much time to start with.
19. Really, really useful. The quick comments of the professor, which is somewhat (only partly) like behaviors and feedback of completely new user, revealed many things, and that gave chance for us to improve things a little bit also. The comments of the tutors are extremely useful as well. The UI feedback is great, my group wasn't really used to UI design and the feedback showed many not good things in the UI. The code feedback is really great (I'm a programmer), it clearly showed many, many bad codes which will help me avoid them in the final project.
20. yup. any feedback from users will help us to improve the app. People are not like us. They may not like what we think is good. when we test the app, we know what will happen so that we will test it in a certain way. but users will explore more and find more bugs for us. feedback write-ups also help in this way. moreover, it helps from technical perspective.
21. I think we were aware of a lot of the feedback pointed out to us (just lack of time and ability to do), so it wasn't really useful (though at least we know other people notice as well), except a couple of the programming stuff to learn from. Maybe make mandatory for groups to also include in submission what they think are pitfalls of their submissions (hard for them to be perfect after a few weeks) so there is no overlap in feedback.
22. yes. Allows us to understand where did we run into problems instead of just grading it as a whole.
23. Yes, very useful - lots of insights from that and such feedback is essential to future success.
24. Not entirely. Ideally, we should only receive feedback from those members that we worked a lot with. Some project members (must be the Facebook seminar) that we only spent a weekend with gave rather wayward feedback. The time during the semester is too short to get to know each other well (oh, and the feedback was only for half a semester), despite spending many hours working together. Also, some project members are too focussed on tasks and failed to recognize that people are more important. We could have worked together for hours but still haven't know more than what we can know from their blogs.
25. Yes! very useful!
26. Prof's quick comments are more useful.
27. hmmmm.....I guess it's a rather good thing. it makes us reflect upon ourselves and improve. At the nice comments and suggestions help smooth our ruffled feathers and make us realise and see how other view us, our strong point while bringing smiles, reassurances and laughter after so much stress~~ though the process of writing one is very headache, I spend like a week staring at it, dunno how to do....
28. Yes. The feedbacks addressed our mistakes quite accurately.
29. Yes. I helps me reflect and improve myself
30. OK, but feedback too general
31. Yup, very useful. Because it was all true, and some less easily perceptible by me.
32. Quite useful, reflecting quite accurately what happened during the two assignments
33. Yes, they were very useful. Feedback is always useful, it allows the us to know where we went wrong and how to improve. The feedback is always timely and straight to the point.
34. Yah.. But never receive any feedback for Chrome Extension.. :(
35. - what feedback writeups?
36.  Yes, the feedback was very useful. The advice was quite useful.
Skip: 5 (12.1%)

OK, this is probably the last time this question will appear on a midterm survey. I think most students are happy with the feedback that they are getting in the class and we have this item nailed. Thanks for the feedback!

Re: comment 21, it's a really good idea to make the teams come up with a list of shortcomings! :-) Will try to include in future assignments. Thanks!

Multiple Choice
1) How do you find the lectures?
Rank Percentage

They are completely useless. I learn nothing.


I have no idea what's happening half the time


Lectures are no different from the other classes on campus


Lectures are clear and I am able to follow the material quite well


Lectures are way cool. Easily the best class that I've taken at NUS


No idea. I donít attend the lectures

Skip 1

I'm glad that to see that the lectures are even better received this year than last year! :-) Improvement from 37% to 63%. ;-P

Hmm, but strangely enough we have 4 lost souls, same as last year. I would like to encourage the four lost souls to come talk to me to perhaps share with me their difficulties with the lectures and how we can try to make them more accessible.
2)Feedback for Lecturer Ben Leong.
1. Haha, the backbone of the big show, he is the force behind all. Really respect him and his views. His policy of not dividing the life in "Black and White" (meaning - "It depends!") is perhaps the most important one that has actually influenced me the most. Highly motivational and I think he knows what he is up to. He really knows his students well (can read between lines - scary ah.. ) and does not want sleep at all. I cherish to be his student. Till now in NUS my interaction with Professors was way limited. Prof Ben changed it a lot.
2. He really is doing sth meanful~
3. Inspiring..
4. Prof Ben is the best lecturer who I know so far in NUS. way too cool! :D
5. Didn't even teach, but did a good job bringing in external parties.
6. The speech is very fast, sometimes cannot catch it. The thoughts of lecturer are quite different from others, all about why and how to learn. They give me a better view to the world and how we can change this.
7. Interesting, very well networked, might seem to be "outsourcing" everything to everyone else but in fact not just anyone is able to organize a module with so many experienced people in the industry coming down to share.
8. he is too awesome lar! If all lecturers are like him I think I don't want to go home and stay in school all the way! If I ever go home I think I can't wait to go to school the next day.
9. Most interesting lecturer I have ever seen! Extremely efficient. But shouldn't expect all the students to work like him (eg. with no/little sleep) -- "bad influence".
10. Very, very blunt. Not that that's a bad thing. Oh, good sense of humour too. Must be smart since have PhD.
11. Humorous lecture who is always making connections and highlighting the important points.
12. Too busy. Needs to delegate more or find some way to clone himself. I'm not sure whether the more introverted students can take his direct manner of speech.. Might need to change his attitude towards the more timid students (such as the girls).
13. speaks a tad too fast other than that he is witty and amiable.
14. - believes in what he is doing - passionate in teaching
15. -
16. "Prof Ben is an arrogant lecturer." hahah.
17. Resourceful, all guest lectures were well organized.
18. very enthusiastic. fast speaker. I didn't get much impression on his teaching though (cant remember the time of 1101s). most importantly, a good man, and that's enough for me.
19. A extremely great lecturer in general. Very dedicated to the module. Very caring to the students as well. A great lecturer to the extent that it is impossible to describe just by words.
20. Er. Captain Obvious. Earns his pay though.
21. The most innovative and inspiring lecturer I ever met.
22. Talks very fast, likes to tell stories, favourite catchphrases: "the truth of the matter is"; "let me tell you a story ah"; remarkably inspiring. I don't know how he does it, to be honest, but I'm glad to have him as a lecturer.
23. Very inspiring lecturer and prof of brutal truth. however, there are some people in the class with very different, completely opposite mindsets. Some people can't see the big picture, and are too ingrained with typical NUS, kiasu culture. I think there's a strong need to point these people towards certain mindset, maybe try to discuss such mindsets in the Case Studies?
24. You have earned your pay! Thanks for inviting all these cool people, I really enjoyed myself learning from them.
25. Enthusiastic and insightful
26. Caring and entertaining. Wise! =)
27. - Great insights - A good heart - Straightforward and sincere in communications
28. I appreciate Prof Ben's responsiveness and dedication to his students. He is very quick to provide replies or advice for students through emails or chat. Prof Ben is also very friendly and the fact that he makes an effort to remember his class students on the 1st lecture speaks a lot about him. I think this really makes the difference for me because I usually find other subject profs to be rather unapproachable.
29. Tricky - try to have realistic expectations for blogs - its turning out to be a waste of time which could be put into other things. I don't really see the point when some of the blogs are just plain useless.
30. Awesome lecturer, one of the best I've had because he can connect with the students.
31. Interesting, funny. However, I don't think there is a need to "earn his pay" at every external speaker/presentation. Sometimes its better for us to mull over it ourselves FIRST, then perhaps you could step in.
32. Easily the best lecturer I've had in NUS. He's friendly and approachable. As a lecturer he's not very different from others, except that he has a better sense of humor. The difference comes what WHAT he teaches and HOW he teaches. He doesn't teach stuff, he teaches you how to learn stuff, why to learn stuff, and what to do with it. He does not impose learning, he motivates you to do self-learning. He's very interesting and willing to try out new things - random (and different) stuff happens every week because of him; CS3216 is a box of chocolates. He will give you proper reasons if he does anything out of the normal, and will allow you to challenge him with good arguments. He understands student psychology very well. He is a person who when you look at, you see such good qualities that you get motivated to become as good yourself. That's what makes a teacher.
33. very nice professor, encouraging and aspiring~~
34. very passionate and persuasive.
Skip: 7 (17%)

Considering the sort of pain I like to inflict on students, my colleagues often wonder why I have pretty good teaching feedback and ratings. The good thing about education is that contrary to popular belief, it's not popularity contest and students actually know whether they are learning stuff or not, and students appreciate learning when they actually learn something. :-)

Re: comment 23 on the students who are ingrained with the typical NUS kiasu culture mindset, what is the solution? This class is supposed to "fix" mindsets. If I cannot "fit" their mindsets then for all intents and purposes, the class has failed (for them). Can someone offer me ideas?
3) Suggest other topics that should have been covered for the lectures (if any).
1. Marketing skills.
2. How to make website or online application fast?
3. I think it's quite comprehensive. This module is about learning right? Self-learning is awesome.
4. Web marketing Designing the UE monetizing applications
5. I think technically we dont need much programming lectures but yeah some more lectures with general discussions (as during the beginning of this module) would have been good. It would be good to involved in discussions again :)
6. step by step guide to marketing for geeks? =P
7. I think there's not enough time for the lectures already. However, a list of extra reading material can be prepared. A suggested list of topics are: Good metrics to measure traction How to understand your users How to conduct usability tests How to build a MVP Some materials on project management, teamwork, proper planning (obviously very lacking in every group, since everyone is handing in last minute work) How to build things that are cool and generally useful (and not just cool for cool's sake)
8. More flash/illustrator workshop
9. since the the name of the module is software development on evolving platforms probably the lectures should introduce some cool technology around or some popular tech. terms eg. cloud computing, saas, soa.
10. E commerce?
11. I think you got all the most exciting subjects in today's tech covered! Maybe Zuckerberg himself next time and not just his classmate!
12. None.
13. Web Development in China. How Chinese firms are cloning Western technologies? Bring in Chinese entrepreneurs who have been fairly successful in conquering China's online market.
14. Nil.
15. -
16. silverlight. some SE principles in detail.
17. Anything interesting.
18. nil
19. Nil.
20. - How to go about beyond software engineering, such as commercialization. A brief lecture, maybe?
21. Summarization of programming languages that could be used for the assignments so that we have a clearer image of what to do and how to do them.
22. N/A
23. How to de-stress.
24. -nil-
Skip: 17 (41.4%)

It's interesting that people are asking me to teaching marketing again this year. Unfortunately, marketing is not my forte. I would recommend that people pick up some books to read in their spare time. While I dunno much, I suspect that it's probably quite common sense. :-)

Re: comment 2, I think you guys are already forced to learn that in the FB assignment. No point in repeating lessons that are learnt elsewhere.

Re: comment 8, Yanjie has kindly volunteered to teach Illustrator in his spare time. I think he had already sent email to the interested folks. If you somehow got left out inadvertently, please send him email.

Re: comment 7, that's actually a great idea. I had already created a page to keep track of random and interesting stuff. Also, we have a course Wiki. But I guess it's true that more can be done in this respect.

Re: comment 21, the programming languages are already state in the assignments. We only support PHP for FB assignment and Java/Python for the Google Wave assignment.  If you want to do anything else, you'd have to figure that out and learn it on your own. There are limits to the amount of teaching support that we can provide.
4) Which of the workshops (UNIX, XHTML/CSS, PHP/MySQL, Intro to JavaScript, AJAX) did you attend. Please let us have your feedback on them
1. - i attended all, except for silverlight. - great beginner classes to get one's feet wet in that particular technology.
2. wave. it helps a lot coz its very detailed, but later I found it less helpful since we didn't use Python in the end.
3. AWS - was useful Flash - I already knew what was going on JavaScript/ AJAX - cant catch up Presentation - Awesome. Good job Yanjie
4. UNIX, AWS, XHTML/CSS, PHP/MySQL, JavaScript/AJAX, Wave. I did not find them very helpful, either because I am not fast enough a learner or because they aimed to cover too many things which made the lessons shallow. I suspect it is the latter. Many students were lost during some of the workshops, while those who had prior knowledge could keep pace (but then what's the point for those who already know?) My suggestion would be to keep the language details minimal and emphasize on i) what exactly these technologies are capable of ii) how they integrate with other technologies, and iii) how they are used in popular online applications.
5. Attended all. Everything was quite good, except Silverlight, during which I couldn't quite follow what was going on.
6. AWS - Informative. Wave - Very helpful. Flash - Easy to understand.
7. N/A
8. Attended all except Photoshop and Flash. Most of the workshops are good and fun but they probably cover too basic stuffs.
9. UNIX, AWS, PHP/MySQL, XHTML/CSS, Wave, Photoshop, Illustrator. Generally they are good. They are supposed to be introductory and inspirational workshops right? Then they did their work well.
10. All of them, save XHTML/CSS. I wasn't paying much attention through most of them, to be honest. Photoshop I already knew how to use, Silverlight I wasn't interested in (HTML5 is seriously going to give them a run for their money); Flash I came late. In fact, most of the patterns for the workshops would be that I'd follow closely for the first few minutes, and then - just as they introduce some practical thing we needed to do - I'd get lost. And so most of the workshop learning actually happened *after* the workshop, with the walkthroughs the tutors wrote in one hand and a code editor in another. I loved the presentation one, though. I paid full attention to that.
11. I attended most of the workshops. I believe that because of time limitations, some workshops that would have been very useful to have right at the start had to happen in the later weeks. I feel that it would be good if there was an early release of the guides used in the workshops related to programming so that students can refer and learn from it earlier. In this way, students can learn the essential things first. During workshops, the easy to understand materials that can be taught through guides can be taught more briefly and more time can be dedicated to other more advanced mechanics or for questions.
12. All of them, I find that most of them is too fast for non SOC/Engin dude and too slow for SOC/Engin dude. Try to set target group for each workshop instead of trying to cater to everyone
13. all except silverlight
14. Unix, Aws, xhtml, css, javascript, ajax, wave, photoshop.
15. I attended some but waking up early on Saturday mornings was an actual pain. I was usually late for them, but I think they were good. The level was pretty low for the programmers and the non-programmers were a bit lost. The reason why I attended those classes were to interact with people. So that I could talk about stuff over lunch (and get free lunch :P). It was a good interaction platform.
17. AWS, Wave
18. All of them. very simple, useless for real operation~
19. All. Too short and not much time for hands on (forgot much soon after that), should be made to whole day workshops and place them before the semester starts! Maybe a 3 day workshop before the sem starts would be good. Then we get more ready for the intensive course later on and not hv workshops eat up our study time on Sats.
20. All. Would have preferred them to be more technical but I guess it's not possible when non SoC students are already looking so confused.
21. UNIX, AWS, Wave, Photoshop - All were taught well. Appreciate the materials also, really useful for refreshing next time.
22. All except silverlight. All rather entry level. Gives wide range of coverage. Good for beginners.
23. PHP/MySQL, JavaScript/AJAX, Wave, Photoshop, Flash. Feedbacks comes with each tutor.
24. everything actually. I guess, they do proceed at a really fast pace and for those that do not know or is really new at it can be very lost... though the practical part is really nice for workshops since we go through the process of doing and won't be as blur.
25. All. Unix - boring for advanced ppl, hard for beginners AWS - should have got students to set up THEN approach for help. the problems encountered were not mentioned in the helpsheet nor session. XHTML/CSS - good intro with hands on Php/MySQL - boring for advanced ppl, hard for beginners JavaScript/AJAX - BAD Wave - BAD Photoshop - useful, but lack of time cut away a lot of material Silverlight - need to slow down pace a bit.... zihan went too fast Flash - useful intro with hands on
26. The way SVN was taught tend to scare ppl away.. SVN is a very impt tool.. But for a start, where many ppl do not even know what it is for and how powerful it is, I think should teach it via the GUI method instead of CLI so that students can see the usefulness of it..
27. UNIX AWS not really informative, same things can be learnt from the tutorial paper. Workshop too short, no hands on (in class). Should be hosted in computer lab instead.
28. They were quite technical and not too interesting for me, personally.
29. I attended most of them. Had to skip the Wave workshop due to NOC homecoming. Generally, the workshops are quite good and covers the basics. However, there is a lack of power points in one of the venues (the Photoshop class). A suggestion would be to ask students to bring the multiplug or power cables.
30. UNIX, AWS, PHP/MySQL, JavaScript/AJAX, Wave. In general very good.
31. Everything. The first few programming workshops are too easy for the programmers. The pace of the design workshops are pretty well done.
32. UNIX, AWS, CSS, PHP, WAVE, PHOTOSHOP, I don't think they are helpful. I can just google/youtube for more information.
33. ... Workshops are too short la. Can understand what the tutor is doing la. but where got time to learn everything?
34. UNIX AWS XHTML/CSS PHP/MySQL javaScript/AJAX Photoshop Silverlight Flash. Very Simple. No serious enough for real application.
Skip: 7 (17%)

We pretty much get the same comments every year, but I believe that I already explained the purpose of the workshops at the beginning of the class. There are time constraints on how much we can do and we do have a large variation in the background of the students for the class. The workshops were never meant for the experienced folks. Part of the purpose of CS3216 is to allow people to learn stuff for themselves and the experienced folks are meant to do exactly that.  The workshops are there mainly to cater to the beginners and to give them an introduction so that if they want to learn, they have somewhat of a better idea of where and how to start.

It is also because of this reason that workshops are OPTIONAL. The folks who already know the stuff and think that the material covered is too basic were welcome to sleep late on Saturday. Next week, we will however have a rather advanced workshop on web programming that Chris Henry will be teaching. The non-programmers might want to sleep late on this one as it might be over their heads.

All in all, I think we did pretty well trying to straddle the chasm between the experienced programmers and non-programmers.
5) Do you think we should conduct other workshops? What should they be?
1. Nil.
2. A special workshop dedicated to those who are not technically inclined?
3. N/A
4. Not that I can think of. Maybe how to decipher APIs? MySQL/PHP should come hand in hand with some basic database design concepts
5. Yes. Anything related to technology that we can learn about.
6. Making a website fast!
7. Well I think present ones were pretty cool. Could have done more with SEO workshops.
8. The scope of workshops conducted is wide enough, now focus on being more effective will do.
9. Start the Workshop later! =P
10. focus on JQuery
11. more on actionscript. more knowledge dealing with web server.
12. ASP.NET Google Web Toolkit HTML5
13. Maybe have some optional classes for non-programmers.
14. Nope
15. Put up the bios/project info of the company representatives who came to pitch for the final project, so that people can review them after the lesson.
16. Nil.
17. the workshops seems concise and serve as a good intro for non computing students or students with no tech background.
18. More dialogue sessions with people! Try to bring in a businessperson who succeeded at running a tech startup to talk.
19. iPhone/Android/other mobile platform programming. That would be quite useful!
20. nil
21. A workshop to introduce various languages that could be used as a summarization.
22. Yes, C#.
23. Nope
24. iPhone/Objective C? Otherwise, maybe Ruby on Rails!
25. Nope. Can't think of any. Maybe more free lunches? ;-)
26. I think workshops the workshops were sufficient
27. Can't think of any
28. no.
Skip: 13 (31.7%)
Interesting ideas, will KiV for future reference.

Re: comment 15, the bios and information was indeed compiled and available online 3 days prior to the external pitching. 
Multiple Choice
6)We introduced blogging as a means to enhance learning and we would like to seek your feedback on it's usefulness. Do you think that this method to encourage reflections has helped you in your understanding of the material covered in lectures?
Rank Percentage

Nope. It's completely useless. I don't bother with reflections.


Tried a couple of times. I think it doesn't help.


Sometimes it's useful, sometimes it's not.


Generally helps for me.


That's the greatest thing about CS3216. All classes at NUS should introduce blogging.

Skip 0

Interestingly, the proportion of students who think that blogging is at least generally helpful has increased this year from last year.
Multiple Choice
1) What is your overall impression of CS3216 thus far?
Rank Percentage

This is a horrible class. Truly regret choosing it.


Itís alright, but mostly painful.


Just like any other module


Itís a good module and I definitely enjoy it.


CS3216 rocks! Coolest class I have taken in my life.

Skip 0

OK, looks like we're doing something right this semester. Strangely enough, there's on poor soul who got himself in the wrong class. That's better than the two we had last year. Ah well. :-P
2) What do you think you have learnt thus far?
1. Cloud computing Silverlight Facebook API Google Wave API Problem identification Emerging market opportunities My weaknesses
2. I recognized that people are important. And in CS3216, you get awesome people all around! =)
3. Learned a lot. Besides a boost in programming skills, it make us reflect a lot and enhanced our soft skills.
4. so many things that I've started to reevaluate what I've been doing for the past 4 years.
5. Programming wise - the learning graph has been exponential. But I don't think that's the main point. It actually depends on the hard work one puts in. Otherwise I have learnt a lot. I will do a blog post regarding this perhaps. A 500 words limit is too short.
6. - How programmers work, mindsets of hackers. - How to manage technical projects, Scrum. - some basic programming concepts wrt PHP, database, schema diagrams. - Photoshop skills.
7. I have learnt that people are not like me, that teammates that are anal can be really hard to handle, that I should be more careful when I choose to work with somebody. I have also learnt that there are programmers and there are programmers with quirks. I have learnt that programmers with quirks have skills that are > that of normal programmers. I have learnt Javascript (yay!). And I realize now how much I love programming. I have learnt why I can do good presentations. I did not know it, but the skills I'd picked up after three years of debate could easily be distilled by Yanjie's framework. I only wish I knew it sooner, in order to teach my debate juniors what I've learnt this year. =( I have learnt that not all ideas are created equal. I have learnt tenacity, in the face of absolute rejection. I have learnt how it feels like to stay up all night plugging in a backend. Not bad, for only 5 weeks.
8. Some basic knowledge of web programming, like PHP,javascript,database better understanding of project workings how to market apps and maintain them some knowledge about UI design
9. Learnt a lot, too much for me to recall.
10. -> Some programming languages -> That software engineering is all about MANAGING COMPLEXITY -> Communication skills -> Time management. Not wasting time because there will be a lot of things you wish you had done when you look back at the time you wasted -> To think critically and try to recognize the voice of common sense -> That sometimes, to learn, you have to be forced to learn -> That it is important to learn very, very, fast and equally important to keep a watch on how you are being influenced by it -> That the human body will react in weird ways if not given enough sleep
11. People.
12. I've learnt many things that I would never have noticed if I stuck to conservative and conventional projects where everyone is supposedly capable of doing that one job that the project requires. How the teamwork is like when you need to deal with people who don't have the same type of knowledge as you do and why we should take things that they share seriously when it is something you don't specialize in.
13. A LOT!
14. programming? hahaha yes I've learned a lot but it's just a small portion of what I've learned from this class. think more, code less. This course is not just finishing all the projects. we wanna make a difference so we need to think more before we do. think about what we want, what users want and how can we make it better. People. People are not like me. everyone in this class is unique and has his own talent. It's my pleasure to work with them and learn from them. Connections to the real world. I hope other modules could also do so lol.
15. team work.
16. Team dynamics. Somewhat more programming. Some business concepts(I guess)
17. COM1 is our best friend~ How to camp in SOC...
18. - working well in a team -
19. seriously, there's too much to say, programming, design, etc. I guess the main point is not so much about the skills we learn but more on how to make things work. How to pool your ideas together, analyse them critically, from different point of views, put yourself in shoes of users and see how it'd go. How to really work in a very tight schedule, how to work with different people, learn to accept and work around quirks, form relationships. How to source for help and advice, mostly learning that not everything will work in the real world. We'd stumble, we fail at times, to get things done we have to spend a lot of time and energy. But most importantly of all, I believe is the will to stand up from where we fail, work together through our lows and the determination to succeed to matter how many times we fall. Of course, we also learn to accept our mistakes and learn from it, know when things won't work and think harder to see ways around it >.<
20. Discussion rooms open 24/7 with air-con. COM1 is our sweet sweet home.
21. Too much to mention. It's only halfway through CS3216 but I feel that CS3216 has helped me to develop a lot. The time spent in CS3216 will be one of the rare moments in my life where I will look back and say that it is life-changing.
22. People can make a good judgment about the kind of person you are in a surprisingly short time. There are a lot of people with passion. Communication and persuasion skills are very important.
23. - A better idea of the process of software engineering - A better understanding of the tech start-up landscape - How to work with different people with different background - Lessons on how to build and manage a team.
24. FBML, at least. Too much to be quantified in merely words.
25. Quite a lot. The first is to be a team worker. Then a bunch of languages.
26. A fair bit of programming I would otherwise have never known about for the remainder of my life. There are lots of talented people around with amazing ideas and the energy to execute them. Some people are over-obsessive about projects and that you need to develop efficient ways to tackle them.
27. Programming. Project work. Team work. Real software implementation, real people testing. Characteristics shaped. Sales (a great lecture from Microsoft)....
28. Some technical skills such as coding for FBML, using different API etc.. Good insight of what happens in current IT industry.
29. Already answered in blog.
30. Learnt abt what makes facebook apps successful Learnt abt the importance of "Code less, think more."
31. php js ajax html, more concepts on API.
32. About myself - my limits, my principles, my love for people. I have picked up quite a bit of programming knowledge.
33. Learning to work with people from different faculties who do different things than I do - everyone has a different specialization we may not understand - was definitely a great, new experience for me.
34. Working with people from different areas and constantly be proactive
Skip: 7 (17%)

Looks good. Seems like things are going well.

Personally, I have never been much of a fan of teaching stuff, i.e. programming languages, APIs, etc. I believe that it's the process of getting smarter that's most important. Stuff you can always google. I would like to highlight that I'm particularly pleased about comment 32. I believe that Sun Tze once said, "Knowing yourself and knowing your enemy, a hundred battles a hundred victories''. The self-reflection part is particularly important. I'm particularly disgusted that many losers will be first to blame others (and for Singaporeans, the Government) when things go wrong, instead of looking in the mirror. I would advocate taking responsibility and accepting blame first whenever something goes wrong. If it's not our fault, then it probably doesn't matter if we take the blame wrongly; if it's our fault, better quickly fix. The problem with always trying to push the blame on others is that many times, it really is our own fault and unless faults are acknowledged, they will never be fixed.
Multiple Choice
3)Would you recommend this module to anyone else?
Rank Percentage

No, I wonít want them to suffer the pain I did.


Nah, I donít think itís worth it.


I have no opinion about this.


Yes, I will encourage anyone who asks me.


Of course, every NUS student should take this class!

Skip 0
Looks like we're doing better this year than last year. :-) Either I've picked the right students who are more suitable for the class, or the teaching has actually improved. Either way, it's a good thing. I would like to acknowledge the efforts of Kok Wee and the Tutors. I thought I had damn good Tutors last year (I did have damn good Tutors). This year's Tutors even better than damn good. :-P Kok Wee is the same, only smarter. He's obviously working much smarter this year. :-)
4) Please give us your comments and suggestions on how to make your learning in CS3216 more efficient and interesting.
1. More time. Period.
2. none
3. -nil-
4. CS3216 is actually interesting. Dont kill this module :)
5. A bit more guidelines on team forming, team building and how to manage the dynamic provided the variety of backgrounds that students come from.
6. Have more lessons which are like 'show-and-tell' or the pitching party.
7. Give time to work on projects. For instance facebook project could be over three weeks with three deliverables (2 progress and 1 final) Throw away the Application-Seminar part - its ineffective if you don't give students time.
8. Having 2 assignments instead of 4, allow us to focus more on the projects.
9. I can't. Right now CS3216 is the definition of interesting. This kind of thing I can probably only answer when I'm someway down the road, and looking back and comparing to other similar experiences (if any).
10. N/A
11. It is already very interesting. As for efficiency, I think the two key factors are how willing the student is to learn, and how well he manages his time, both of which depend almost wholly on the student. So while it cannot really be taught, it can be emphasized repeatedly like Kok Wee's emails to complete the attendance survey.
12. provide more useful links for us to explore (not YouTube one...I mean more programming related links)
13. Wonder if Prof can share how past CS3216 teams are doing from previous classes? will be good to know if team dynamics and commitment last beyond the Final Project stage.
14. I think it's a pack full load enough for me, though more efficient huh, I suppose workshop that tally with the progress on things that we do can help.. interesting, I think it's the most interesting since I believe how interesting this module will be depends on what the students want to do... which for me, it's the best time >.<
15. -
16. More efficient - utilize technologies which you are familiar with More interesting - utilize technologies which you are unfamiliar with
17. could bring in more external speakers of interest to us. i think we learn best when we hear from the people who have already done something we want to achieve.
18. Concentrate more on the project itself.
19. all is but a matter of ourself. mindset must be positive, and passionate, only can achieve great if u WANT it so much!
20. increase the MCs for CS3216. Take less other modules.
21. To make this course more interesting... maybe can ask us to build sth and sell it (for eg. iphone app?) as a means of competition. Then the amount earned will be part of the grading (we can also earn some pocket money).
22. CS3216 should be made 8 MC module and the duration should be 2 semester for one batch!!!!! It will really bring the best out of students! I think if the above is the case, cs3216 will produce a lot of successful application which makes real money! 1 semester is too short!
23. More professional tutors and more depth for workshop. Like really way more, but allow peps to specialise
24. Relieve me the burden of these "other modules".
25. Needs to end on time (last bus is 11pm for 95, 96, 151 and the bus stop is far away), and should cut off when people start to just want to show off and aren't saying anything new or constructive anymore or repeat the same points over and over again. I mean, they can, but maybe when there is more time.
26. Nil. The CS3216 is ways too good to me :-).
27. For certain lecture, set a targeted groups of student, instead of for everyone.
28. make more workshops and make sure the workshop is helpful for different level students.
29. The SoC wiki is not a commonly used feature by the non-SoC people. I'm not sure whether that's just my personal feeling. I only discovered the SoC wiki after 4 - 5 weeks.
30. I find that the sharing for case studies is very useful. It'll be good if we could receive more information or sharing of past experiences from previous students of which we could directly learn from and apply into our assignments.
31. -
Skip: 10 (24.3%)

To respond to comment 6, we will have another discussion style class on the second last week. That's when all the groups must pitch their Final Project and convince their classmates that they "made a difference". It will be peer grading "on a curve". Basically, each student will provide a ranking of the other projects and we have a way to translate that into grades.

Re: comment 25, I think that except for Show-n-Tell, we mostly end on time, or only a little over the time.

Re: comment 21, money is not always a good measure of how much of a difference you made.
5) Any final words about CS3216? This is your chance to tell us anything you want that is not already covered by the previous questions.
1. rock on!
2. Isn't the final words supposed to be at the end of the semester? =P I greatly enjoy sessions with external speakers. I feel that it is helpful for us when these speakers share on their own experiences, what they do or about their fields. For example, I didn't really understand what cloud computing was about but the talk by Simone really gave me a better understanding of it. I find that speakers who come in to share and teach are generally more interesting and provide us with valuable learning lessons rather than those who are only there to sell and pitch.
3. Very thankful for all the opportunities offered. The module exposes us to great people, which is all that matters.
4. 1) I picked no opinion for question 23 because it depends. If the person is an academic nerd, then, no, I would not recommend this module to him. He's pretty much destined for an office desk anyway. I would recommend this for anyone who feels dissatisfied with the exam oriented academic system, and who maybe learns differently from the book-and-exam format. I would recommend this for future entrepreneurs. 2) Thank you for creating this module.
5. Great module, please keep it up!
6. Fantastic class. Wish college was as short and intensive!
7. It's a memorable experience.
8. I am very thankful that this module exists, definitely pushed me to do many meaningful stuffs that other module could not possibly provide. The environment is simply too encouraging for people to create things from their passions.
9. give us a good environment to learn. I never regret to take this module ^^
10. awesome!
11. hmmmm, we should definitely do this in the future and not let this be the last sem for cs3216. Perhaps, we can venture into different areas such as mobile/internet development since facebook is really becoming very saturated..
12. Peer appraisal from other groups should be a criteria in judging the assignments.
13. CS3216 is a very good module. However, it is super stressful for the teaching staff. Personally, for me, I'm having a hard time keeping up with all the requirements, cause I don't really know what's the next upcoming deadline. Is it possible to put an online list of deadlines somewhere? Such as a google spreadsheet or something. Keep allowing the random people to attend. They add valuable perspective. The guest people who drop by are really interesting. If the purpose is to get people to dream big, then the class is moving in the right direction. If the purpose is to teach people to execute, it's probably not fulfilling it. If dreaming big is the purpose, then all final projects that only serve a local market should be rejected. It might be interesting to get some towkays down... I think it will help a lot of people to work with real business problems. It's surprising what a small amount of IT can do to help solve people's problems. The class should have dinner at biz canteen at 6pm before the class starts. 1. Bonding. 2. Stop people from being late. The PRCs students are not being assimilated.
14. It's really awesome. I think it's an option from before, but I don't think it emphasized how fun this module is, while being a great learning experience. Very sincerely, thank you for having this module and arranging it all for us.
15. 3216 for mortals will become something like 3215 for web programming. Not a good idea.
16. Its quite a harsh and selfish thing to expect everybody to think that CS3216 is everything and they shouldn't care about the rest of the modules - this may not be apparent but the workload suggests that. I was able to manage but there are a few who really struggle and seem lost. Don't make it sound as if CS3216 is a golden ONCE-in a lifetime opportunity. It certainly might be once-in-your-undergrad days opportunity (Actually I have done a stimulating project before). The lecturers and, students by extension, seem to make a big deal out of it. Its a good NUS module - but certainly not so good to outstrip the rest.
17. NIL
18. Probably reiterated countless times - 8 MCs, maybe?
19. It is sad that this might be the last batch of such a great and unique module. Fortunately, prof still says that there will likely be some kind of CS3216 in the future. If that happens, I want to apply again :-P (hope that the new module allows previous students from CS3216 to join).
20. I am grateful that I have this chance to be enrolled in such a fabulous course!
21. there should be post cs3216 activities for the students!
22. I hope you can continue to offer it in later semesters. You are enriching lives in the best way possible for a semester-long module. Maybe you can take testimonials and final projects from past students as proof of the module's awesomeness, and present it to the committee for reviewing :P. They'll sure be surprised at the quality of this module, if they don't know already.
23. Awesomeness. Arms races are generally beneficial to the projects, unhealthy and can't be avoided - more welfare would give prof a more caring image
24. after all, I'm very grateful and feel blessed to be enrolled in this class, I see a lot and learned a lot, certainly more valuable than other modules. People like to think big in this class, and very often in the end they realized they can only make happen a corner of their original vision, so that's also good for us to realize our capabilities and limitations.
25. This survey is uber LONGGGG!!! =p
26. -
27. It is said that CS3216 is just the beginning. I truly agree with this.
28. -
29. absolutely the best module ever.
30. none
Skip: 11 (26.8%)

Some interesting views. I will respond to some of them.

RE: comment 13, all the requirements are actually laid out in the IVLE Lesson Plan. Mentioned that during the first lecture.

While it's true that thinking big typically means that students should be encouraged to look outside Singapore, that's not sufficient reason to say that all projects that serve the local market should be rejected. There is a lot of money to be made even in Singapore and in some cases, it might be better to use the local market to test an idea before trying to ship it globally. I'm against setting artificial boundaries on what people can and/or should do. Students should work on what they believe in.

The comment on the PRC students not being assimilated reminds me of Star Trek, i.e. the Borg. Why do we want to assimilate them? I actually think that people should be allowed to live anyway they want as long as they don't cause trouble and/or inconvenience to other people. I actually never understood why some Singaporeans are concerned that the PRs are not mixing sufficiently with the locals. Even Singaporeans, they also keep to themselves what. How many people actually talk to their neighbours. This country is actually in quite a sad state given the rising xenophobia.

Re: comment 16, I don't understand why the student is complaining. Does he/she not know about the legendary workload for this class when he/she signed up? I feel a little sorry for he/she that he/she has found him/herself in the wrong class, but perhaps this might be a lesson on doing some homework before signing anything. There's a lot of information available online for CS3216. In any case, there's always a choice. If this student would rather focus on other classes and do less work for CS3216, he/she does have the choice of spending less time and get a lower grade. See mindset problem suggested by some student above.


Last updated $Date: 2015/02/26 13:12:26 $