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 CS1101S (Semester 1, 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 Lecturers 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 - I am hoping that future batches of students will read this feedback before deciding whether to take CS1101S or the regular CS1101XYZ version. Scheme is indeed an easy language, but that doesn't imply that CS1101S is easier than CS1101XYZ. Students who decide to take CS1101S because they are looking for a "softer" or easier option are likely to be disappointed. My advice, "Choose CS1101S only if you seriously think you like computer science and are considering going into the IT industry or graduate school. Students who are simply interested in scrapping by should avoid CS1101S".

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 if they wish.  This is an anonymous survey. We have no idea who said what. We just know what was said. :-)

I really appreciate the feedback. We do act on the feedback to improve the teaching of the class. One of the notable outcomes from this year's feedback is the setting up of a peer mentoring Scheme where the students who have demonstrated mastery of the material are paired up with students who have somewhat fallen behind. This was a suggestion from one of the students and the teaching staff decided to take this up. The class is fast and we try not to leave anyone behind. :-)

Total Number of Respondents : 53/57

Understanding Your Background

1) Multiple Choice

Did you have any prior programming experience?









This is a very common distribution. In general, about half the students who take CS1101S have some programming background while the other half do not. 

2) Essay

If your answer to the above question is "Yes", what programming languages do you know?


1. C,C++,Java

2. C++

3. -

4. VB, Java, C#

5. c, i have learned that for only about one month

6. C++ Bit of Java

7. I have done basic programming in C, C++ and Java

8. PHP - currently inadequate BASIC/ VisualBasic C

9. Java, C++

10. I know a little bit about Pascal

11. Only some syntax about C..-_-||

12. C++ and a bit of Perl

13. C++

14. Java C++

15. Visual Basic, C++, Java

16. C++

17. c java

18. Pascal

19. basic, pascal, C, Java

20. C

21. C++ Java

22. C++

23. I know Java and C++ where the programming code was although long but due to the use of loops and all, the code was easy to write.

24. C++ PHP

25. c++

26. Pascal, Java

27. C++ (very little), foxpro

28. Pascal, C++ :)

29. C++, Web Dev languages

30. Visual Basic.. but I almost forgot it...

31. C, C++, Java, C#, JavaScript, VBScript, HTML, ASP, XML

Seems like the majority of those who know some programming have C++ background this year.

3) Multiple Choice

Did you know Scheme before taking CS1101S?







   1. Just heard of it as an MIT-developed language
   2. I knew scheme existed and that it was a functional programming language but not the concepts
   3. -


In general, most students who take CS1101S have no idea what Scheme is all about when they sign up. It's quite amazing that we have one student who actually knows Scheme this year!

4) Essay

Why did you decide to choose to take CS1101S instead of CS1101XYZ?

1. Because I actually really bought that claim that "Scheme is for beginners."

2. students tt have taken it seem to find it interesting

3. My senior told me it is very interesting. (I told him I like recursion :P) and he is right! ;)

4. Thought i should take up a challenge...since i already knew a fair bit of java.

5. Senior said cs1101s is harder. All of my friends are taking cs1101xyz. I want more challenge and being different, so I took cs1101s.

6. Smaller class, good lecturer, looks more fun!

7. hear from senior, get a good lecturer

8. (define (reason-chose module) (and (fit? (timing module) schedule) (interesting? (description module)) (not (similar-to-JC? (topics-covered module))))) (reason-chose CS1101S) ; (begin (set! meaningful-names (understand? code) ; meaningful-names))

9. To challenge myself. Also, since we are going to learn Java in the end, might as well learn two languages in the meantime.

10. I heard from my seniors that Scheme is cool...

11. I thought it was going to be challenging and exciting to do scheme and more importantly I wanted to know whether I would survive.

12. I felt it would be challenging as well as it being more niche then java would give me a better experience.

13. I find it more interesting and more challenging.

14. I think it is a very good way to practice thinking. I believe university experience is mainly to meet different people, you see things from different perspective, and to stretch my mind. I think CS1101S is really a very interesting module that shows me a different way to think

15. Thought it was interesting and it's a good way to learn to THINK.. very hard..

16. I was exempted from CS1101XYZ.

17. Heard that it would reinforce basic programming principles and disciplines.

18. I think it's better to learn concepts of programming

19. Compulsory for double degree.

20. Because Scheme sounds like easier than Java after attended the intro workshop. In fact, it is harder than Java.

21. Honestly, since I went back to China, I was absent from the course briefing. In other words, I know nothing about the module. When I was bidding for the modules, a friend of mine told me the module is easier compared to XYZ, and students can easily get higher marks...-_-||

22. Scheme is fun and challenging!! However it is too "fun" that I might not pass it....

23. It sounded interesting and easy to learn. Furthermore I was impressed with the way the lecturer "sold" this module during the workshop held before term started.

24. I have known Java before, and I want to challenge myself :)

25. coz I think it's more challenging, and I also want to learn new programming language

26. I wanted to learn more about computer science and concepts in programming instead of taking a subject to merely assist me in getting a job later. I am glad I learn things like higher-order procedures and recursion/iteration and I feel like I wouldn't have learnt these in CS1101XYZ.

27. Because I wanted to feel challenged and understand the concepts rather than the "language".

28. Because I heard it was harder and wanted to take up the challenge!

29. Thought scheme might help me understand java or other programming languages better. (Should be true right? =X)

30. Only module offered

31. It seemed more interesting and i had feedback from friends that it would be a more interesting module to take.

32. Because I wanted to learn more

33. I didn't wanna compete with those pros who already had a lot of experience with java. There's no bell curve. The group taking scheme is much smaller than those taking java, so it's a "warmer and cosier" environment. It's better because i think we get more attention. You and the seniors promised that we'll have a different perspective of OOP (and/or programming as a whole), and I wanted to experience that.

34. I wanted to get into S.P.C. for which my seniors told me that it would be quite good if I take scheme.

35. Want to learn something new

36. Cause i thought i would be a challenge and hopefully i can rise up to it.

37. I thought no difference since I expect to face (much) difficulty either way. Since Java was so hard to bid i thought no harm going for Scheme since I'm kinda fine either way. Even when Dr Ben offered a free transfer I *thought* no harm continuing in Scheme, but.... ....

38. I thought it would be easier.

39. I want to learn how to THINK!

40. first of all, it's no need to take a module to learn java. self-study is enough. secondly, my senior told me I will gain a lot from CS1101S.

41. I like challenges.

42. It sounds really cool during the scheme introduction workshop.

43. From what Dr Ben told us when we were being introduced to scheme and java before the FOW, I seriously thought that Scheme would be easier to understand.. I also thought that it would be better to be in a smaller lecture group.

44. I think CS1101S is way more fun and challenging than the normal CS1101XYZ module. It is more interesting compared to the other languages I know. Also I wanted to apply for SPC.

45. Required for DDP (I think)

46. Learn a new language

47. It's compulsory in DDP, and some seniors said it's cool.

48. I was a mathematic major student in high school. I heard from my senior that I should choose CS1101S because I have a foundation in mathematics. In addition, choosing CS1101S fitted my schedule.

49. To learn more, to be smarter, to be different from most people.

50. Interest in Mathematics

51. ...i chose cs1101s accidentally. I didn't know the difference between S & XYZ, so i chose randomly >.<

52. Wanted to take CS1101XYZ as I was told by seniors that I should not waste time on something unnecessary such as Scheme. However, I was interested in learning a new language. Being caught between the two, the situation solved itself by making the only courses to fit my schedule be CS1101S and CS1101Z. Of which, CS1101Z was highly contested for during the bidding, leading me to decide on CS1101S.

53. I was interested in SPC and thought scheme would be helpful for that.

Skip: 0 (0%)

Like last year, some people took CS1101S because it is a requirement for the Special Programme. With the introduction of the CS-Math Double Degree Programme this year, some have also taken CS1101S because it is a requirement for the DDP. From what I have seen, most of the DDP students have done very well because CS1101S covers a lot of concepts that are closely related to discrete Math.

What I am concerned about are the students who got into CS1101S because they blur. I believe that the impression for student 21, "a friend of mine told me the module is easier compared to XYZ, and students can easily get higher marks" is wrong. Traditionally, CS1101S gives out a larger proportion of A's because the class is small and not subject to "The Curve", but more significantly because the calibre of the students is *substantially* higher. Students who are looking for a good grade from an easy class are likely to be sorely disappointed.  


1) Multiple Choice

How do you find the lectures?



I have no clue what the lecturer is talking about most of the time


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 (not like I've taken a lot, but...)


   1. sometimes I understand sometimes I dun. I get the concepts but dun understand the code.
   2. Challenging to keep up
   3. I am able to follow the material well but there are some topics in which I don't get everything which is taught
   4. Lectures are interesting!
   5. I tend to get like maybe 70% of what is going on, but there are certain days that I have absolutely no idea what in the world is going on.
   6. Lectures are interesting even though I do not understand half of it most of the time. Its lively and engaging.
   7. You're good as a lecturer for scheme, as in I understand most of what you're explaining to us. Or will understand after a bit more thought after lectures. I think I get most of what was taught, with the exception for the harder maths, as my maths is pretty bad.
   8. The lectures are cool! The materials are interesting, definitely my best class! However they're somehow overwhelming for 2-hour lecture. Cannot follow without reading about them before class.




Seems like at least 90% of the class is following the lectures reasonably well. I am pretty satisfied with this feedback. It is quite impossible for me to ensure that 100% of the class are completely on top of the material for the lectures, fundamentally because the pace of the class is very fast. If I slow down, I will never be able to finish covering the planned syllabus. Lectures are paced to ensure that the median students follows comfortable. Lecture slides are made available on IVLE 3/4 days prior to lectures to help students who need a preview to follow the lectures. 

Why is the class so fast? Because it IS the ADVANCED introduction to programming class at NUS. Students who want to go slow have the option of taking CS1101Z and therefore it is not fair for me to slow down the students who sign up for CS1101S for the roller-coaster experience (i.e. wind in their face sort of experience). Got complaints near the beginning of the semester when I slowed down a little bit to let some students catch their breath - but I think the complaints were quite fair.

In any case, if the students were asked the same question after the first 2/3 weeks of lectures, quite sure that I would have some 50% indicating that they have no idea what's going on. One of the reason why many students now (after the middle of the semester) say that they are following well is also because they have gotten used to the pace -- and to the Scheme syntax.

For the uninitiated, Scheme looks kind of weird and obscure with all the parenthesis everywhere. My hope however is that by the end of the class, a substantial number of students will learn to appreciate Scheme like Shakespeare and when they start writing code, it's like poetry in motion (this is called Wishful Thinking.... which we do a lot in the class).

2) Essay

Feedback for Lecturer Ben Leong.

1. Good!

2. It's the only class where the lecturer takes a personal interest in every student ;)

3. pace is reasonable most of the time. classes are interesting. Prof Ben's nice and funny. :)

4. Very good. For me, I learnt from you not only the programming concepts, but also some optimistic attitudes towards study and life, which I think is very helpful.

5. You are a good lecturer. Sometimes you go through things too fast especially if people ask a lot of questions at a particular lecture. I know you keep saying that lectures are not enough but I feel a lot of students would like to understand as much as possible in lecture first before reading the slides on their own. Sometimes, some students also ask questions that are answered later in a few slides. Perhaps what you could do is, if you think you are going through a particularly tough-to-understand lecture, you could inform us beforehand to note down questions on a piece of paper first and then you could answer the questions either during the break or after class.

6. quite good

7. He is cool and the way he teaches is mindblowing

8. I don't think there is any method i would prefer to have the lecture in, just keep the webcast, it's a life saver...

9. Dr Ben is far more engaging and most other lecturers. Although one might attribute this to the smaller class size, I feel that it has more to do with the teaching style. Most other lectures serve to propagate information and knowledge, while tutorials serve to validate understanding. For CS1101S however, Dr Ben actually teaches during the lectures and periodically checks on his audience to ensure receptiveness.

10. You've put in a lot of hard work lecturing for the class. Thank you very much and keep up the good spirit.

11. Very fun lecturer. Easily the most interesting lecturer I've encountered. Lectures are almost never boring with him. Speaks too fast and in Singlish sometimes, which might be a problem for foreigners, but definitely no problem for me. In fact, I can relate better to him this way!

12. Great lecturer. Tries to cater to the slower students since the faster/brighter ones can make do with slower pace but not the other way round. Haha. Incorporates some jokes during lecture time to make it less stressing and probably to "extend" our attention span, especially dealing with things that are cheem. Has many many versions to his lecture. From V1 to V1.11 for eg. Hahaha. applies to PS, DG and rec too. really dedicated to his work. Awesome. (5000 word limit is like too much.... longer than any essay I've written)

13. You're very dedicated to teaching. That's what I really appreciate. Thank you! : )

14. It's quite difficult for me to listen to him in the first time. He talk quite fast :(. But now, I can listen and understand what he says :)

15. Maybe cut back on the administrative stuff at the beginning of the lecture so people will have more time to ask questions later.

16. The lectures are clear, fun and thought provoking! Great job, prof!

17. maybe he needs to emphasize/reinforce the main point he is trying to teach us... sometimes, I cannot catch the main point.

18. Cool! A lot of laughters.

19. Pretty good, sometimes rushes through things, but I suppose it doesn't happen that often

20. I like your lecture style!

21. I wanted to choose the "I have no clue what the lecturer is talking about most of the time" option just for kicks, but decided not to :P Nothing much for feedback, it REALLY is my favorite lecture in nus so far... and i like the fact that you can crack and take jokes. =D oh, and all the best being a father! ^_^

22. It would be extremely good if he speaks a little slow. He goes too fast.

23. He is the most interesting Computing lecturer I have ever seen. Humorous, intelligent and warm person...haha:)

24. You are cool Professor. It's fun to study the module. You make it a lot of fun.

25. i get the concepts but dun understand the code.

26. Dr Ben is a very enthusiastic teacher, but he should talk slower.

27. Cool Lecturer, but find his lectures a bit fast paced. Understandable and clear though.

28. Examples are good...

29. Dedicated, reliable, kind, easy to relate to and understand. Lectures are enjoyable and fun!

30. Very good! Friendly and easy to approach. Explanation always is very good.

31. You're good as a lecturer for scheme, as in I understand most of what you're explaining to us. Or will understand after a bit more thought after lectures.

32. nice guy

33. -

34. Thank you, Dr Ben. You are cool and sometimes make the dying class revived. However, at the begin of the lectures, the pace of class is a little bit faster..

35. Excellent Professor...way cool. Does not deviate from the topic and is very smart and hence a suitable teacher for scheme. Very IVLE active...i mean he probably does the most stuff on IVLE...than any other prof in NUS. :)

36. Great Teacher

37. Nothing much. Pretty comprehensive slides. *Thumbs up*

38. I think that he present the idea quite well. But in some cases, I have to practice on Dr Scheme to understand how it works. I think that he should use the interpreter to run all the codes that is in the lecture. It might be helpful if the student hear and see the result.

39. Very clear, creative and humorous.

40. Actually, Dr. Ben is the most enthusiastic lecturer in my first year here :) Thanks for giving us new knowledge and great care for the class! Best wishes to your family and your newly baby :)

41. He is a very fun professor. His lectures usually are clear but they really make you think hard and dwell on what is taught in class. I think overall he is doing a great job.

42. Keep up the good work! Very comical and cute too.

43. Superb! Although sometimes tend to go too fast during lectures.

44. Fantastic lectures given and I really like it.

45. Not much .. Lecturer Ben Leong is as good as they come I suppose... There are some lecturers who can make the class very interesting by infusing humour, others who dazzle and snap on everyone's attention (e.g. Prof Tay Y.C.) but those are just other styles of lecturing and Lecturer Ben's style is pretty effective and good in its own way :)

46. Speak a bit slower. And don't assume everything is very easy!

47. At first, it is quite hard for me to get the picture of the lecture, since I cannot pick up the speed of your perfect speech, haha. I had to listen to the lecture and transferred it to the English which I could get used to easily, then I would translate it into my mother tongue, think about the problems in Chinese and find the solution..-_-||That is to say, during the whole process, many procedures are applied..:P. Fortunately, since I get used to the lecture, I can cancel one step, although it is not efficient enough.. However, I will try my best and I like the relaxed atmosphere of the lecture, hehe, though I cannot get the point of the perfect jokes.. :P

Skip: 6 (10.5%)

Thanks for the kind remarks. :-)

Despite the comments to speak slower, what's clear is that I've ALREADY improved.
:-) Only 30%(?) say I speak too fast? Used to be like 90%. Hehe.

Since I'm been lecturing for three semesters already, I can safely say the following: (i) Hard to slow down. I try, but I fail 'cos cannot help but speak fast when I get excited about what I'm talking about (which happens a lot). It's like a reflex action; (ii) Speed of speech doesn't really matter all that much. What matters is whether the students understand what's going on, which seems to be happening.

Will still try harder to speak a little slower. What people need to do however is just to put up their hand and ask me to repeat if they don't understand what I say. Look on the bright side. If I speak faster, it means that I can repeat myself more times during a two-hour lecture!

With regards to the remarks about being rushed sometimes. The problem is that it's very difficult to estimate exactly how long it takes for me to cover a topic. Because the lectures are feedback-driven, my pre-planning estimation can go out of whack on the ground. Some topics I think are complex, people seem to understand without trouble. Others that I think are intuitively obvious, nobody seems to understand? We just have to adapt as we go along. Also, it takes me a while to get a handle on the pace that is "comfortable" with the class (perhaps not with everyone as I explained above, but with the majority).

9) Essay

Please let us have your suggestions on how the teaching for CS1101S can be improved.

1. Probably some lab sessions

2. Its currently pretty good.. nothing that starkly requires improvement.. altho like they say there is always room for improvement.. haha.. Such as hm.. Less typos.. problems sets.. esp. PS 2, needs to be way better documented (almost everyone was lost ... and required someone to clarify or how the graphing works)

3. I followed well in scheme. But I think some of my classmates do suffer a lot, during lectures and doing problem sets. I think especially at the beginning of this course, too many new concepts are introduced for us. For some guys without programming background, I don't think it's easy for them to handle. Besides, I do think PS2 need to be clarified a bit during lectures so that it won't take us lots of time to think about the key ideas.

4. i hope the lecture can cover more basic rules in scheme language. e.g. primitives.

5. Personal attention on students The prof. should go a little bit slow. I don't know actually as I studied very hard for the mid terms but then still I ended up with a very bad score. So even I don't know where I am wrong, it can be time management problem or the paper was tough.

6. recitations should have problems very similar to exams. gives you the practice you need to be confident of exams.

7. Probably can have some group discussion. Currently I feel kinda left out, so I have to fight on my own:(

8. It's ok like that I guess...

9. CS1101S has 3 hours of lecture, 2 hours of Discussion group, 1 hour for recitation. 3 hours for lecture is not enough to explain and clarify everything. I think that we should have good students (the one who understand most part of the lecture) help the other.

10. More lecture hours would be better...

11. I hope that there will be more and more contests, and let students have more times to do the contests.

12. It's already great! =) Perhaps a better introduction for "what we are suppose to do for problem set" would be good tho... maybe go through in lecture, explaining what the problem set is about and what exactly are the questions asking us to do.

13. ~~keep going

14. Some competition problems...should be awarded extra that lazy oafs like me...who can think of a algo but wont take the trouble of writing the code will set out to do the problems.....

15. Maybe can go a bit slower for the weaker students to catch up. Emphasize more on basic concepts (spend more time on them).

16. Nothing, everything is fine.

17. Actually I think it's OK.

18. Extended deadlines for all PSes

19. Can try making more connection between different key concepts. (Though a lot better than other modules already..)

20. The schedule of the PS could be improved. It could be such that the a new PS is released only after submission date of the current PS is over. It seems to overlap now and is a bit taxing on our schedules. PS that also requires us to go through the DG first could also be scheduled better. Sometimes it seems like we only have 2 days after the DG to submit the PS and again, might be a problem for some students.

21. Please put more questions of the day.

22. Not so jialat problem sets, though it might be good to sink in some concepts. Overall, fine.

23. I think there should be more problem solving sessions so that we can improve our skills. More practice questions and reviews would be helpful

24. It would be great if we can have lab sessions where we get to try things hands on while we are learning. I have personally been doing that on my own laptop, but it would be great if everyone does that.

25. none really...

26. I think we should have a lab session for studying CS1101S.

27. I feel that examples given are generally not enough/ explanations could have been done in more layman terms. In other words, I had an easier time studying from the textbook than listening to the lectures. However recitation and tutorial materials are appropriate. and the problem sets are challenging enough to test concepts learnt and how to apply them.

28. At a slower pace?

29. It's already quite alright in my opinion.

Skip: 24 (45.2%)

Frankly, I don't completely understand the suggestion about introducing lab sessions. What are people suggesting? That we make everyone sit in front of a computer all in the same room and all write programs at the same time? That's going to happen at the Practical Exam BTW. :-) Frankly, programming is quite a solitary activity and there really isn't a point in making people all sit together to program. Students can of course form study groups among themselves to do group-based programming, but I see no reason for us to impose this on the students.

What might be good may be to have lab TAs, i.e. people manning the lab so that students who run into trouble while doing the actual programming have someone to turn out. I will think about this more carefully and maybe introduce this next year. There are two issues: (i) money to hire these TAs; and (ii) scheduling issues -- when should the labs be manned? If students don't come then it's a waste of both time and money. Maybe we can schedule such sessions for the two days before a problem set is due? 

The discussion groups are held in the Data Comm labs for a reason. This givers the Tutors flexibility to have some of you guys type out stuff in the computers in front of you. Whether the Tutors actually do this is likely to depend on them and also on the questions being discussed. What I need to emphasize however is that it is not our intention to have your guys do all your DG exercises during the actual DG groups. That will be a waste of everyone's time. What students are supposed to have done is to have tried out the DG exercises beforehand and actually discuss/ask questions during the DGs. Of course, we all know that some people don't prepare for DGs -- but that's fine lah. This is already the university and people can do whatever they like. :-P They just have to bear the consequences of their own actions!

The suggestion to slow down is a perennial comment and people should have seen it before (and my responses) in the survey for last year. Also, I made clear at the beginning of class that CS1101S was going to be a fast-paced and that will not going to change (otherwise it defeats the purpose of having CS1101XYZ what! People who want to learn programming at a slower pace should opt for CS1101Z). I also offered to help students who signed up for CS1101S by accident (and who were quite perturbed by the pace of the lectures in the first week) switch out. Several students took up that offer.

I am quite baffled by comment 5 on the student not knowing where he went wrong for the midterm exam. I actually took quite a lot of pain to come up with a set of solutions for the midterm exams and I released it immediately after the exam. The student may wish to check out the midterm solutions. If he still doesn't understand where he went wrong, he should come to office hours and one member of the teaching staff can resolve this.

In every class, we will always have students who end up falling behind. What we can do however is simply to spend more teaching resources helping those to fall behind catch up. We have 8 scheduled office hours a week (and this usually doubles during the exam weeks) that students should make use of. Also, we have started a peer mentoring scheme. That's the best we can do (for now). Students who still have concerns about the class should send me email and make an appointment to come chat with me and I will see what else we can do for them.

Let me start by apologizing for the typos in the Problem Sets. Truthfully, the Tutors have been working very hard at checking and clearing up typos in the problem sets, but we are only human. :-( I do not agree with this comment "It could be such that the a new PS is released only after submission date of the current PS is over. It seems to overlap now and is a bit taxing on our schedules" (comment 20 above). What matters is when each PS is due, not when it is released. The release dates are actually for my Tutors (NOT the students) since they check the Problem Sets for typos and updates prior to each release. Given a choice, I would have preferred all the PSs to be checked and released at the start of the semester (but of course, Tutors are also human and undergrads, so they have classes to take also). Fact is: we have students who can finish and submit PS 4 even before PS 3 is due. :-P Releasing PS's early gives flexibility to some students.

With regards to the scheduling of due dates, I already tried my best. :-P It's always a big headache because of constraints like public holidays, exams and this year, a conference that I have to attend in the middle of the semester. Maybe next year, the public holidays and stuff will make the schedule better? Students are supposed to have prepared for the DGs. They shouldn't be going to the DG's for answers -- and truthfully, the time given for a PS is really quite irrelevant. Most students only start on the PS's like 3 days before anyway!?!? Complaints on the Generic Arithmetic PS due date should be taken with a pinch of salt lah. Generic Arithmetic was covered BEFORE the midterm vacations (i.e. gap of 3+ weeks between introduction of material and PS due date). The DG for Generic Arithmetic came late only because I cancelled DG for one week because of the midterm exams. I could have NOT cancelled DG for the midterm week and had the Tutors cover Generic Arithmetic instead -- but I would have gotten complaints that I didn't give people enough time to prepare for the midterms (and since Generic Operations was not covered by the midterm, people either wouldn't pay attention or not attend anyway).  Either way, I lose. I just have to pick the poison I thought was more palatable. :-)

In response to comment 4 which suggests that we should cover more Scheme  primitives in class, my view is that CS1101S is able concepts. I actually don't care too much about Scheme and the primitives. Primitives are introduced in class at appropriate times to SUPPORT the teaching of concepts. They are not a focus and will never be a focus for this class. Students who want to learn more about Scheme primitives can go and read the online Scheme manual.

Sorry to hear from Comment 27 that someone doesn't think the lectures are useful and prefers to study from the textbook. I think that's just a matter of learning style. My advice: do whatever works. Some students I know depend only on the lectures to learn the material and don't read the textbook. Does that work? For some people it sure does -- and I'm speaking from experience. :-) I only read the textbook (and probably not in its entirety) when I had to teach CS1101S. When I took 6.001 in MIT, I never opened the textbook either. :-P

10) Essay

Some students have suggested that we have review sessions. If we hold such sessions, what are the topics that should be reviewed?

1. okay.. so this is kind of not answering the question.. but.. Maybe we can have 2 kinds of review sessions? One to cover the fundamentals and the other to cover harder things like applications of the concepts..

2. List

3. No particular topic. Just ideas in general

4. Key points and the mistakes we usually make...

5. Multiple representations

6. No idea...

7. order of growth. oop. more about concept, I am very lousy at it. and review of frequent mistakes:)

8. The lambda special form, and this might sound abstract, but how to "think" like a computer. This only really occurred to me in the mid term test but I realized if I could think like a computer, many things could be solved more easily. My initial confusion with recursion was also because I couldn't think like a computer.

9. Order of Growth.

10. for me : List (the Map, Filter, Accumulate, etc) Orders of growth Higher order procedures

11. binary tree, gaming...

12. The topic should be clarified in the forum before .

13. Of course, the most basic and the most difficult topic. * The most basic (define, lambda, if, cond, ...) are for student to revise what they have learnt, what they haven't understand clearly, ... * The most difficult like "Data directed programming", "Higher order procedure" should be taken into account.

14. lecture 10 onwards.... i also have miscellaneous doubts in other lectures as well for which i think if the professor gives personal time to each student, it would be good for the student.

15. well mostly it will be back to basics recursion, iteration and trees.

16. higher order procedures

17. Problem Sets and their relations to the stuff we learn in the lectures should be reviewed.

18. The one's....that are usually too long to be compressed in two lectures but probably are..........stuff that requires a lot of eye balling..etc

19. Generic arithmetic

20. I believe that review sessions do not really serve a purpose. If anyone requires additional help, a one-to-one session will definitely be more productive. Review sessions degrade CS1101S to the level of common courses where the focus is in stuffing the students with information and expecting them to regurgitate during the exams.

21. Higher order procedures

22. Order of growth Higher order Abstraction Uh... almost everything lah. Lol.

23. orders of growth....?

24. all we have learned...

25. Binary search tree.

26. Fundamental concepts, recursion, iteration, and basically half the contents taught during lectures.

27. I think the concept of tagging and building a a complex system by using different levels of abstractions are very important and need to be discussed in greater details. Also the signal processing and lists should be reviewed along with strings.

28. New concepts that we haven't practised much

29. The topics that should be reviewed should be discussed nearer to the review sessions as we would better know which topics we are weaker in.

30. the order of growth sets Generic Arithmetic Multiple Representations

31. Those topics which are core to programming such as orders of growth and ideas such as list processing which are very important. asking students on the forum is the way to go.

32. Data structure implementation.

33. do not know

34. Obviously everything

Skip: 19 (35.8%)

In response to comments 24 ("all we have learned...") and 34 ("obviously everything"), I think cannot review EVERYTHING lah. Lol. :-)

Seems like the following is the list of requests:

  •  Common mistakes - This one hor, I dunno how to cover also. I'm not sure what the common mistakes are. What I will do however is to repeat some of the questions on the midterm that a lot of people got wrong on the Finals in a slightly different manifestation - just to make sure that people learnt from their mistakes and actually understand what they were supposed to have understood. If people don't learn from their mistakes then too bad loh. Will get it wrong again! What else is new? ;-P

  • Basic recursion, iteration and trees - okay

  • Order of Growth - okay

  • Lists and list processing - okay

  • Higher-Order Procedures - okay

  • Multiple Representations - actually hor, this one got nothing to cover You are just supposed to understand that given a set of specs, you can implement in multiple ways. I will not, I say again, I will not give you specs for a data structure and ask you to implement the data structure in multiple ways (even thought I have asked people to compute something in different ways).

  •  Signal Processing View of Computations - okay

  •  Data structure implementation - nothing left to cover. We already did so many examples in class: set, queue, table, stack, class schedule and on your midterm you have your make-food. People please go and learn from these examples. If you are required to implement a data structure, it will probably be quite simple with a little twist ... like what you got on the midterm.

  • Binary search trees - will not cover, will not appear again ever in this course. :-P You haven't had enough? Not to worry, you will probably review them in gross detail in CS1102S.

  • Generic Arithmetic - you've already done the PS. Wouldn't come out again in the course, but you guys are supposed to have understood the concept of data-directed programming and coercion.

In response to Comment 20 that review sessions are not useful, I guess it all depends. The review sessions are optional anyway. Those who don't think they are useful, shouldn't come! :-)

11) Essay

Please let us have your feedback on the Compulsory Text, "Structure and Interpretation of Computer Programs (SICP)".

1. Seldom use it.. coz it's online.

2. Not really easy to understand for me. No answers to check and understand.

3. Is quite informative and detailed. Useful text!

4. Quite comprehensive but not as good as Concrete Abstractions...

5. More relevant to the teaching material than concrete abstractions.

6. its too wordy and hard to understand. feeling as a burden to read it...

7. Can it republish again? I hate to watch it online.

8. Its very useful.

9. it's quite a good book. I'll keep it even I finish CS1102S. Everytime I read it, I can find new and exciting stuff in it.

10. The illustration is not very helpful if we understand the lecture material well. Exercises are good, but will be better if answers could be provided.

11. Comprehensive, but lacking somewhat in the instructional aspect. The design aspect isn't covered very well.

12. I haven't exactly read the SICP. I am mostly relying on the lecture notes, PS, DG and recitation.

13. The textbook is quite good. It covers all the topics in the lecture. But there is an disadvantage: The book is not available in paper form. It 's out of print. So most of the students didn't read it. The exercises in the textbook are very interesting so it 's good to have a chance to work on most of the exercise.

14. I wish I had the hard copy version. And of course solutions to the exercises.

15. It's really cool!!! Full of insights and helps me clarify a lot of concepts and develop the way of thinking (not only in programming).

16. I only read it when I don't understand the lecture notes. Haha. It's a good book, actually. This is because sometimes, I'm able to find good explanations.

17. terrible sometimes I can not get the point

18. I rarely read the book (lol)

19. I think its very useful for this module and is a must read for better understanding of the module.

20. I have not really been reading this book.

21. A bit too detailed in places.

22. I haven't read it yet

23. I don't really use it.

24. Very inaccessible language, which makes it a very technical read and not helpful for purposes of learning (esp. for a first course in computing)

25. It's a good book..

26. Personally, I have not read the text sufficiently to comment. I tend to learn most of the things I know about Scheme by experimenting.

27. I find it interesting and inspiring. The exercises are quite advanced so they help me a lot in understanding the topic better.

28. Very Helpful in understanding but lengthy

29. The textbook is very helpful. But it doesn't have any solution for exercises :(, so I think we should have solution for exercises in this book.

30. it's not as detailed as i would expect from a text book.

31. informative

32. Er... haven't read it much...

33. As it is web-based, it cannot be easily copied over to the PC. Perhaps with permission, we can spider that site and reproduce and distribute it to students as a zip file.

34. Uh, never really read it properly. Oops.

35. An absolutely essential text. I have it in book form thanks to my seniors and am now reading it like I would the bible!

36. Certain examples are really confusing or tough and sometimes don't really know how to begin.

37. Comprehensive and accessible. Though not everyone reads it because much of the contents are covered in lectures.

38. It doesn't have answers for the exercises!!!!

39. Very good book, clear and interesting

40. It's quite comprehensive, but there isn't much time to use it anyway.

Skip: 13 (24.5%)

SICP is a love-hate thing. People either love the book or hate it. I never read the book when I took the class, but I sort of like the book. I like it much better than Concrete Abstractions. We used Concrete Abstractions last year. I switch back to SICP this year.

12) Essay

Please let us have your feedback on the Supplementary Text, "Concrete Abstractions".

1. I only read a few pages. But, I think the SICP is better.

2. I wish I had the hard copy version. And of course solutions to the exercises.

3. At first it seems more user-friendly than SICP, but then later on it seems to get more and more off-syllabus. (maybe cos it IS, after all, defined as the supplementary text)

4. A bit clearer for me compared to SICP

5. Sorry, but I haven't downloaded it yet...

6. Similarly, have not read this text.

7. Its very useful.

8. never seen, so do not know

9. Never read.

10. It is a good book. The exercises scattered all over the book make it easy to understand a concept. The applications are also interesting.

11. -same as above- :)))

12. never read.

13. Reading it is like talking to friend, because it does not use much formal written English...

14. haven't read it before :p

15. I have this text but I haven't used it so far.

16. Sorry, never read it before...

17. Never read it...SICP is enuf

18. I don't really use it.

19. I love the applications at the end of each chapter. They give a good view of how what we've learn can be used in real life.

20. I have the hard-copy of "Concrete Abstractions". It 's not as good as SICP.

21. Good book lah...

22. I Haven't read it yet

23. Ok.. doesnt really provide extra info?

24. Rather good text. It would be better if the pdf has indexed links,

25. i don't have that book and never read it.

26. I hope the examples have answers.

27. no idea

28. It's also nice and includes more details. But in fact no enough time to read through.

29. I've not touched this text at all.

30. This one is a little harder to understand compared to SICP but nevertheless its very helpful especially after you read the lecture notes

31. Usually don't read it

32. Clear

33. Uh. nvr really read it properly too. Oops again.

34. Comes across better in the instructional aspect.

35. Havent referred to it yet.

36. n/a

37. its easier to be understood than sicp, but sometimes hard to find the main point of the contents.

38. Helpful as a complimentary text. Some things are better explained here, but I feel many could make do with SICP alone.

Skip: 15 (28.3%)

It has slightly more accessible language than SICP and some neat examples, but some of the examples that they use to illustrate certain concepts are overly complicated in my view. That's why I'm only using this as a supplementary text. :-) Overall, I think the decision on SICP as main text is correct (and it's not because of my MIT-bias). :-) 

13) Multiple Choice

We introduced reflections as a means to enhance learning this year and we would like to seek your feedback on it's usefulness. We usually throw in a question or two that students are encouraged to think about and start a thread in the IVLE Discussion Forum.

Do you think that this method to encourage reflections has helped you in your understanding of the material covered in lectures?



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.




These results are not surprising. This process of reflections clearly helps some and not others and probably not all the time. The fact that 30% of the class finds it generally helpful I think is already good enough and indication for me to want to continue to do this in future semesters. I think reflections helps most for those who actually post them, but it already helps those who read the reflections by their classmates.

Personally, as a lecturer, it helps me too because it is another feedback channel for me as to how the class is going and where people are confused. 

14) Multiple Choice

Do the reflection questions/reflection process increase your interest in Scheme and CS1101S?







NA - I don't post reflections


  1.I don't necessarily reflect only by posting materials on the forum. Sometimes I reflect about the concepts in my own free time (on the bus, at home, etc.) and test them by actually trying it out. So even though I am interested in Scheme and CS1101S, the reflections I do on my own and the reflection questions in the lectures increase my interest. Sometimes I discuss things with friends/classmates and that helps too. But the process of posting things online doesn't really increase the interest.
  2. Sometimes it did, sometimes it didn't. Many times I felt convinced that Scheme is not really a very powerful language even though it proved me wrong many times, perhaps the problem is with it being hopelessly inefficient. I am still more impressed with Java and still sometimes thought I should have taken the Java courses instead.
  3. Depends on how well I've understood the material so far. Heh.
  4. Sometimes yes but other times no because I do not really understand what's going on.
  5. Sometimes there are things to write, other times there is nothing. I find it a turn off that some people write reflections for the sake of it. They should refrain from random commenting and only post if it is required. In general, most of the exchanges are meaningful and increases my interest.
  6. most of the time, i dunno what is going on. and the forums are just plain user unfriendly, someone should go redesign it...




Good. With this response, Reflections will continue to be a feature in CS1101S next year. :-) 

15) Essay

If your answer to the previous question is that you do not post reflections on the lectures, we would be most grateful if you'd share with us why you choose not to do so.

1. Waste of time.

2. The forum gets too cluttered.

3. i can reflect back on a lecture and basically sum it up in a sentence or two.. so i do not see the point in posting something which i think is subjective to each student. also, for fear of posting something ridiculous?!

4. Not sure what to post

5. Since most of the issues raised are outside the learning scope and difficult to understand. And if i have doubt about the concepts taught in lecture, i'd rather go for consultation to clarify. Unless the discussion is relevant, e.g. discussion on ps problem, it's hard to follow.

6. Dominated by extreme high level discussions

7. The forums are too cluttered and sometimes, it seems like after the first 5 or 6 posts, there isn't much to add regarding a particular reflections question.

8. I'll only post reflection if the lecture is very very very difficult. Sorry... -_-

9. most of the time, i dunno what is going on. and the forums are just plain user unfriendly, someone should go redesign it...

10. get no time to do so~~

11. Don't really know what to type in as reflections since everyone's posting almost similar stuff.

12. Usually, they're questions that are too difficult for my current level of understanding...

13. People ask too difficult questions.. plus no time to think through it..

14. My friends posted all that I want to say and I don't want to spam the forum.

15. reading off a forum may help for some ppl but i prefer face to face talk.

16. I think it's just a habit. I don't go to the forum often.

Skip: 37 (69.8%)

Okay. Thanks for sharing. Reflections are optional. Fine if people don't want to do it. :-)  

Discussion Groups

1) Multiple Choice

Do you find the CS1101S discussion session useful in your learning?







  1. yes but the sessions always seem to be dominated by those students who already have a good grasp of the topics at hand. not enuff interaction between students themself as well as between tutors and weak students.
  2. Not that much because my understanding is not that good and the tutors have to cater to the whole class, so sometimes I lag behind. However, recitations are very useful as I get to understand concepts better.
  3. I think it's a bit like a time for solving homework :| Maybe it's better to have actual discussion and get people knowing each other




Good to know that the majority of students find the discussion groups useful. Shows that the Tutors are doing their jobs. :-) 

2) Multiple Choice

Do you find any differences between the CS1101S discussion session and tutorial sessions in other courses?









These results are quite curious. Fundamentally, our discussion groups are either same or different and it's a bit odd that half think they are the same and half think that they are different. Ah well..... 

3) Essay

If you find the CS1101S discussion sessions different from the tutorial sessions in other courses, what are the differences?

1. The content is about programming which is more interesting ;D

2. firstly its an hour longer !!! but i find my session much more different because we go through everything very carefully and not just get the answers. Thus its cooler for our understanding.

3. More interesting tutors and topics...

4. Harder to cope.

5. Much more intense, involved and thought provoking. I learnt most of my stuff from here actually.

6. Every tutorial is different in a way... so difficult to answer this question!! =/

7. As mentioned above, normal tutorials tend to be very much akin to "answer checking sessions". Even for non-technical studies such as MNO1001, the tutors like to force things down our throats and highly discourage discussion that challenges established viewpoints.

8. More learning.. of nuances...that cannot be taught in lecture

9. its more relaxed, discussion based and a lot student participation.

10. solving problems is not the key point in CS1101S discussion sessions, however, to understand the concepts introduced in lectures is most important. Besides, CS1101S discussion group tend to have a smaller class so that it's easy for tutor to clarify our questions.

11. Since we have 2 hrs. The pace is slower and is more helpful.

12. Smaller class, more interaction. Allows for greater discussion and understanding.

13. It's the nature of the module. In other tutorial sessions, we go over the questions and sometimes we don't have time to go over all the questions or we don't understand the solutions to some. But in discussion sessions, we go over all the questions and with the computer, we can also test solutions and have a better chance at understanding the solutions.

14. They're rather different courses in nature.. probably any meaningful comparison would need to be done with CS1101XYZ

15. More fun? Lol. It's the only tutorial that's taught by a senior for now. Even though I've heard say that when you get seniors as your tutor, they'll probably be uninterested in teaching you and have no time outside of lessons to help you. But here, the tutors are quite happy to help (as seen in the forums).

16. Some of the questions are challenging. So, I can understand the Scheme language better.

17. Much more interaction between students and tutor and tutor will usually give further illustration and information related to the questions.

18. More interesting.

19. People are more active, discuss about the different answers that they have more..

20. More interactive and greater help in understanding lecture topics

21. More participation from the students.

22. Much more interactive. That's good!!! All tutorial classes should be this way!!!

23. In tutorial sessions, we rarely discuss together about the problem, just give solutions for exercises.

Skip: 29 (54.7%)

Great sounds like my Tutors are doing a great job. :-) With regards to the class size, I would actually prefer even smaller discussion groups, but I will need more Tutors. I think six to eight students per group would be ideal.

This is random trivia, but when I took 6.001 at MIT, my tutorial group had only 5 students! Given the level of teaching resources we have at NUS, 5 students per group is not achievable. If I can achieve six to eight some day, already very good. :-)

Main constraint is the number of Tutors. CS1101XYZ can take nearly any student as Tutors, CS1101S can only take the former CS1101S students as tutors. That's a much smaller pool. Since your batch is quite large and there are quite a number of you who are really good in Scheme, perhaps more of you guys can sign up as my tutors in 2 years and then we can have even smaller Discussion groups.

4) Multiple Choice

CS1101S has the following official contact hours: three hours of lecture, one hour of recitation, and two hours of discussion. What do you think of the class time?



Way too little, we need to spend more time in class.


More class time would be helpful


Just right


We don't need so much time in class. We can afford to cut one hour.


This is way too much time to spend on something as simple as Scheme. We can afford to cut at least 2 hours




Interesting. I larger proportion of students this year seem to think that we need more class time ... but my question: more class time to do what? :-) 

5) Multiple Choice

If you think CS1101S has too many contact hours, and you are given a choice to cut off one such hour. Which one would you prefer to be cut off?







Discussion Group




Hmm... Not sure how to interpret these results. 

6) Essay

Please give us your suggestions on how we might be able to improve the discussion sessions.

1. allow some group discussions.

2. Pacing of the TAs? Then again they are not professional tutors in that sense so can't really blame also...

3. dont post all the questions before hand...the conceptual ones...should be introduced in class.........u the order of time...etc...should be a test the student

4. Not much I can think of. The current situation is alright.

5. hm... it's fine

6. If recitation is cut, I'd still like to have the recitation questions and have the solutions posted on IVLE.

7. Do more problems!

8. recitation may be cut off. and then, in every discussion session, the tutor may recap the key concepts taught in the lectures and then go through the questions.

9. I think for discussion groups basically we solve the problem ourselves at home and if we cannot solve then we can always refer to the solutions on ivle . So the doubts can be clarified in the consultation sessions and I think for discussion groups the questions should not be posted on ivle beforehand. I mean if we are given the questions in the class we can see how fast and instantaneously we can come up with the solutions which will help in exams too.

10. More tutors!! The tutors are doing a good job, but if the class size was smaller that might encourage more interaction.

11. The DG on lists was good, for example, as there was sample input and output for every question :) Earlier DGs could use this too...

12. Maybe discuss briefly how the questions can branch out to similar but different questions.

13. yes but the sessions always seem to be dominated by those students who already have a good grasp of the topics at hand. not enuff interaction between students itself as well as between teachers and poor students.

14. It's good. Let it remain as such.

15. Put more questions.

16. I think it's a bit like a time for solving homework :| Maybe it's better to have actual discussion

17. Nope, i think it's great! and it is good that it differs from tutor to tutor as it is... makes it interesting to see the different views and perspective of scheme.

18. More interactive because some of the students are shy shy one. I hope the tutors can teach us step by step because some of the students are blur blur one.

19. Try to keep 'smart' people at bay, they keep asking all the chim questions and all, i really dunno what is going sometimes... want to say something also dun dare to say...

20. More practical practices...

21. We could discuss problems sets during DG sessions too. As of now, PS are not discussed at all.

Skip: 32 (60.3%)

In response to comments 3 and 9, the Discussion groups are meant to help students learn, not assess how fast/much they have learnt. Not posting questions beforehand is not the way to go. While the questions are posted, students can not look at them prior to the DG if they so choose, but that's defeating the spirit of the discussion groups in that students are expected to prepare beforehand so that they can go and ask questions to clarify doubts which hopefully helps them learn more/better. I tried having a surprise in-class quiz during recitation and people didn't take too kindly to it.  

Problem Sets

1) Multiple Choice

As a five MC module, the workload for CS1101S is expected to be heavy. On average, we expect students to spend about 12.5 hours per week on the subject. Granted that for some of the weeks, you spend less time on the subject; and on other weeks, you spend tremendous amount on it. On average, how much time per week have you spent on CS1101S?



At most 10 hours


Between 11 and 13 hours


Between 14 and 15 hours


Between 16 and 18 hours


At least 19 hours




All in all, I think we're doing quite well. Reason is that PS's 2 and 3 are significantly more time consuming than the remaining problem sets. The averages are typically higher after the midterm than after the whole semester. This year's result is not very different from last year's. But if you look at the answer to the same question at the end of the course last year, people will see how it eventually balances out.  

2) Multiple Choice

The problem sets are important for learning the material in the class







  1. Concepts are there but the applications sometimes a bit... cheem
  2. whilst I understand their practical applications, they seem to be dwelling in unknown ground. they dun reflect what is need in exams. rather often after we finish the problems sets we forget what we did for it quickly.
  3. I feel like I am suppose to agree but I cannot seem to do problem sets on my own so in that case it does not help me in terms of concepts.
  4. i think problem set is interesting. but not so related to what we learnt, in my point of view.
  5. Sometimes it is sometimes it's a bit hard to see the link.
  6. Not in a obvious way. But I'm sure it is.
  7. i half agree, half disagree. So there should be different practical classes in which students discuss about the problem sets and different practical questions which are of importance for the practical exam.




I wonder why there are three students who don't think the PS's are not important for learning. People who are looking at the Problem Sets from the perspective of preparing for the exams have completely missed the point. Those who are only looking at trying to do well for the class by doing well at the exams are wasting their time in this course.

3) Essay

Please let us have your feedback on the problem sets for the class

1. Rather difficult. Research out of lectures and DGs required at times.

2. takes a lot of time....

3. very good practice.....

4. It is a little bit hard that sometimes I can't catch the ball.

5. They can be torturous! Yes they are fun, but I have to be lying to myself if I said I am having fun when I couldn't even figure out how to start some of the questions after staring at it for 5 hours. The problem sets are tough enough that they test concepts, not just memory work. I think the current situation is alright.

6. The problem sets are ambiguous in some aspects.

7. It takes time and effort but interesting and beneficial. And it makes me feel good because we can 'solve' big problems with present knowledge.

8. Mostly difficult and requires a lot of time and thinking. But it's a good stretch for us.

9. Cheem, can potentially drive some people mad. =X

10. Challenging

11. Hard.. obviously. lols. Allow more time to work on it?

12. they are really challenging and that is why they are really good for the students .

13. Generally, the difficulty is okay and the time given is more or less enough if we plan well. It's really helpful to apply what we learned during the lecture and to gain a feeling of accomplishment after finishing it every time. :p

14. Sometimes it seems difficult to solve it in a short time with my previous knowledge in some field, so I had to search for the internet for some related background information, but it's fun to know new things!! I draw the conclusion, after a suffering process, I can have a cool result finally.

15. Well it's interesting, but should focus on the question, not focus on the story.

16. Problem sets are very interesting and challenging. I spend more than 19 hours a week primarily because I enjoy exploring the many ways to solve the same problem, or perhaps even doing something more than is required.

17. Problem sets are not so difficult since we have discussion group. Most questions in the discussion group open the gate to the answer of the problem set.

18. its challenging, it requires a lot of thinking and application, but the pre-readings of ps waste a lot of time, eg ps3.

19. There very little link between the lecture contents and the problem set.

20. As they are : "grow exponentially in difficulty but (fortunately?) drop linearly in time"

21. The problem sets are very well designed and they help us solve problems on our own given some background information which is the best part according to me . You have to take your own time to understand it and see how to solve it.

22. the first 3 problem sets can be easier to wait for us, until we get familiar with scheme, then it could be harder.

23. Vast difference in standards from dgs

24. It's very cool, especially the next PS5 :)

25. they are difficult but once you understand what they want us to do then its no more than an interesting game to play but then the time given should be flexible because we had our mid terms now and they are still continuing. So most of us haven't yet started ps4 and its due on thursday. I'm really worried that how will i do it. Problem sets are not the cup of tea for every one.

26. Interesting

27. There are lots of typos and ambiguous questions. In ps02 the code was not explained clearly, causing me to have to spend quite a few hours just to understand what's going on. Though that's a good thing to train - how quickly we learn new ideas. Questions like 7 and 8 in ps03 are ones I really hate, although from forum response many think the opposite. The questions are also not creative enough to get us to really think critically. dg04 was better in this sense I feel.

28. The interesting problem sets allow us to have more knowledge about other aspects of computing for ex RSA. It also allows us to have fun (I hope, wrt the robot PS)

29. Its hard for me, I have to say!

30. They're very interesting and do help us gain new knowledge.

31. Typos.. plenty of out-of-sync in submission template, problem set question, and .scm source files PS03 with that (totally unrelated) background story was a cool touch.

32. I mentioned it above, unclear of what exactly are the things we must do. And it will be great if the problem sets are released only AFTER the discussion group discussing the PS materials.

33. Helpful since it let me understand the Scheme language better.

34. cannot get the connection sometimes

35. very challenging!!

36. Can get a bit too difficult in some parts.

37. Less maths stuff. Some pses are about maths rather than about scheme.

38. The problem sets are cool. I particularly liked how in PS2, if the connect-ends wasn't using the let special form and you did calculations like (curve1 0) and (curve0 1) repeatedly, later on in dragonize, you cannot perform (dragonize 200) because time taken is too long. I guess you could improve the schedule and also have varied questions that you can't Google answers for.

39. Interesting, but for weaker students, it takes up a lot of time.

40. Beside the Scheme contents of the problem sets, the backgrounds were also interesting

41. whilst I understand their practical applications, they seem to be dwelling in unknown ground. they dun reflect what is need in exams. rather often after we finish the problems sets we forget what we did for it quickly.

42. They are extremely important as they will allow us to understand the concepts taught to us.

Skip: 11 (20.8%)

This is how it works: people must LEARN how to program and think about programs. If they figure that out, they will naturally do well in the exams. If they don't, they will not. It's as simple as that. Truly. DGs and problem sets provide students with the practical experience that they need to learn how to program. DGs involves simpler applications; Problem Sets drive home the point (hopefully). People should do it in sequence, DG first then PS. That's about it.

When people say that the Problem Sets are not related to the lectures, what they are saying is that we don't spoonfeed you, but that's intentional. If I tell you everything you need to know, how do we foster independent learning?

On the difficulty level of the PSs, here's my favourite phrase:
what doesn't kill you makes you strong.

4) Essay

Please give us your suggestions on how we can improve the problem sets.

1. more warm-ups

2. Having a more structured feel to it.

3. there is no possibility to increase the difficulty level coz they are already difficult but we can make it a bit easier for every student to score high in it.

4. Questions are linked so when we don't know how to do the ones in front, the ones behind will normally be a problem..

5. Increase the number of small mini-sized problems.

6. Have more about practical problems.

7. Should be more samples provided. PS3 is good as there are many samples and explanations!

8. More practical problem sets (like ps5)...

9. I think the problem sets should be changed because I have seen that the last years problem sets and this year's are almost same which may lead people to refer to solutions of their seniors.

10. For the PS questions, what the question requires you to do should be more clearly distinguished.. as in it shouldn't be mired somewhere in a wall of text.. sometimes it becomes unclear what the question really wants you to do.

11. Problem sets should have more optional questions of much higher level of difficulty. Unlike contests, these are relevant to the entire problem set and will probably receive better response.

12. did i mention extended deadline?

13. A minor suggestion would be to proofread the PS before uploading.

14. either you give time to explain the scenarios of the problem sets in context of what we are suppose to learn or understand. otherwise convert them to exercises practical to meet exam standards.

15. Improve on typos, phrase questions clearer, and put in more "cute" questions.

16. Make it easier? Way easier?

17. Make the questions more clearly..

18. Just keep it up...

19. You could avoid what you just did. Try to avoid overlapping questions. The previous question in this survey asked for 'feedback' and here you ask us 'suggestions on improving the PS' and the content of both overlaps. This was also visible in PS3 where you had us forging a message to Jaf and in the next question, you had us forging messages between different people. If you could do the jaf question, then I guess the next question isn't needed since the essence of both question are the same.

20. explain the questions in general at lectures. :)

21. Well have a bonus marks question per problem set.

22. The descriptions in the problem sets should be clearer.

23. They could be made clearer. I sometimes have to spend more time understanding what the question wants than solving it.

24. Do not make every question follow from the last. is a problem if we get stuck.

25. maybe from the easy one to the harder one

26. Well, I hope the extension of deadline can be resumed if possible since sometimes different deadlines will really come together at one time unexpectedly. And I don't think it will really help to eliminate the copying of code because those copiers are probably running out time even with the extension. If more time could be given, they will be able to figure it out on their own and learn more. If they just want to rely on others, they will still copy without extension. So please kindly keep such flexibility to grant us more chance to survive... Thx:-)

27. Don't make so cheem la, then can meet deadline without extensions.

28. nothing much really...

29. make it simpler on what students are exactly required to do.

30. More interesting topics...

31. Problem sets 2 and 3 were a lot of fun because they involved some really comical scenarios. Generally I like my homework to also reflect some real world scenarios which can be applied to, so maybe that could be one way where the Problem Sets could be improved. (so far)

32. Lesser pointless questions

33. I think some of the questions should be more clear. It's better to separate the background and the question in each exercise. And there should be a couple of challenging questions for each problem set :p

34. Try to give all info in the problem set rather than saying refer to SICP.

Skip: 20 (37.7%)

Some general responses: first, it's hard to come up with a good problem set. Maybe I should have a Problem-Set-designing Problem Set at the end of the course (see the recursion) and you guys will understand the difficulties? It's not easy to create a coherent problem set such that each question is of increasing difficulty and we can make later parts independent of the earlier parts.

I actually developed the quilting problem set last year and it was a lot of work. This year, my focus was on other things. Maybe next year, I will introduce one or two new Problem Sets. It is not humanly possible with the level of teaching support that I have to come up with completely new problem sets every year. It is true that there might be some cheating where people copy solutions from their seniors. If we catch these people, they are in deep trouble; but even if we don't, they will still be in deep trouble when the exams come around (esp. the practical) 'cos they would not have had the learning experience they should have had. Personally, I'm not too concerned. What is important is fulfilling the teaching objectives for the class.

In response to comment 34, all the info IS GIVEN in the PS. SICP is just for further reading in case people want to read more. That's all. But even if some of the info is in SICP, so what?? Don't be lazy lah! :-)

5) Essay

Please let us have your comments about the Programming Contests.

1. The contests are nice and I solved some like the NUS problem and some I read through and thought of a way to solve them but didn't spend time writing the actual solution.

2. I would love to participate in contests, however I already spend most of my time tinkering with problem sets. In addition, responsibilities and commitments to other courses mean that I should avoid too many non-essential activities so that I can devote my time them better.

3. They are quite good.. evoke interest in scheme

4. no time to attempt those... especially with hall commitments together with other outside stuffs.. :P but it is a GREAT idea! would love to attempt them if i had the time! =D

5. Good, interesting.

6. cost a lot of time

7. Don't really have time to do them.

8. Well they should not be incentive free...give us incentive...we give u marks

9. only appeals to the students that are not struggling/dun need so much time to understand concepts/write code.

10. Looks interesting, but I never really did take part. Good for sieving out the A+s from the rest!

11. I haven't participated so far. But its a good idea.

12. Out of my league :'(

13. Too little, but otherwise alright.

14. They're really cool : ) I found challenges there! And they did inspire me to learn harder!

15. It's quite good! I hope there will be more interesting kind of questions. especially something I've never seen before :p

16. Good!

17. Good way to occupy the very good students. Interesting to see what the other students among us are capable of doing using scheme.

18. The contests are very thought provoking yet when you manage to win they give you a sense of achievement

19. haven't tried them.

20. Benefit some but not most.

21. Challenging

22. Time consuming but interesting and improves my understanding.

23. not good enough to participate in one...

24. Never attempted as the PS already takes up so much of my time.

25. I haven't participated it as I don't have much time to think about it. It is for pros..

26. It's interesting although most of the time I cannot get best solution:P

27. I've not tried them at all. Seems pretty fun though.

28. Tough but cool lah...

29. Interesting, but wastes too much time. =P

30. no comments...

31. Don't participate in it..

32. did i mention extended deadline?

33. i like it.

34. Programming Contests are great chances to practice and learn how to think.

35. I haven't yet participated in them but i guess they are really interested as my friend was telling me the same. I plan to participate in them from now.

36. They are actually quite tough but we can gain a lot by spending long time thinking about it. It's so sad I don't always have that much time... :-(

Skip: 17 (32.1%)

Contests are meant to be optional and to suck up the time for the students who have a lot of time to burn. Seems like they are fulfilling their objectives.

While this batch of students seem to be stronger on average than last year's batch, the participation rate in the Contests seems to be lower. I'm actually quite surprised.


1) Multiple Choice

What is your overall impression of CS1101S thus far?



This is a horrible class. Truly regret choosing it.


Should have taken CS1101XYZ instead. :-(


Just like any other


CS1101S is cool


CS1101S rocks. Coolest class I have taken in my life.




Given that 80% of the class are relatively happy with it and 10% are unhappy, I think we're doing okay. This is slightly better than last year.

Research has shown that students are happier with a class when they think they are doing better in the class. This year's batch is significantly stronger than last year's which perhaps explains the improvement -- or perhaps my teaching has improved? :-P

I am sorry to hear that there's one student who thinks the CS1101S is a horrible class. Perhaps the student can make an appointment to see me and we can see how we can help him/her out? 

2) Multiple Choice

Has CS1101S been able to arouse your interest in programming?







  1. I have prior
  2. well, i had interest programming b4 hand but while doing java and c++, i used to design the code in mind very often but with scheme i find it difficult to write the code, maybe because my first approach to any question is similar to the way i used to do it in java or c++.
  3. Partially. I think my main interest in Scheme is the theoretical aspects of it; the functional programming paradigm etc.
  4. Until now I used to use the same techniques in programming which was taught to me, but CS1101S forces me to think and it has made recursion seem so intuitive!




Look good. :-) 

3) Multiple Choice

If you were given a choice again to choose either CS1101S or CS1101XYZ, would you still have chosen to take CS1101S?









I think we're doing better this year. At the same point last year, 25% of the class would have preferred to switch out -- and this year we actually have significantly more students (about twice as many). I would attribute this to the strength of the cohort. 

4) Multiple Choice

Would you recommend CS1101S to other students?









This is actually one of those psychology questions. Conceptually, one would imagine that the results for this question would be the same as that for the previous (which was the case last year) -- but it's not! There are two students who are glad they chose CS1101S, but who would not recommend it to their friends. I'm actually quite curious to understand why. Just for kicks. :-P

5) Essay

Please give us your comments and suggestions on how to make your learning in CS1101S more efficient and interesting.

1. More real-life applications if possible.

2. Practice makes perfect. Concepts are clear enough, and I think different people have different learning style. I expect some to be more abstract and connected, but others may not.

3. First of all, the reason why i'll prefer CS1101XYZ now rather than CS1101S is that i have been trying my level best and i really studied too hard for the mid terms but then my score wasn't at all good. So, i am really depressed with that and i think that although scheme is good but had i taken CS1101XYZ, i would have ended up with a good grade because i have learnt that language before. So the only suggestion is that if the professor tries giving personal time to students and sort out their problems, that could increase students' interest in that.

4. Less fast another class of 1101Ss...for slower learners

5. more class involvement.

6. the pace is too fast.. i need some time to really understand the matter not to mention practicing it

7. Maybe randomly pairing a small group of people based on their affinity to scheme (let the tutors be the judge to that) and assign a time for this group to just meet up and discuss. It might help those lagging behind and yet having difficulties to clear their doubts in classes or forum.

8. Use scheme to make some fun games and show to others.

9. i need more than 24 hrs a day...

10. just do it.

11. More cool stuffs...

12. RGD Q34, it would really depend on the calibre of the students.. I understand there are many who really struggle on CS1101XYZ, and they would probably die horribly if they were to take CS1101S.... RGD Q35, PS03 with that (totally unrelated) background story was a cool touch. Could possibly do more of this.. maybe?

13. Well, overall i am happy with the course.....though some bell curve alternative should be present in this course as well.....some people like well with a comp and badly with pen and paper...and hence are screwed in the mid terms....

14. Please also introduce some real-life applications of Scheme to makes things more interesting!

15. It seems I have no good suggestions...

16. for my own opinion while i get concepts, i have difficulty converting them to code. should have more coding exercises.

17. It is good enough as it is! Not like we have too much time to spare or I would say increase more problem sets/problem set difficulty.

18. More exposure to exam type questions, the creative types prof ben comes up with.

19. Solve as many problems as possible.

20. Explore more problems of more varied nature and difficulty.

21. Problem sets quite interesting, but hard to do lehz. Come up with more creative questions for DGs or rec once in a while.

22. encourage students to share their newest and coolest codes. it can be written by themself or found in the book or the Internet.

23. We should have competition programming as a core component of the course. This will teach problem solving techniques and improve our thought process.

24. Explain difficult parts clearly and in a slow speed, especially the Generic Arithmetic.

25. read the textbook and do the excises afterward

26. There should be more practice involved and more stuff that helps us get better understanding of the module and what the objective of the module really is.

27. Difference between recitation and DG is too big.. recitation is a lot more easier than DG.. Make DG slightly more easier to understand to help us in PS?

Skip: 24 (45.3%)

Comment 7 has become a reality and we are taking up the suggestion. Thank you anonymous student. Will such a scheme be helpful? Actually at this point we still don't know, but we'd never know until we try. We're fortunate that the strong students in the class are also nice and helpful. :-)

Comment 3 is extremely interesting. We have a student who knows Java who thinks that it's not doing well in CS1101S. This shows that programming background doesn't necessarily mean that one will do well in CS1101S and may it serve as a warning to future students who are considering taking CS1101S or CS1101XYZ. People who only care about good grades please choose CS1101XYZ. Personally, I'm interested in students who want to learn and I'm not quite keen to take too many students also -- this year's batch is somewhat too big for my taste. :-) I think I will request to restrict class size to 50 next year to make it a more cozy teaching environment. And to respond to the request for personal attention: students can come to office hours. If not mine, to one of the Tutors or TAs to get personalized help.

re: comment 22, there's actually a lot of sharing of code in the IVLE Forum, please check it out!

Regarding fast pace of class, cannot slow down. Sorry. Please see earlier responses. Re: Generic arithmetic -- aiyah, it's really hard to explain. You guys have to do it yourself to understand - and you have in DG 5 and PS4 ... of course, the response in the survey was BEFORE you did your DG and PS lah so you wouldn't have known. :-)

On exam question, er, already got A LOT of past year papers and solutions on IVLE. Every year hence, there will be one more set per year. Situation will continue to improve over time (but not like it's really bad even now). If you are asking about going through exam questions in class. Frankly, not going to happen because I don't believe in that! My philosophy for exams is very simple: (i) I design carefully to test whether you understand what you are supposed to understand; (ii) where possible I try to teach you guys some new things (scary I know. :-P); and (iii) I prepared detailed solutions so that you guys can figure out where you went wrong. The Tutors are currently preparing a set of review question for the Practical Exam.

6) Essay

Tell us more about what you think about CS1101S. This is your chance to tell us anything you want that is not already covered by the previous questions.

1. Great class, great lecturer, wonderful tutors, nicely structured course on concepts of programming, awful language. My only real issue with CS1101S has and I believe always will be the language. But I guess that is not really relevant, so I wish to thank everyone for a great job for this first half of the semester.

2. Scheme is cool...

3. I would have liked more of Scheme to be taught.

4. Make it 6MC

5. Great! Some students who are studying Java told me that the Java is difficult. So, I think the Scheme language is suitable for those who are not good at programming. However, I hope that we can learn how to turn our Scheme code into a program that anyone can use it. For example, The Game of Nim can only be run in Scheme, my friend want to play it but they don't have DrScheme, so I can't let them see how cool Scheme is. -_-!!!

6. I understood that this course is about programming concepts. However I wonder how many programming concepts there are, and what's exactly "programming concepts". Scheme is extremely powerful at abstraction. Is abstraction the most important concept? And what's more? Abstraction barrier, generic operators, object-oriented programming, and so on,... I think they are all programming concepts. But what are their relations in a systematic way? What do they look like in modern programming language? In this course, does we have an overall view about programming? Hope you will still have strong focus on the point that "we used Scheme to learn concepts, not a language"! :) By the way, this course is not easy, it gives me a lot of questions about programming! And I think it's not over after completing this course.

7. It seems I have no again...

8. Try not to give students the illusion that Scheme is actually easy to understand? lols..

9. I think scheme is a very powerful tool for programming and CS1101s really makes one focus on the concepts rather than knowing how to solve simple problems. It makes you learn a lot about how complexity can be managed in a simple and efficient way so that it can be of practical use.

10. I think it's cool and insightful! learned a lot of new concept about programming. :) and discussions are most interesting!

11. it mainly on application and algorithm. its fun and challenging to solve the problems, but sometimes may make u desperate too. always stressed when doing ps though deadline is far away... in overall, this is a really fun course only if student knows whats going on.

12. PS04 recommends we start on it after the relevant DG, but then that would leave us only 3-4 days to do the PS if we were to heed the recommendations?

13. After the midterms, I'm looking forward to Java so as to have a breath of fresh air.

14. if someone want to take this module, he need to work really hard.

15. The pace might be fast but if a person is able to handle it I think they would definitely benefit from it and enjoy it more than CS1101XYZ

16. i'm so lucky that eventually I choose to take such a good module.

17. Problem sets should not get extensions. This only promotes procrastination. An extension should only be given after the original deadline has been breached. This will ensure that all students try their best in the time given and not let it drag till they have to resort to copying code.

18. There should be seminar and discussion on contest (after the contest has been ended). It 's the chance for students to share the ideas.

19. it's very maths, i dunno about java, but sometimes the amount of maths drives me insane...

20. well...most parts covered......mid terms should not be a hundred mark paper...too many marks for small number of questions...i get one question wrong and down by 8 marks

21. Really enlightening. I'm trying to find the common pattern of different algorithms to the same problem, and expect it to be a very hard task and require experience and sort of mathematical expertise. But I would like to see some inspiring remarks. Now the key concept that inspired me is the relationship between procedures and data. It helps me crystalize my thinking and proceed to a new level.

22. nothing

23. I think it would be very interesting if it emphasized more on fundamentals for first time programmers

24. Interesting yet not easy to handle. Cool yet agonizing. Intuitive yet not so intuitive. Rewarding IF AND ONLY IF can manage to solve problems.

25. It is a wonderful module. I like its simple syntax, so I can focus more on methodology.

Skip: 28 (52.8%)

Re: first comment on "awful language", HARLO??? Anon student please make an appointment to come and see me so that I can straighten out his/her thinking. Scheme is like poetry okay!! What do you mean awful language!?!??? :-)

In response to Comment 6, you should ask your friend to program his/her own Game of Nim in Java. If you can program Nim in Scheme, why he cannot? :-P

Quick response to some question about: please keep in mind that CS1101S is your 101 programming course. Even if you finish CS1101S, you are nowhere near programming guru and you still have a lot more to learn. People ask for practical applications. Given that you guys really don't know all that much, how practical can we get. The best we can do is to give you some toy examples to play with.

I'm currently in the process of proposing a Facebook programming course for next Semester. People who want to do more "practical" programming can take that course loh. One step at a time lah, but patience padawan ... while the Force may be strong with you, your training is not yet complete. :-)

7) Essay

Do you have any concerns about CS1101S? If so, what are they and how can we help?

1. No

2. No concerns, no regret!!

3. well, I came up with a lot of doubts while reading the lecture notes which are still not cleared.

4. Mid-term test is a killer as compared to previous years (previous years mid-terms are no kid! ). This mid-term test questions are very difficult to understand and too little time.

5. Prof Ben, I am not so sure whether I should mention this...During today's exam, you were talking to us after answering some specific questions given by some of our classmates. Maybe I am a person who is easily distracted, I find my thoughts are "interrupted" when you speak to us, because I wanted to listen to you but at the same time I wanted to finish my exam cannot focus well. I think I should learn to be more focused...but maybe next time you may address the questions by talking to the student who ask it personally in low voice if that question do not concern all of us...Sorry, I really do not mean anything bad, I really like your lecture:)

6. Sometimes, I can't 'see' the solution. You guys probably can't help in this aspect; as you mentioned, taking Scheme requires a bit of mathematical maturity, something which I think I'm lacking. Also, with the recent midterms, I suppose many (including me) are feeling depressed. Perhaps the 'steepness' of learning can be reduced so that people can catch up.

7. for my own opinion while I get concepts, I have difficulty converting them to code. should have more coding exercises.

8. JCC! Not the Jungle course in NS. The Java Conversion Course. Hopefully things will work out. Heh.

9. Somehow I don't feel like I'm programming, or worse, that I know how to program. It could be because of the minimalist syntax. It could be we are always doing small snippets of code, small programs. I think it could be nice to build up to programming on a larger scale. While it is true that the lecture and everything else are building up towards that, I'm still not very convinced I can produce a real program myself. Even worse, I somehow can't tell if I'm programming by rote or by thinking. So perhaps it would be good if we could get exposure to building up a program of manageable but respectable size, go through the thinking of tackling different aspects of a program and putting it all together.

10. As mentioned above, copying of code, or more specifically having to deal with such absurd requests.

11. The workload is, by various accounts, definitely heavier than CS1101XYZ.. Especially if one were to diligently prepare for DGs.. It probably should be a 6 MC module at the very least..

12. yes, sometimes do not know how to answer the questions which means I can not understand the questions

13. time time... help? hmm... make it 6 MCs! :thumbsup:

14. None so far. I'll definitely go for consultations if I find some.

15. a. Sometimes stuck by what the interpreter does. But seems we will learn it later. b. the way of making order log n procedures by the manipulation of parameters. 1 prm is ok, but how the algorithm comes by adding 2 or more prm s? Some seems to be tricks of matrix or other mathematical structures. c. Procedures that cannot be translated from recursion to iteration (in the same algorithm). The base case seems to be an infinite set..

16. if it becomes easier, more students will be able to do well in these module, so that more and more students will learn and love "scheme".

17. nothing

18. Not enough time to practise.. give us more than 24hrs a day? lols..

19. I need more time

20. We should have more classmates so that there would be CS1101SX and CS1101SY...

21. Em...... I'm still thinking. I'll tell you in the Final Survey of this semester. :)

22. well, i really need to have a good grasp in maths to do scheme, i hope my level of maths is good enough...

23. no concerns ..........yet.............should we be concerned about something...?

24. No, I don't, I think...

25. Lack of Java knowledge.

Skip: 26 (49.1%)

In response to comment 3 ("I came up with a lot of doubts while reading the lecture notes which are still not cleared"), please come to office hours.

My apologies to student from Comment 5. Will try to speak more softly when asking queries during an exam in future. :-)

Re: comment 8. This JCC thing is actually something that I have thought about. Perhaps have a short intro/bridging course for 2/3 weeks prior to the start of the semester for students w.o. programming background. Scheduling is an issue. Might work for the NS cohort. We'd see how.

On the comments about building a big system or Java knowledge, all I can say is patience.... and remember that CS1101S is really only a 101-intro course!

On the copying of code in comment 10, all I can say is that it's wrong period. It is wrong to copy code and it is wrong to let people copy your code. Just tell the fella who wants to copy your code to go fly a kite. You can tell him/her it comes from me. :-)

Finally, I don't know how to give you guys more than 24 hours a day. So sorry. If I figure that out, I will definitely give it to you. :-P


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