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, 2007/2008) 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. For CS3216, it is especially important since this is a new class. That said, it is also precisely because CS3216 is a new class that what is true for 2007/2008 might not be true for 2008/2009. The only consolation is that the lecturer does in general get a little smarter teaching a class the second time round and things would hopefully be better the next time this class is offered (probably Sem 2 of AY 2008/2009).

Total Number of Respondents : 44/51

1) Why did you decide to take this module?
1. It seemed interesting, challenging, unique and informative.
2. Sounds fun
3. To do something different. Its like either do it now, or forever miss it. With regards to qn 3, the assignments are definitely not hard. But it takes up 100% of your time to make a proper app.
4. I wanted to try something no one else does before. And I was interested to see how I can work with different kind of people from different background.
5. Thought it was interesting and different from other NUS modules.
6. It sounded interesting, and quite a detraction from the normal NUS type modules. Also, thought it would be a good chance to get my hands dirty with Facebook application development
7. I dont know anything about how to write a web app. Taking this module will help me to do this. Besides, I can meet new friends, quite good lah....
8. I thought that it will be a fun experience. Being a facebook developer sounds cool to me. And, the module will be something very different from the normal boring NUS module anyway, so why not right?
9. I had intended to pick up web programming in an accelerated manner through this course and at the same time learn about the basics of software development.
10. find it interesting and new. was addicted to facebook.
11. Interest in web programming and find this new module very interesting. Wish to know more ppl who share the same common interest as me.
12. To try out something new and learn facebook development and to build on to my portfolio. To meet like-minded people. And I prefer practice-oriented learning to theory-oriented learning, since I like puddings.
13. I wanted to meet more ppl.
14. Its new and interesting, so I decided to give it a shot
15. It was something very different from the usual modules found in NUS, and it's a first time for this module, so I thought it'd be fun to be one of the pioneers. Plus it was a Facebook module which allowed me to develop my ideas and whatever I want, and to create applications I always wanted to.
16. To learn more about facebook and social networking sites.
17. I perceived this module as a vibrant module where I could meet with interesting people in addition to a professor who has broken off from the norms of NUS.
18. Partly because I was in a research group that needed to deploy a game to collect network-usage data. Another reason was that I felt that it would be challenging to take a module without knowing how exactly it will end.
19. I wanted to take a module which actually allowed me to do what I want, make what I want.
20. Hope I can do something cool; make new friends, learn new things...
21. I am interested in Open Source and want to get the hang of FB programming.
22. Mainly curiosity... again :)
23. Great opportunity to learn anything and everything. Chance to do something out of the world.
24. Out of interest
25. I thought that a module of this nature would be interesting, and that there was something i could take away from it to apply in other modules.
26. I want to try something new
27. by then the application of this module started, i was just starting to using facebook. think it would be great if some time could use the app i made on my own.
28. Hoping for something cool, which I guess, I got more than just cool. Haha
29. I wanted to meet and work with interesting and smart people. A course like this would be very likely to attract talented students to join it.
30. 1. Ben is cool! 2. Facebook and Web 2.0 is the future of new media. As a CM student, I think it is necessary to know the theories and technology in it.
a new module it is challenge know more people who have strong programming skill or enterprise spirit Dr.Ben :)
31. The FB platform is currently the hot new thing and it was a great chance to get involved and see first hand what the fuss is all about.
32. I thought it's fun.
33. To learn new skills and meet other people
34. I wanted to give myself an excuse to learn web programming languages (PHP).
35. Coz its fun and SOMETHING USEFUL and practical! I can actually create something and show it to the world (unlike the other not so fun modules)
Skip: 7 (15.9%)

Interesting that students take CS3216 for a variety of reasons.
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

Given the diversity in the class, I have found that it is very difficult to ensure that everyone will achieve the same amount of learning. I guess if 60% of the class think that they learnt quite a lot, we ain't doing too badly for a first try.
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

I'm satisfied that the assignments are sufficiently challenging and yet not overly so.
Multiple Choice
3) How do you find the module workload?
Rank Percentage

Too light, I want more work!


On the light side.


Itís like other normal module.


It tends to be on the heavy side.


Way too much workload, I can hardly breathe!

Skip 0

Yes, I got the message. Assignments were too much work - but to be fair to me, the basic requirements for the assignments that takes up 70% of the grade were really more than reasonable. As it turns out, students spent a lot more time than expected trying to get at the 30% of the "creativity" grade. This outcome was quite unexpected, but it did lead to some pretty impressive apps for the assignments and some of the groups followed up on those apps for their Final Projects. 
4) If you found the workload to be heavy, how do you suggest we can arrange the curriculum to better balance it?
1. I don't have any idea about this :D. Sorry.
2. I feel that we are a little over-assessed. Some of the assignments are basically formalising what we have already done on our own - eg: Application seminar. Perhaps some of the assignments can be combined, such as Assignment 1 and 2. Or Assignment 1 could be a in-class exercise instead. Then again, there is this desire for us to have worked with as many people as possible before we head off to our final project. Perhaps that could be achieve through in-class exercises instead?
3. lesser projects? long time to develop ideas. If the point of the class was to make us think, time should be given. Due to the insufficient time given (approximately a week) there is hardly time to think through ideas carefully before the necessity to start on them already.
4. Maybe there were too many assignments. While I understand the purpose of all 3, the fact is that for some of us by the time we finished assignment 1 we had actually managed to inadvertently clear some of the milestones in other assignments. After a while we ended up suffering from FB fatigue
5. Reduce the number of assignments
6. In modules where the syllabus is fixed, there can be grading by quota and by bands... But for something like CS3216, grading should not be relative. Much grief has been caused due to competitiveness. Do consider that his module has no prerequisites. If learning is the objective, than we should be graded on how much effort we put into learning and how well we learnt. There should be no comparison with other students taking this module but rather compare the intensity and effort compared to a normal 4MC module with no pre-requisites. Compared to CS3214, the workload might seem similar, but do note that CS3214 is completed by groups of programmers. In CS3216, the load is double because there are less programmers.
7. Instead of having so many assignments, reduce it to maybe just one project and one assignment. Also, try to give credit for great ideas instead of a full completed application. It should be noted that it is extremely difficult to complete a worthwhile application within 1-2 weeks. The only way to complete an application would be to do something cute and 'stupid', which is not what most programmers with pride would want to do. If you can see, a lot of applications have lots of potential, just that there was little time to carry them out to fruition, and I've heard that some of these apps scored better than completed applications, which I feel were not very innovative and has no potential for development. Reduce the number of assignments, and allow people to have time to really complete worthwhile applications, instead of producing many 'useless' applications.
8. can we just cancel those code review, ui review and application seminar thing?
9. Reduce number of assignments, requires more pre-requisite
10. JUST ONE major project and GET RID OF ALL THE ASSIGNMENTS SUB-ASSIGNMENTS, etc. I am quite pissed with the workload of this module especially since it is only 4MC. I rather it be lighter and exams. I think the workload is equal to 3 of my modules easily.
11. Reduce the no of assignment. lengthen assignment period.
12. Reduce to two assignments, and increase time for each one.
13. 2 apps instead of 3. By the 3rd one, already out of steam. Most of 3rd ones objectives are already done in 2 anyway, so its like just copying over.
14. Remove the assignment.
15. Perhaps the first 3 assignments can be more spread out to give more time for planning? Most of the pressure for the assignment came from within, really, to create an application that we would be proud of ourselves.
16. Set more specific and clear task what to be completed on the assignment so it wont be too open ended. It will also be good to teach us the things we need to know to even attempt the assignment. Currently there is very little in the lectures that teaches us how to code a facebook application.
17. Firstly, the App. Seminar should be the FIRST thing we do. Once we know what a good facebook app requires, we should develop just one or two applications for the project. That would result in 3 projects in total. I would cut out all the other work to a minimum - its all fluff: the reports, the reviews, surveys, peer reviews, everything else. Plus, the classes should be less lecture and more information sharing sessions and group discussions, perhaps in informal groups. Maybe we could take on a new topic every week and break up into groups to discuss and make an impromptu presentation in a hour. then spend the next hour giving those presentations to the rest of the class. Topics can be: platforms, coding the app, acquiring users, business models, etc.
18. Put much less emphasis on the assignments so that the students do not overdo the assignments.
19. Combine many of the mini-assignments into larger chunks so that the students are concentrating on something for a longer period.
20. Give non-programming people more non-programming work. Design review is a good start, as opposed to code review.
21. Part of the heaviness is because we inflict it on ourselves trying to do cool things but another thing is that there seems to be a lot of writing involved. Writing write-ups, reviews and so on. That is quite time consuming. One thing you guys could do is consolidate the writing so that it gives a perception that there isn't a lot to write. Like the design reviews, the 2 apps were given to us at two different times with two different deadlines. What you guys could have done is to just give us the two apps and gave us a single deadline.
22. Combine assignment 2 and 3, most of assignment 3 milestones would have already been fulfilled in assignment 2. Even though students do all their work on the last minute, a longer "duration" for the assignments will allow a "breather period" to rest before going on to the next big thing.
23. Assignment after assignment, we have not finished one assignment, we have to form a new group for the next one.
24. It would be better if the course has 1 final project that we focus on. The assignments could be done in a discussion/review session, so that the non-coders can help their team members. The short time frame between assignments give a lot of stress, and the quality of applications cannot be as ideal as we wanted it to be.
25. Perhaps cut down the number of assignment by one or two and spread the rest out.
26. The assignment itself is not heavy, however, it's too free and open , pple usually put a lot of effort in to that. I think 2 assignments are enough. The first one actually very easy, could possibly done in 2hrs work shop.
27. not balanced work load between coders, designers and writers...
28. The course aims to take in a diversify range of students but the assignment and course structure seems to assume everyone is a coder. May the curriculum could be more diversify rather than focus mainly just on coding.
29. put the seminar at the beginning of the semester. Change the assignment one to workshop.
30. Erm, I would really suggest cutting down an assignment app. Because since the enrollment is done by choosing the enthusiastic and the hopefuls, people tend to OVERDO their assignments. Let them, but let them enjoy working on it also, coz it's pretty draining all these while. My 8 MC module is not even half as heavy as this 4 MC module... haihz..
31. I think this module has waaay too much workload for a 4MC module. It should be a 6MC module instead. To balance the workload, I think we should cut down on the number of extra things we need to do like application critique, design reviews and code reviews. 3 small assignments and 1 final project is waaay more than enough. In fact, I would recommend 2 small assignments and 1 final project (then we have more time to focus on our final project to make it really good)
32. the assignment could be some milestone like mission, no need to build a who application 1 small 1 big application
33. I feel that we are trying to do way too much. The assignments themselves are heavy in workload, adding in other miscellaneous stuff like code review, design review, app seminar, peer appraisal, etc...etc.. makes it worse. Let us just concentrate on making our stuff.
34. I think the problem is that the implicit expectation of the apps are very high, since there are really a lot of talented people in the class. Well, this is actually a good thing if there are not so many application assignments. The number of assignments should be cut down but this will reduce the exposure of the students to the other potential tem members which will be crucial for the final project. Therefore, I will suggest that there should be only 2 assignment and 1 final project and more networking sessions instead.
35. The module is rather open-ended which means that while the assignment requirements themselves were fine, the drive to do that bit extra can become rather taxing.
36. Perhaps scale down the reviews and seminar part. However, the crux of the problem comes from everyone raising the bar too high, not exactly from the requirements of the module.
37. I think it's ok for this module to have heavy workload, otherwise we might not be able to learn enough stuff.
38. Remove the design review and code review etc or perhaps combine them as one.. the same goes for the seminar review cos the projects themselves are heavy which i feel is good cos the whole module is about creating a awesome final project...
39. Hehe, make it 8 MC's :P After all, we KNOW that everyone's gonna be setting the bar sky-high. The stuff we do in the module i think are really worth spending time on, just as much if not more so than the stuff we do in other modules. So the only cure-all is to allow us to do LESS concurrent OTHER modules by raising the MC count :)
40. Its not that the workload is heavy, its just that they're general enough that you can do a lot with them... and the general trend is to do just that :P. Id suggest increasing the given time by a bit.
41. Instead of giving like 3 or 4 individual assignments, the course can, have only one project that spans one semester long. So groups will be formed at the beginning of the semester with the aim of building a killer app at the end of the course. There will be several deadlines (to replace the assignments) which are graded along the way to see whether the project meets the specified requirement. For example, first milestone is to make your app able to print Hello World, second milestone is to make your app able to allow interactions on profile page etc. This makes the course more focused. Also, people won't be tied down by like two different apps at the same time (if one of their apps turn out to be popular) and (though not relevant to the question) people are able to build stronger bonds with their groupmates. The group switching thing makes everyone acquaintances only but not friends, or maybe the purpose is just to make acquaintances (business contacts)
42. Seeing that some people have fulfilled most/all milestones for all 3 assignments even for assignments 1 and 2, I guess to decrease the workload, have less assignments with longer duration, but packs more milestones.
Skip: 2 (4.5%)

Agree that the assignments need to be adjusted because the three assignments have generated significantly more work for the students than intended.

Also agree that the FB Seminar should have been scheduled earlier. I had schedule the meeting with the potential industry partners early in the Semester to provide students with more time to work out potential deals. Too bad they didn't quite work out. :-(

A future offering of this class will likely have two assignments that are more structured and focussed. Will probably also cut down on the writing. Yeah, I do agree that I was a little overly ambitious and tried to do too much - but to give me some slack, it's really hard to know what to expect the first time a course is offered. :-) The suggestion about giving more time for the assignments is not feasible. NUS students tend to do assignments only at the last minute. It's the same if they are given one week to do the assignment as if they are given one month. This is something that I learnt the hard way. In fact, there will likely be an early deployment deadline for the Final Project maybe in the 10th week for any future offering of this course.

I however disagree with suggestion 41 that there should only be one Final Project. Need the assignments for the students to pick up requisite skills and also to get to know other students. Otherwise how to pick the right people to form the Final Project teams?

5) Did you find the feedback write-ups that you received after grading to be useful? If so, why? If not, why?
1. They are useful to a certain extent. They help you understand the grade that you are receiving. But they may not be effective to help you improve because by the time you see the feedbacks, you are working on the other app already. However, they can serve as pointers to your final project.
2. Definitely. The feedback we received allowed us to see mistakes that we missed during the actual development of the application, so it was a good learning opportunity.
3. Yup.
4. Its helpful. You get to learn from feedback and understand the rational for the grades given.
5. Yes. It helps me to know how to write better apps later.
6. Yup! It was very useful coz the write-ups were good and constructive feedback which we can implement to improve our apps immediately.
7. Feedback are useful in terms of ideas on how to improve our application. However, it is not very useful in to a large extent as suggestions for improvement are normally already thought of. The trouble is our lack of knowledge on how to implement the improvement which is not included in the feedback.
not really... dunt think ppl or even my self will actually learn through doing this
8. First one, yes. Second one, no. Actually, they said they my application has error, but didnt say what error is it. I asked for clarification, but still haven't get any reply yet.
9. Pretty Useful. Rather specific comments in fact.
10. yes.
11. yup, helpful. concise and to the point.
12. I think its really good to get actual feedback write-ups. Unlike many other modules, at least here I get an idea of what I'm being marked up or down for, and know where to focus my efforts on for future, similar endeavors.
13. Yes, at least we knew what we did right / wrong.
14. Well it was informative. It wasn't very detailed but neither was it too brief. So neither is it extremely useful nor is useless. It was informative in a sense that there was a bit of information on how we could improve and so on.
15. Yes, just that some reqs were a little less explicit that I might have liked (e.g. ... Facebook uses XHTML 1.0 Strict but your code is HTML 4)
16. Not very useful. Generally, we know our limitations and shortcomings. What would be useful would be to channel that energy to lead us half the way in our assignments and projects. In the first question, I had indicated that I have learnt a lot in this module. Do not mistake it as "this module has taught me a lot". I was forced to spend sleepless nights to learn by myself. The time spent is way more than any other modules and is comparable to 3 or 4 modules put together. This was not reflected properly in the module workload. It can be debated that the module workload is merely a guideline and it is actually us who are overly competitive that works so much harder. Do note that the module workload is usually an indicator of how much time is to be spent to do reasonably well. In this case, if we merely stuck to that level of work indicated, I doubt prof Ben would even want to pass us.
17. It was informative and helps me improve on the next assignment.
18. Yes, they were useful. They provided us with information as to how we can improve our applications.
19. Things pointed out in the feedback were definitely valid and true, but we already knew of many of the problems that were pointed out. Usually, the reason we couldn't deal with them was lack of time.
20. It's ok.
21. Yes and no. Yes in the sense that they allow us to know what graders are looking for in subsequent assignments. No in the sense that sometimes the grades were not given fairly; what the graders are looking out for is not what i really had in mind. (for example, i feel that people should not be penalised for not completing an application, yes, execution is important in todays world, but in the span of 1 week, you really cannot expect complete execution of something complex. In that sense, i would expect greater credit for a half completed but ingenious idea, rather than a completed useless application). The way the grading goes... it seems that CS3216 is encouraging the production of fads, which can spread fast, but also dies off fast, and gives no real value to users.
22. Not really. They were either too bitchy or just superficial.
23. Not particularly.. I think usually people know what they did wrong with their app.. just that they didn't have enough time to fix it :P But user experience wise i think its definitely helpful.
24. Yes
25. Yes, they are useful. The feedback allows us to better improve ourselves for future assignments and for the final project.
26. Yup, there are good feedback and it helps me to do better for the next assignment..
27. Not really. Not enough time to reflect.
28. Yes. Makes us understand the goods and bads of our apps.
29. The feedback is very useful but I think the feedback should be in a open form where we an reply to the feedback
30. Ok ba..
31. They were useful, which gave insight into improvements for the following assignments.
32. Yes. I know what I have done right and wrong after reading the feedback.
33. yes, but some time I personally disagree with some feedback
34. They might be useful, but I can't appreciate them. Perhaps because I'm a non-coder
35. Good. Highlights some points that may have been overlooked by the team.
36. Yes, they were useful. They provided valuable information on where improvements could be made
37. Neutral
38. Not quite. Because I suppose not enough time was spend to study my code for the other group to form constructive feedback
39. Average. It is nice to get feedback but the feedback might not be relevant considered that team changes for every assignment.
Skip: 3 (6.8%)

I guess the write-ups are relatively useful to most of the students and not very useful to some. I would like to respond to comments 16 and 21.

Re: comment 16, I'm glad that the student learnt a lot and frankly, it sounds a lot like what Caleb mentioned to me in person. Perhaps it's Caleb. :-) My response: as a teacher, what I care about is that the students learn something. As it turns out, what I really want to achieve in CS3216 is that students figure out how to learn by themselves and develop the confidence that they CAN learn stuff on their own. Not sure if it's much of a consolation, but I think the process (not content) that this student has gone through in CS3216 will serve him/her well in the future. :-)  What does "channel that energy to lead us half the way" mean? Spoon-feeding? I'm not very keen.

I think comment 21 is absolute nonsense. The assignments are scoped so that it is possible to complete them on time - and MOST students have done so. I had already emphasized during the first lecture about the importance of execution and how ideas are cheap. Well, if it was indeed true that some really ingenuous idea was attempted and it was half completed, more credit would be given. Unfortunately, to the best of my recollection, most of the apps that were buggy/incomplete simply demonstrated a lack of effort and the ideas weren't that impressive or innovative to begin with. Attitude and pride in one's work is very important for success. The submission of incomplete work demonstrates a severe lack of pride in my opinion.  

If youíre a programmer, do you think that the non-programmers are able to contribute effectively to the assignments?

1. No. They will often try to pick up on report writing or other related stuff, but usually in the end the programmers have to take care of it because they don't know what is happening at all. However, I acknowledge that the non-programmers is a must-have in the class for killer-apps to be even possible. They just have to try harder to help in some things.
2. yes.. the ideas and project management are impt as well as they can also contribute in the creative aspect
3. Unable to comment, worked with fellow programmers so far.
4. There are exception, but on the whole they are more of a burden. The level in class is too high for non-programmer to pick up skills on the fly to contribute.
5. I am not a programmer. The current assessment only allow non programmer to contribute minimally.
6. Yup, quite a lot. Like Shaoqiang, his drawings are quite cute :)).
7. Definately. Programming isn't everything about projects. What they can contribute at the least is their time.
8. Yes, though the group must take effort to put more emphasis on UI, design, etc.
9. What a designer can do in an hour, a programmer is unlikely to accomplish in a lifetime. Similarly, what a programmer can do in a few days, a designer would take years. Both parties are essential to the team. Still, it is a fact that programmers have more tangible work to do and therefore much much much more time is spent.
10. yes
11. Yes. There are so many things in the assignments which need non-programmers.
12. Some can. Some as in, the rare few of them.
13. Yes definitely. As i said, the grading is heavily biased towards design and UI, and little appreciation is shown towards the technicalities of the assignment.
14. There are people who has been very contributing to the assignment with their talent however, there are also a few who could not really help or the amount of work they can do is limited because there is too little time to pick up new skills
15. N.A.
16. Definitely. However there must exist a skill set library available to all, rather than all of us searching around in the dark in a bunch of virtual strangers. Thus resulting in groups with either too many programmers, or maybe only one. And with such a library groups and partners can more accurately search each other out, preventing cases where some are overworked while the others feel useless. The inclusion of non-programmers with other skill sets makes the team dynamics much much more interesting and provide out-of-the-box ideas.
17. Non- programmers will be able to contribute more effectively to the assignment if the assignment period is long as they will be more them for reviews and thus marketing of the apps.
18. The non-programmers are able to contribute effectively. In fact, I could go on to make the claim that some programmers may not be able to contribute that effectively because of communication problems. The non-programmers are usually good in communicating ideas and thought.
19. everything except coding
20. n/a
21. In aspects of creativity, definitely. It was usually the non-programmers who came up with the most ideas first, followed by the programmers telling them what they thought was actually practical to create. However, due to the time constraints, having a few more coders on the team would have helped as well.
22. A little.
23. most of the non-programmers I encounter expect quite a lot from programmers... and do not know what to contribute effectively... i am not really a programmer but i try to at least accompany the programmers through nights if needed...
24. Only designers.
25. Few non-programmers are able to almost contribute effectively to the assignments. Which ever way you look at it, the non-programmers do end up doing much less work than the programmers unless they are heavily involved in the designing process.
26. Yes, there are many aspects that a non programmer can contribute in.
27. Yes.
28. The non-programmer should at least have talents in other areas, such as graphics. If not, they usually just sit in the corner doing nothing. They try to contribute by coming up with ideas, but often they can be ludicrous, such as being technically too complicated to implement.
29. NA.
30. Designers are a definite need. But not too many, i think the programmer "class" should have around 80-90% because it's very very focused on programming.
31. Well, I only worked with one, and she was more useful than some of my programmer-teammates :D (this is anonymous rite?)
32. i'm not a programmer.
33. If I were a programmer, I think non-programmers better be very good in design. Otherwise, they will not be able to contribute effectively. I think even writing skill doesn't help much, much less entrepreneurial skills. I think for this module, if the objective is to churn out very good apps, it will only need hardcore programmers and designers.
34. Some non-programmers are able to contribute well, while some are not able. In the same way, some programmers are able to contribute well, while some are not able. It depends on their ability, attitude, and focus of the application. For instance, there are some from arts who majored in CNM, and probably have taken game design module, or simply love to play games. Programmers may feel more comfortable with them as they could help to design portions of the game. This is as opposed to working with people who don't play games, but try to contribute and is strong in their opinions. Which might end up "ruining the dish" and deadline extensions. Things that could otherwise been done fast and efficient, becomes slow and disasterous.
35. They could design the pages.
36. In some extends, depends on the which application we're developing. Usually, marketing/bizad ppl only useful in the final project. For the assignments, I dont think they contribute as good as programmers.
37. I dont think anyone cares about having people in the group who are not programming, but considering that most of the apps dont really have a business model or such, there's not much for business oriented people to do much either. But its a definite plus that you get to network with people from different faculties. I really would recommend increasing the quota of arts students as there aren't enough good designers here.
38. Yes in terms of idea creation and brainstorming.
39. They can do graphics, reports, documentations
40. Not exactly. While the designers tend to be the creative ones, not having some technical knowledge does tend to lead them to come up with ideas that are technical challenges, which while not impossible to do, would take quite some time to implement, code-wise. Also, having working knowledge of the programming languages and/or HTML would allow them to work directly on the webpages. However, they are able to see things in a different perspective, which helps the UI design become more user-friendly.
Skip: 4 (9.1%)

Seems like a 50/50. Some non-programmers can contribute effectively, while others cannot. I guess the six-million-dollar question for me is: how should the selection criteria for the class be adjusted for the non-programmers to ensure that they are able to contribute to the class effectively.

For the record, the students who are offered places in CS3216 as "programmers" must typically have a minimum A grade in CS1101/CS1101S. As it turns out, the many in the current batch are more than just A-students. Many are elite A+ programmers, competitive programmers or have extensive web development experience.
7) If youíre a non-programmer, what are your views on the assignments? Do you find it difficult to contribute?
1. The assignments are hard, need to work with good programmers to get our ideas into reality
2. I'm kinda half-half hybrid, so I'm commenting here too. It depends on what you can do, and the abilities of your teammates. For me it was easy to contribute, as I just generated ideas, conveyed them to the programmer, who writes functions to perform what I had in mind, while I designed the look and graphics + gameplay. Communication is the key. Of cuz, not slacking too.
3. It is not difficult to contribute but rather the contribution does not appear to have value as the assignment are generally require the contribution of programmer more than anything.
4. I think the assignments are really fun and I actually learnt quite a fair bit of coding from them. And no, I did not find it difficult to contribute because coding is only one small part of the equation. A bigger part is team work, creativity and idea execution
5. Yes. However, I can help out with the business logic and flow of the applications. My understanding of data structures also help me to communicate with the programmers about my ideas effectively. However, just having ideas is not useful unless one can appreciate the technical difficulties of implementing an application.
6. Very difficult to get the programmers to acknowledge your opinion as 'worthy'. You had to fight for everything! Not like a real project with a real structure at all. More like a free for all.
7. i am a programmer?
8. n/a
9. It's not very difficult to contribute but it's more like the attitude of the programmers towards non-programmers since programmers are like the majority and the greatest contributors. The class should be made up of half programmers and half non-programmers instead to make it more balanced and make the class more lively and vibrant and not make the non-programmers tilt towards the minority.
10. N/A
11. Yes. Assignments are too technical
12. -
13. NA
14. Yes. Besides perhaps the first project meetings, the rest are always ONLY about the programming side of the project.
15. I don't find it difficult to contribute due to my expertise in graphics. However, it is difficult to for us to learn from each other, due to the amount of work and pressing deadlines. In the end, we just want to create the best app, and we do what we are best at - while at awe of our other group mates could do rather than learning from them. Quote unquote " He can program anything we throw at him" and "he" will say "He can design anything we throw at him". I find myself sharpening my design skills after 3 assignments, rather than learning more about web technologies, which was why I joined this module.
16. N.A
17.'s fine to contribute as much as i can
18. Sometimes I have difficulty carrying out my ideal plans due to insufficient programming knowledge.
19. yes even a week programmer is hard to contribute
20. If I were a non-programmer, the minimum requirements for the assignments should be very challenging and exciting to learn. However, having said that, the app will be a very boring one which only does the minimum requirement and it will not be enough to compete in this class. Therefore, I think non-programmers have no incentive to contribute programming-wise since their peers can do it faster and better than them. They will have to contribute other stuff like designing. P.S I think to maintain the anonymity of the survey, I have to answer both questions.
21. As a non-programmer i felt that i could still contribute to the group - particularly through the report-writing component and the other not-so-technical areas of the assignments (such as text for descriptions as well as graphics).
22. n/a
Skip: 22 (50%)

Suggestion 9 is not practical. The current ratio is approximately 70% programmers + 30% non-programmers. Clearly not practical to make it 50/50 since most of the work to be done is programming work. In fact, I'm tempted to move to 80/20 for future offerings of this class.

Designers are are critical for Facebook applications. I guess the question is how to identify the good designers. The selection process for future classes will likely require those who claim to be designers to submit their portfolios. :-)
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 0

I'm glad that the lectures are generally well-received. Quite happy that 34% of the class really appreciate the lectures. :-P
2)Feedback for Lecturer Ben Leong.
1. I feel that I learnt a lot from him. There some programming insights that were shared by him that I find it particularly enlightening. He should conduct more lectures on his own instead of inviting external speaker. Since he understands the course better than most external speakers.
2. Cool.
3. The classes you gave we're awesome - perhaps the Guest lecturers could be more interesting though!
4. Cool :)
5. Never knew you're a person who believes in this kind of education! Cheers!!
6. Very funny and cute, but sometimes, talk too fast and too much :D.
7. I don't think the lectures are totally useless but I feel that they do not really contribute much to our class learning and assignments. I feel that lectures are just an unnecessary "extra". We still learn waay more real stuff by doing the apps.
There really isn't much I could say. Easily the best lecturer in Computing.
8. Coooool.... He's handsome btw :)).
9. Inspirational... though this course is kind of like guinea pig... he manages to still deliver... and really helpful with things along the way...
10. Would like to hear you lecture more! I think you have spent more time on this module due to all the coordination and stuff.
11. One of the best professors I have known in NUS.
12. a very amazing guy.. though sometimes speak too fast... lol i like the shirt he wore on the pitching session ~~
13. Thanks for arranging this wonderful course!
14. Has a great heart and mind for the students. However, sometimes the best can be given by letting go.
15. Guess the questions more or less answer for this part.
16. I think we definitely do need lectures as they are one of the opportunities for everyone to mingle and network, but Id have say some of the guest lecturers were a bit lacking. Yours were fine though :) I don't really mind though as overall its been a lot of fun.
17. Ben is more like a project coordinator rather than a lecturer. It's good, as long as we can learn a lot stuff in this way.
18. Reminder that we take 5 to 6 other modules beside CS3216?
19. A very good lecturer with students' improvement and understanding his first priority. Very helpful in understanding student feedback and improving so that they enjoy and understand the material. Friendly and laid-back. Definitely hard working.
20. Prof Ben doesn't really lecture much in CS 3216. However he does make a good "summary" in the end of the lectures by others.
21. Hehe, we all know he worked as hard as any of us did on his assignments :P Although he didn't do a lot of lecturing for the course, I think the vision and the planning that went into the course is one of a kind. This course will likely be the most outstanding experience in my NUS life.
22. Reasonable, understanding and inspirational. Also helps students a lot. Should try dressing as an indonesian business tycoon in school once in a while. And don't sleep so late all the time.
23. Pro Ben has an unorthodox way of doing things, very different from what i've had in other modules. While its refreshing to have a totally different approach to assignments (the whole "meet the milestones and then some" format), it leads to intense competition (which is good and bad).
24. Most of his lectures provide valuable insights and ideas. However, they hardly help us in the ground work we need to complete. It is the groundwork that many of us are not familiar with and need a lot of assistance. Changing some of those lectures to technical ones, like the crash courses, would be better. Already a lot of time is spent on this module, there shouldn't be additional non-compulsory workshops, which are actually very compulsory. However, he needs to be clearer that CS3216 is ONE module. Most of us have 4 or 5 other modules to take care of.
25. Makes the lectures feel more like a informal discussion session, which helps break the ice quite a bit.
26. Excellent
27. There should be more Facebook-directed lectures, and those that are very focused. For e.g. FBJS, how to use dialog boxes, Animation, the restrictions of FBJS compared to the normal one, AJAX, the inbuilt AJAX object, Database handling, etc etc. And also, not just the technical aspects, where the non-programmers usually feel pretty lost for the lectures. Perhaps we can have designers to come speak about UI design, how to use photoshop, illustrator etc. Then maybe we can achieve a more well rounded lecture system.
28. Very good and motivated lecturer... have great knowledge of social networking sites and do what he talks... understanding
29. Learn from google, don't be evil. Even if sometimes evil is a necessary tool.
30. I don't know who is in charge of the grading, but the grading is very important because ultimately, it matters to a lot of people. There should not be too much expectation on a one week assignment because given the choice of doing a completed useless application and a half completed but potentially good application, the fact that the completed one sometimes score better than a good idea may be hard to swallow for some people. The frequent 'shifting of goalpost' is also hard for a lot of people. For example, the second design review was only given out with 3 days to work on it. It is not fair, given that we have other modules to work on. And the eyeball grading was uncalled for, because it should have been told before the assignment starts, so we can gear the application towards that side. People come to the module because of what is stated before it started, if it changes too frequently, it is very irritating and for long periods of time, people must do things that they didn't really want/expect when joining the class
31. Well cool, but I think he need to slow down a bit.
Skip: 12 (27.3%)

Thanks for the kind words from some of you.

The comments about me not lecturing very much are quite true. It unfortunately turns out that I didn't think I knew quite as much about some of the guest speakers for some of the topics that we covered. The thing about "evolving platforms" is that sometimes even the lecturer also dunno. :-) But should that keep us from trying to teach students things that are good to know even if we don't know it. That's where the guest lecturers come in. Of course, they don't always work out, but all in all, I think we've had some pretty good guest lectures this Semester.

Frankly, it is a lot more effort arranging for these external speakers to teach than for me to teach a regular lecture/tutorial class. Also, I met with every single Final Project group for at least an hour each, and some groups multiple times where there was a need. Lectures I can definitely do if I know the stuff. :-) It's just that the typical lecture/tutorial teaching style is not suitable for every class. In CS3216, I'm experimenting with a different teaching style. Personally, while some refinements can certainly be made in future semesters, I think what we did in CS3216 sort of works. :-)

Comment 30 really gets to me. Must the same guy who got a earful in the earlier section. Perhaps I can share the reason for the eyeball grading for assignment 3. I was actually upset at some of the groups for submitting substandard and buggy work. Really no pride in my opinion. The eyeball grading was meant as an incentive for these folks to clean up their act, so get me started. My greatest regret for CS3216 is that I admitted some students who are both kiasu w.r.t. grades and yet have no pride in their work.

If you are a potential student reading this survey in a future semester to decide if you want to take CS3216, ask yourself if you have pride in your work and if grades are more important to you than pride in your work. If grades are more important to you than pride in your work, please don't bother to sign up for CS3216. You'd be wasting your time and mine.
3) Suggest other topics that should have been covered for the lectures (if any).
1. More practical examples on software engineering.
2. Cant think of any...
3. user interface design and user psychology
4. Maybe something about UI design (from a design perspective but not the way that Dr Klarrisa Chang did it) - aesthetics / user experience as opposed to technical
5. How to build an apps that can cope with high user demand.
6. None.
7. actually a lot is covered which is good but i would like to see more entrepreneurship lectures which provides a good bridge between students as well as business entities outside...
8. No idea....
9. How to relieve stress??
10. Flash and action script additional lectures!!
11. On how do we actually make a facebook application and how to deal with the many limitations of the facebook interface.
12. I think we need a lecture for UI Design(from the art perspective rather than the computing perspective). Most programmers do not care about UI Design, and most users tend to get the wrong impression when the UI design of an application is not good. I think some basic principles on how to design beautiful and user-friendly interface is necessary.
13. nothing i can think off.
14. PHP programming, Database design, FBML. Tangible stuff that we actually use. Concepts are cheap.
15. How to scale a project. I always found that people are too ambitious, that make people put too much effort and time in doing just one assignment.
16. cant think of any at the moment
17. Perhaps some good Facebook developers could come and speak.
18. oops I covered it above.
19. Teamwork, team management
20. Since there are people from multiple disciplines, perhaps a lecture on software development process and how each different roles play a part (as how they work in the industry). Not exactly software engineering, which is also a must, but more of industry standards and practices on how the different roles/departments fit together and how they cooperate to create a software product. E.g. roles of producer, designer, programmer, QA, marketer etc...
21. Coding conventions and code optimization, and on interface design.
22. How to build apps for scaling?
23. Less lecture, more learning. Maybe just some core concept lectures like now would be sufficient, but more "stipulated timings" of "lectures" where we can do discussions and learn from one another.
24. Maybe some programming would be helpful for non-coders.
25. n/a
Skip: 19 (43.2%)

Agree that UI design is important. UI design was supposed to be learnt from the FB Seminar and from the design reviews. Klarissa's lecture was supposed to cover that too - but unfortunately it didn't quite.

Actionscript, Flash, PHP programming, Database design will most certainly NOT be taught. This is not a class to teach programming per se. There are other classes for that purpose.

FBML and FBJS will also not be taught 'cos they are sufficiently straightforward for students to figure out by themselves. Part of this class is the process of being thrown in the deep end and being forced to do self-learning. FBML and FBJS are perfect for this purpose.

It is not useful to teach coding conventions 'cos there are a lot of them out there and there's no "right" one. Programmers need to follow the conventions for the company they end up working for. Code optimization is hard to teach - optimizations techniques are language-dependent.

Agree that how to scale programs to a million users would be a good topic to be covered. Unfortunately, I must admit that I'm actually no expert in this regard also. In response to this midterm survey, I actually arranged for a guest lecture on scaling from the infrastructure perspective by Zit Seng. Personally, I thought it was a very good lecture.

8) 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. none, to my regret :(
2. I could not attend any of the workshops, although I did want to attend them.
3. None.
4. they are pretty useful
5. All. Good, did its job. Unix one might have been better if the zones were settled before then, and everyone can follow step-by-step instructions to set up apache, mysql, etc. I still haven't set up my zones.
6. None.
7. None
8. attended UNIX... but didn't much time allocated... so it was in a hurry...
9. I attended Unix and Javascript workshop. Both tutors are quite clear when explaining complicated problems.
10. UNIX, PHP/MySQL, Intro to JavaScript. Too rush, never managed to complete them due to timetable clashes. Should be taught during regular lecture times in place of Software Engineering and "some wierd things about spreading and exponential growth crap".
11. Didn't attend any of the workshops
12. UNIX, PHP/My SQL Generally OK, though I thought PHP/MySQL could have been clearer
13. UNIX. Moved a bit fast but was alright.
14. unix : confusing cos it went really fast. and we were expected to already know half the content.
15. AJAX and UNIX, generally they were useful and informative. Would be helpful if the timing can be fixed so that we could attend more of them.
XHTML/CSS I can just say amazing, learnt quite a lot of new stuffs in 2 hours
16. Unfortunately, none.
17. UNIX JavaScript
18. Unix was too fast to follow
19. na
20. UNIX
21. UNIX: i didn't quite understand most of it.
22. Unix , php/mySOL
23. UNIX. Nice Introduction but too deep for the non-programmers.
24. I attended the UNIX workshop but I'm already comfortable with it. But overall I think it covered the basics pretty well.
25. NO TIME!
Skip: 18 (40.9%)

OK. Will schedule 2 hours for the UNIX Workshop in future. Hopefully those who found the Workshop too fast will have an easier time. Reason why the Workshops were not compulsory is that we realized there were many who knew some of the contents already. The Workshops are a leveller for those who knew less to learn more. :-)
9) If you missed one of more of the workshops, please let us know why you didnít attend them. Did you already know the material or was it due to scheduling conflicts?
1. I already knew the material for most of the workshops but I still wanted to attend to brush up on my basics. I was not able to attend the few that I wanted to attend because I ended up forgetting the time and date.
2. It was more scheduling conflicts, and that I had some basic prior knowledge of the technology being taught.
3. Knew some of them, but mostly due to scheduling conflicts.
4. I'm familiar with some of the materials and don't wish to go to school earlier or go home later.
5. There is no fixed time and the time is announced pretty last minute which makes it hard for people to plan their schedules. Should fix a time for workshop before the course starts so that people can leave that slot free.
6. scheduling conflicts
7. na
8. NO TIME! Totally busy, this module, that module... I'm like playing Island Hopping this whole sem.
9. I was quite interested in attending the Javascript/AJAX workshops but wasn't able to due to clashing timetables.
10. yup, its due to conflicting schedules.. :(
11. all those workshops i didn't attend are due to lectures time clash
12. There was a conflict in my timetable. Unable to attend most of the lessons.
13. Scheduling conflicts. Workshop times should be determined before the module starts, so we can see if we can attend them. I am quite tied up in business matters as well as school work
14. I already knew the material.
15. Schedule conflicts and time constraints
16. Scheduling conflicts mainly. Other times, too much work on hand already.
17. I already knew the material.
18. Scheduling conflicts and too much work to clear!
19. I hardly attended any workshop due to timetable clashes.
20. Scheduling conflicts.
21. scheduling conflicts
22. i missed the others because they were either not relevant or clashed with my schedule
23. Time clash with my lecture and other tutorial classes with counting the attendance :((.
24. I know most of the stuffs they are teaching at the Workshops.
25. already known
26. Scheduling conflicts
27. Scheduling conflicts almost always. Attended the UNIX class even though I really didnt need to.
28. All scheduling conflicts. Despite having an idea of most of the material, I kind of wanted to attend most of it :(
29. already know the stuff... would have gone for those if not for time constraints...
30. It was due to scheduling conflicts and I already knew some of the materials in them.
31. Scheduling conflicts - Love to attend them, but there really was no time.
32. I wanted to attend the AJAX Workshop, but I was unable to make it. For the others, I already had prior knowledge, or was already well on my way to learning it, so I didn't see a need to attend the workshops, though I do know that I might have picked up some useful tips.
33. Most of the time, things covered in the workshop are too basic.
Skip: 10 (22.7%)

Because CS3216 is a cross-faculty module, scheduling is a big headache. Considered scheduling all the Workshops in the evenings, but didn't want to impose on my Tutors and as seen above, many students don't want to take late classes.

CS3216 lectures will almost certainly remain evening lectures even in future Semesters. Two key reasons: (i) very hard otherwise to allow cross-fact registration since too many conflicts in the day; (ii) would be almost impossible to get guest lecturers for the class if they are held in the day.
10) Do you think we should conduct other workshops? What should they be?
1. FBML, and a troubleshooting sessions where we get instant assistance on problems we usually end up spending 6 to 12 hours searching and trying...
2. not sure
3. Yes. Not sure.
4. Anything ab technologies of Web 2.0.
5. NIL
6. A Ruby on Rails workshop would be great!
7. Actually I don't mind conducting a workshop myself. Ruby on Rails or something.
8. not really
9. Hm.. it'll be good IF everyone can attend.. but considering NUS's killer schedules... er.........
10. Design workshop
11. Some basic principles on how to design beautiful and user-friendly interface
12. Yes and no. Example, have a RoR workshop instead of a lecture.
13. Perhaps workshop on Flash and using Frameworks and Rapid Software Development techniques
14. not that m aware of.. it is quite complete and it definitely equip us with the knowledge to do our app
15. na
16. Flash!
17. NA
18. Current schedule is fine.
19. Flash, action scripting will be very helpful.
20. No real opinion. Perhaps one on RubyOnRails for those wishing to get involved.
21. no
22. I think it is pretty much sufficient and well-covered.
Skip: 22 (50%)

I don't think we will have a RoR Workshop since PHP is the officially supported language. Basically this is a resource constraint. I can't find enough Tutors who know RoR and even if I can find them, I suspect I won't succeed in persuading the Department to pay for them.

We will not teach Flash per se in CS3216, but we might have a introductory Flash workshop if I can find someone suitable to teach it the next time. It is my opinion that Flash is quite an important web-programming language. Flash and PHP are not direct competitors. They serve different needs.
Multiple Choice
11)We introduced reflections in the forum 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 the lectures. All classes at NUS should have such reflections.

Skip 2

Forum was quite disappointing. :-(
12) Please let us have your suggestions on how the teaching for CS3216 can be improved.
1.The only part that can be improved upon is the number of assignments. It would be extremely helpful to make a few substantial assignments that last over a longer period of time rather than having to care for one for a week and then quickly moving onto the next one.
2. Things like "hello world", or "wall" don't really have to be assignments. Just conduct some workshops for those, and let us concentrate on making something big. Perhaps just 2 big projects and nothing else.
3. I think it's already good enough for me.
4. only sometimes feel the deadlines are coming together and a bit messy
5. I think the course objective must be stated clearly and held to. Making a difference is not about completing a useless application, it is about creating value for users out there. As such, either give full credit for the ingenuity of the application, or give lesser assignments and longer working time so that we can expand each idea fully. I don't like the idea of doing an assignment just for the sake of an assignment; every assignment is a piece of work and should be an application that is both useful and will last long on the platform.
6. Try to make workshop schedule more formal.
7. Better forum system. Current one hard to use when too many posts
8. Reduce the workload!! !!!
9. I don't have any issues with the current teaching staff. I think the teaching staff in CS3216, methodologies and pedagogues are pretty good. I just think that the teaching of some of the guest lecturers are pretty bad though. Not very clear.
10. Grading should not be relative, after all, selection criteria was pretty strict. Everyone here deserves an A if they put in half the effort compared to now. Teach tangible stuff which actually help us. The concepts can be made into reading material or workshops. There is no pre-req for this course, we need the technical knowledge.
11. There doesn't seem to be any real focus for CS3216. It would be good if lessons build up on the focus. Also many lectures cover topics perhaps many wouldn't like hearing again.
12. Dont know, I'm not a teacher :D.
13. it's fine, just a little less workload.
14. Have a consistent, organized and standard place where deadlines/event dates are published. If any of the deadlines/time of events are changed, it should be reflected at that one place. Sometimes its published at several different locations (email, announcements, lesson plans, etc..) and when one changes, the rest may not get updated. This can cause confusion to some people who might not have taken a look at the updated one.
15. I felt that a lot of the time most of the module focused on the technical aspects. While i understand that this class is about Software Development, the mixed nature of the class (with students from other faculties outside SOC) may not feel the relevance of certain topics to them, especially with all the technical jargon being thrown around.
16. Almost perfect already. You want better you'll have to go overseas probably. But compared to many other NUS lectures....... .... .... no need to compare la, many of the others, plain, boring, banal, sleepy, blablabla...
17. too heavy workload I think. maybe pre-release some course materials during the winter vocation
18. not much... the bottleneck is the mindset of students... which is the result of the way NUS is mounded
19. Nil.
20. A radical idea: all students are required to do 4 applications for the whole of the semester. They can do it any time, any order they want, but must finish the trilogy and a final project for presentation, with the only deadline being when the final presentation comes and all 4 apps must be handed up by then.
21. It might sound trivial, but a LT with better chairs might have helped. The current LT is rather cramped (when there's full class attendance) and ends up being quite stuffy. Perhaps a slightly larger LT with better chairs will help.
22. concentrate more on the deliverables.. such as the final projects etc
23. Said it once and i'll say it again! Less workload!
24. Maybe we can be spoon-fed a bit more on technical aspects, giving us more time and effort to work on the entire app.
25. To cover a proper grounding for the students to start off with making their application, instead of just throwing them off with assignments and expecting that everyone will be able to do it.
Skip: 19 (43.2%)

In response to comment 10, the technical knowledge is definitely there. Just that not everyone has it - but neither does everyone need to achieve the same level of technical competence. That had never been the goal of this class.

In response to comment 11, as it turns out, there is some sense in the madness. Will touch upon the sense at the Last Lecture and do a grand summary of the class. Part of the problem I face is that the guest lectures are somewhat of a random variable. Some turn out well and cover what I had in mind and more, while others might not. Need to give and take.

Comment 14 is valid. Will improve in future.

Suggestion 20 will NOT work. Need to do students the favour by giving them deadlines. :-)

Re: comment 22, the deliverables are not what's important in my view. It's the PROCESS.

Re: comment 25, unfortunately that's the whole point of the class: throwing students in the deep end and having them figure out how to swim. That said, we're not unreasonably sadistic. As we've seen this semester, it sort of works out.
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 1

Interesting distribution. I wonder why. Hmm.....
2) What do you think you have learnt thus far?
1. I've learnt more about application design and logic. Forced myself to discuss database structures with the programmers. :) Got to know really smart friends!!
2. Do not restrict yourself! And facebook applications are not that difficult to make!
3. New programming techniques
4. I did not learn much from the lectures and seminar but I learnt a lot from working with people, knowing the right people for the job and knowing my own strengths and weaknesses.
5. how to design a popular application
6. Different faculties work differently.
7. Learnt about good programming practices, which is useful. Learnt about teamwork as well. Learnt that everything can be commercialized to make money, sigh.
8. Sleep less, study less, how to keep up with other modules and survive. ^_^
9. some Programming knowledge some Photoshop/Illustrator/Flash skills Networking skills Marketing skills
10. Well, most of it is TO KNOW PEOPLE. AND getting to REALLY-KNOW PEOPLE.
11. A lot of things, too many things to list down.
12. how to create a facebook application as well as greater understanding of social networks. learn how to derive a business model for my final app as well..
13. I've learnt how to write a Web app, how to work as a team :D.
14. How to think.
15. Most importantly, how the FB platform works and what it can (and can't do). The broader implications over the whole internet as well indirectly.
16. I have learnt a lot so far. I have learnt how to create applications that suck and serve no real purpose to anyone and I have learnt how to make really fun applications that have a lot of potential. The coolest thing is that the assignments I make in this class don't just go to waste, they are actually use by real people elsewhere. I don't think there are many modules that can do that.
17. 1. Designing a FB app is easy. Designing a GOOD FB app is not. 2. Groupmates matter. 3. Sometimes you have to be the bad guy and slavedrive. 4. Advertise yourself and your skills. it helps. 5. Good programmers != good application 6. Don't feature creep. 7. KISS (Keep it simple, Stupid) 8. Make something that works as opposed to something that tries to wow the pants off everyone but doesn't work. 9. SOC zones are unstable. 10.Web application users are a fickle lot. 11.Its not always about making something revolutionary. you can always take something good and make it better. 12.NICHE MARKETS 13.You know you're good when you have a fanbase.
10. oh man. i learnt a lot fr this module, not only programming knowledge, but friends, and inspired a lot by them!
11. Everything this course was designed for + more, such as teamwork. The best thing was that I got to know a lot of talented people!
12. Facebook application development, and a bunch of stuff from the different lectures. I also learnt that the proof of the pudding is in the eating, and that I like to eat puddings.
13. I've learnt from the other students in this module, and the potential and capabilities to do great things.
14. Project management, developing software in a new platform.
15. Software Engineering Principles, Security, RoR Many of the lectures which were intended to get certain principles across were successful. Along with the academic material I also learnt more about working in teams and networking.
16. The workload is killing people, reduce it please.
17. Trivial things like the facebook API aside, mostly non-technical skills : interacting and dealing with people, reading lengthy reflections and musing on different perspectives etc. Oh, learning to use Ajax was pretty cool too :P
18. I think it's more the experience for me. I like having various guest lecturers come in to speak, which gives the class a wider view upon the world, rather than have one single lecturer rattle on for the entire semester. I also like the activity within the class forum. This is truly the most active IVLE module I have seen in my few years in NUS. I really like the life and vibrancy in the class.
19. Cool things really depend on idea, luck and lots of effort.
20. Many things about web development that I haven't had time to learn before: PHP, CSS, HTML, Database, JScript... and the facebook platform
21. A rather big picture view of current web technology, doing apps on facebook, some theories on security, project management and propagation via the web
22. How hard could it be to make cool stuffs.
23. A lot! Project management, source control, the confidence to learn a new language in one day (but i shall hope never to do that again, ever..), teamwork and management, how social platforms work and its direction in future, most importantly making friends and contacts who CAN do work, so that in future we know who to look for to get work done.
24. I get a better idea about the facebook platform. I have hope to actually learn to program and develop application. However at the pace and the focus, it is hard for non programmer to actually learn much.
25. I have learnt what i had wanted to learn, but painfully. I had hope i would be taught, but instead i was forced to self learn. This is VERY BAD.
26. Loads of web programming, software development, how to create cool stuff in Facebook.
27. Mostly on the personnel management side.
28. I learnt more lifeskills than anything else, which is great in a way. I think Ben said he wanted us to learn something like this in the process
29. working with people... planning ahead and strategizing...
Skip: 7 (15.9%)

I like comment 14 best. :-)

Re: comment 25, you're your own best teacher. Don't be so spoilt lah. :-P
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 3

Quite curious to note that while 30% of the students feel that this class is "alright, but mostly painful", 80% will recommend the class to their friends. Maybe 10% of the students are sadists and want to inflict pain on their friends. :-P
4) Please give us your comments and suggestions on how to make your learning in CS3216 more efficient and interesting.
1. Perhaps have an application showcase at the end of the semester for the rest of the NUS population to take a look at our wonderful work? Also, maybe just 2 small assignments just purely to learn the basics then 2 projects would be sufficient. Right now it seems as though we are doing 4 projects.
2. LESS WORKLOAD... It'll be good, for its 4 MC's worth..
3. have more class participation opportunities during lectures since there is no tutorial.
4. Grading scheme should find some ways to estimate the effort of each member of the group. Group working skill is extremely important in this course, but many students don't have sufficient skill.
5. There's really a lot to learn and look forward to. But it seems more to be of an 8MC equivalent.
6. 1 major project throughout the whole module with deliverables in between.
7. Nothing much. Less work and more learning maybe!
8. It is a very tricky issue. I think one problem is the mixing of programming and non-programming people together. The synergy is very hard to achieve in practice. One way is that the class should be held differently with programming people in a class and non-programming people in another. Else, the programming people may complain about non-programming people being unable to contribute and shun them for project groups and the non-programming people won't be able to contribute effectively as well. Otherwise, have this class only for programmers and designers. I think the synergy is easier to create and both sides will enjoy working with each other and with lesser workload, they will be able to churn out even better works.
9. It's already good enough.
10. NIL
11. Since the group is diversify, the lectures would be more useful if it covers discussions on new ideas and concepts on the facebook platform from different angle, such as marketing, business opportunity, etc.
12. may make some more pre-request for taking this module
13. I think it is pretty much interesting already. I was wondering if there could be an exercise or assignment in which we are forced out of our usual roles to take on another roles, so as to "force" us to learn from each other. Eg: Programmers cannot do the coding, but graphics etc. Then again, it would require quite a bit of time.
14. Again I would to emphasize this. Please don't fragment the workload into many pieces, let us concentrate on making our app.
15. None.
16. Longer times between deadlines would help planning and give teams more time to think through their applications I guess. Creating applications that just barely satisfy the minimum requirements isn't really satisfying.
17. More technical notes! and maybe an idea could be to allow students to teach students, share their knowledge kind of thing.
18. Less assignments, longer deadlines, but packed with more milestones.
19. One thing that I though could have been done was to *not* show the last lecture video to students. The thing is, after everyone saw the video, everyone has the implicit need to do something really nice/wonderful because that's what randy's students did. I think the real test would have been to not show the video, ask us all to do a hello world application and then actually see what we come up with. I think that way, things would have been far more interesting than now because the students wouldn't have started out with any kind of a need to do something extremely creative other than their innate need to be creative.
20. Make this a 8 to 12 MC module so we can have less external commitments to worry about. Teach stuff we actually need.
21. Hehe, u sure this course will still exist after this semester? :P Think code and design reviews could use more 'teaching', so that people actually know what is expected and know what to do (even programming students may not be familiar with these :P)
23. Nothing more than what I already added.
24. do less work... think more... and allow time for innovation...
25. Reduce the workload, give students more time to focus on building their apps. 2 small assignments and 1 final project :)
26. nil
27. Make it more interactive, more student orientated
28. Maybe have the class split into discussion groups to increase participation in lectures.
29. Longer deadlines for breathing purposes (being able to do something in a day doesn't mean we can continue this way every single week.)
30. Teach more on how to make the application. Hands on practical on these are a great replacement for one or two of the groups projects.
31. CS3216 is interestingly cruel! But keep it that way, may the fittest survive.
32. it's fine so far.
33. lesser lectures and more tea parties... it will be more fun and goes beyond the traditional concept of lecture teachings..
Skip: 11 (25%)

"Less work and more learning" I really like this idea, but not quite so easy to achieve in practice....
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. I just want to say it again, the workload is killing people, reduce it please.
2. the ZONE makes a lot of trouble, why not just buy a hosting service from outside... I found that most of applications get popular/high grade are games, people are more willing to built a game application. I think facebook is not only a platform for just playing games, we should also make some app really useful.
3. The evillest combination. Its cool therefore you want to work on it but there are too many cool people and the bar is sky high so you have to work your pants off on it and its only four MC's so you end up screwing your other modules and in the end probably get a bad grade for everything... but the experience may still be worth all of it :P
4. None.
5. Lecture time slot can be moved earlier in the day...
6. Though the course is tough, and the workload inhumane - I really appreciate how the course content has been thoroughly thought out. The reason why I find it tough to manage the workload could be improper management of time and I'm in my final year, but I really appreciate the efforts put in by the Prof and TAs. Thank you for organizing this course!!
7. Please continue holding CS3216 in future semesters. Things can only get better. I'm looking forward to meeting more NUS students with a more exploratory, and less rote-learning, mindset.
8. nil
9. Can we get 6MCs for this module? I seriously think that this module is waaay too heavy for 4 MCs. :(
10. It's been a great experience so far. I knew it's hard to start a module like this and i really appreciate the effort put in my all lecturer and TAs. Keep up the good work!
11. CS3216 is cool! In fact, many of my friends hope this module can be offered every semester instead of once every year so that they have more chance to take it.
12. Erm, rock on! I seldom do surveys anyway, and the reason i do this is becoz of respect, and awe (since the first day of this module)!
13. Can I take it again next sem? Call it CS3217 or something. So that we can keep taking it. :P
14. From my point of view, CS3216 is really great. People are talented and cool. However, looking at the other side, it is a class so full of talents and this is usually not true in real life. Besides, the focus of projects are getting further away from the original intention. Nevertheless, it is truly once-in-a-lifetime opportunity to be in this kind of environment where people are so cooperative and easy to work with. I found a pool of like-minded people who take on any challenges and conquer them.
15. To much pressure on us building our app. Even if we've came up with a generally successful application by ourselves, we are very limited in freedom to continue developing it in the direction that we want it to go. Many feedbacks were given for us on how to improve. However, the staff is often not experienced enough in facebook application developing. Thus unable to help us when we are having problems implementing our applications/upgrades/fixes.
16. Don't hold discussions through email. There were certain emails that were more fitting to be on the forums instead, and some emails should be on IVLE announcements instead.
17. It's quite an interesting course. Teaches many things that you won't learn in the classroom, head faking and all that.
18. The whole "not working with the same people twice" thing was a bit troublesome. when it reached the last 2 assignments i really couldn't be bothered to actively go searching for group mates (i thought i'd just try my luck with the matchmaking).
19. Rock on :)
20. It is a good module and i truly enjoyed taking this module.. i also believe in ben to guide us well for our final project... cheers
21. i prefer... allocation of groups to be randomized... else... people tend to stick together...
22. I re-iterate... CS3216 is ONE module... not 5. We are not teaching staff who teach 1 or 2 modules a semester... We take 5 or 6. The teaching staff appears to think CS3216 is all we should be caring about.
23. I think this has definitely been one of the better modules that I have taken in NUS. What I really liked was that the assignments were flexible enough that you could virtually make anything that you want! Unfortunately The assignments though end up taking a lot of time. One Idea would be to make one of the assignments a 24 hour hackathon to reduce time spent on each project a bit.
24. I will encourage anyone who asks me whether or not to take CS3216 to think hard about it. It is a very good module that teaches a lot beyond just academic areas but it is a challenging module that requires discipline and passion.
25. Many seem to be very passionate for this module at the start, but perhaps because of fatigue everyone starts to ignore module.
26. Nothing really. All covered.
27. still feel really glad I submitted the application for CS3216 =)
28. This can be a great module in a few years time. You just need to get the workload right!
29. The course leaves most of the workload to students. Workshops are not enough. There should be project consultations. SoC Zone is not stable. Facebook also causes frustration for students. Lecturers are asked to lecture on general and wide topics. It's difficult for them, and students don't get much from them, also.
30. "In many ways, the work of a critic is easy. We risk very little yet enjoy a position over those who offer up their work and their selves to our judgment. We thrive on negative criticism, which is fun to write and to read. But the bitter truth we critics must face, is that in the grand scheme of things, the average piece of junk is more meaningful than our criticism designating it so. But there are times when a critic truly risks something, and that is in the discovery and defense of the new. The world is often unkind to new talent, new creations, the new needs friends. " - Anton Ego, from "Ratatouille"
31. Good luck to all of us and I hope that this module can continue to its next semester and all future semesters to come :)
Skip: 13 (29.5%)

I actually think a 24-hour hackathon is a really good idea. :-) Might try that next for the next course. :-P

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