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, 2006/2007) 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 Razvan and the TAs 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, the feedback has generally been good). 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. :-)

Total Number of Respondents : 32 (Every (!) student responded!! Thanks!!)

Understanding Your Background
Question Total Responses
Multiple Choice
Did you have any prior programming experience?
A : Yes 16  (50%)
B : No 14  (44%)
Skip: 2  (6%)
It is interesting to note that about 50% of the class comes with programming background, while the other 50% do not.
If your answer to the above question is "Yes", what programming languages do you know?
1. Qbasic, Visual Basic
2. C
3. C++
4. C Pascal
5. Java and SQL Server and HTML
6. Some self-taught C++ A little bit of Perl and Java
7. Pascal,C,C++
8. basic c++ java
9. none
10. c
11. Pascal, C, C++
12. C#, VC, VB
13. a little c
14. C++
15. c++
16. C++ C Java Visual Basic C# scripting lang: Perl Javascript XML
Skip: 15  (47%)

Multiple Choice
Did you know Scheme before taking CS1101S?
A : Yes 0  (0%)
B : No 30  (94%)
C : Others
0  (0%)
Skip: 2  (6%)
Scheme is really obscure it seems and NOBODY has ever heard about it. :-) Perhaps that's what makes it interesting?
Why did you decide to choose to take CS1101S instead of CS1101XYZ?
1. Trying to challenge myself.
2. I thought it would be more challenging since I had programming knowledge.
3. Because I am a part of SPC which requires me to take Scheme (CS1101s and CS1102s)
4. For some new atmosphere
5. CS1101S is a prerequisite for SPC - special program in computing
6. Special Program
7. Since scheme was more challenging and a prerequisite for SPC.
8. Educational Language, so decided tat its bound to be better than Java for learning
9. Curiosity, and a general interest for Computer Science
10. Because i join SPC programme.
11. Because I never hear about Scheme before and I want to learn about it.
12. Because they said it was easier and its a course to help understand the basic concepts of programming better
13. Because I haven't heard about Scheme before.
14. had to because of spc then the urge for knowing something more than my peers
15. 1.I want to join the Special Programme in Computing 2.I like challenging courses 3.Small class means more interaction with lecturers, tutors and classmates, which is something I like
16. they are bored
17. Since I can pick up JAVA myself, why don't I use this time to learn something new:-)
18. because of SPC
19. some seniors' advice
20. challenging
21. I believed I mentioned during our 1st tutorial. My parents are paying so much for my education anyway, thought I might as well learn as much as i could. Yep.
22. Wanted a difference learning experience from the rest of the majority.
23. because 1101s was said to be more educational, and scheme sounded more special than java.
24. Mistook "easy" language for "easy" course. Many friends recommended it to me, saying it is "easy".
25. Special Programme ask me take this module
26. Because it was said that with High school maths, scheme should be "easy"...
27. I luckily join the SPC, and it required me to take this module
28. more fun more to do with math (not just a language) interesting gives good solid background
Skip: 4  (13%)

I'm happy that most decided to take CS1101S for the "challenge". Hopefully, we have made the course challenging enough to meet the expectations of those who wanted some challenge. I feel a little bad about students 24 and 26 'cos they perhaps had some misunderstanding and are probably having the shock of their lives. Not to worry. The lecturers are not mean and nasty. We will try our best to teach as well as we can so that even the weakest of the students will pass the course (if they put in effort).


Question Total Responses
Multiple Choice
How do you find the lectures?
A : I have no clue what the lecturer is talking about most of the time 0  (0%)
B : I have no idea what's happening half the time 3  (9%)
C : Lectures are no different from the other classes on campus 2  (6%)
D : Lectures are clear and I am able to follow the material quite well 9  (28%)
E : Lectures are way cool. Easily the best class that I've taken at NUS (not like I've taken a lot, but...) 6  (19%)
F : Others
7  (22%)
Skip: 5  (16%)
Okay, seems like we are going well. :-) Only about 10% of the class has indicate they are a little lost and most are generally happy. Students who are lost are invited to figure out what they are lost about and see the teaching staff during consultation hours. If the schedule consultation hours do not work for your schedules, please send email to fix an appointment.

Do not however go to consultation expecting the lecturer or TA to repeat a lecture. Repeat telecasts of lectures are available on IVLE webcast. Go to consultation hours with questions. You will learn more that way.

Feedback for Lecturer Ben Leong.
1. Good. Ready to help when student takes the initiatives. A little hard to receive the messages he tries to deliver in lectures though. More effort is needed by the student to be on the same page of discussion and to be able to understand.
2. Good
3. Speaks TOO fast (Students whose english is not native language cannot hear clearly.
4. Explains well but must speak a little slower as his accent is not that clear
5. inspiring
6. A friendly lecturer helping and inspiring us even. Always smiling which makes the student to increase their interest in the lecture in a way. Lectues and recitions are clear and well layed out.
7. Good ALSO! lolz, lifely and not boring, but talk slower lar, sometimes damn fast, there was once i counted for fun, 10 slides in less than 5 minutes... @@, plz plz slow down
8. Apart from his super fast singapore-accented speech and his insistence that things "are not exactly rocket science", lectures are swell
9. Nice and I'm happy too. And it will be very nice if you upload the lecture notes earilier. However, really thank you.
10. Great as well, very attentive to students.
11. NA
12. you are good (i feel better) but you also go little fast.
13. Ben is more like a elder brother than a so-called "lecturer". Quite friendly and easy to approach. The teaching is quite efficient and clear.
14. clear and good
15. passionate
16. Sometimes too fast
17. very cute, and he lets me like scheme
18. Great!!
19. Ok lar. No problems. Can understand you.
20. Funny fella haha.
21. fast and can explain all the hard theories. but i don't understand some hard concepts. studying it alone it will require a disproportionate time of self study.
22. Get to see many cool stuff for his lectures.
23. Sometimes, it is a little fast. Ben talks fast sometimes =)
24. speak a little quickly
25. very good
Skip: 7  (22%)
Thanks for your kind remarks. Will try to speak a little slower, but at the end of the day, the key is to ask questions in lecture to slow me down --- or to display a *REALLY* confused look. I usually look around at the students' faces when I lecture and if I see someone who seems to be in deep distress, i will check on the student to see if I can clarify anything. We are lucky to have a somewhat small class for CS1101S. This would be impossible for a large class --- so please make use of this opportunity to ask questions.
Please let us have your suggestions on how the teaching for CS1101S can be improved.
1. Concrete Abstractions and SICP can be quite technical to people like me. Maybe some breaking down would be useful. Consistency and synchronizations between the respective lecturers and TAs, so that each knows what is going on and won't sabotage the other by starting on materials when the other isn't ready or informed. It would be good if we can read more good code recommended that are exemplary. Problem sets can be a little, not difficult, but it seems like there is so many ways to interpret it differently on some occasions. Also the typos and code problems in DrScheme when issuing PS can be a little improve and prevented.
2. More one-to-one interactive sessions with students. Individual counseling to needy students.
3. I suggest we do the examples ourselves. In class, we only discuss the difficulties that we have met.
4. A few more games like the game of nim should be there to create more interest in the class. A bit more of graphics should be there. Well nothing else as other things are perfectly alright.
5. Erm, more examples of usages of the concepts: like Drawing of curves, movie database... bla bla bla, but plz plz plz, i find it lotsa times that i ended up not knowing anything during classes... And having to spend like hours in my poor little hostel room cracking the codes and interpreting the complicated mathematics and bla bla bla... Rocket Science to me is not rocket science to many, so i'm spending very very much time on this... Most of my time in fact
6. Dunno o_o just dun scrap this course. Ever.
7. No really important suggest, just hope that we will have more self-exercise, i mean that no tutor class or no marks for these exercises, we ourself decide to do it just for practice.
8. I believe that extra classes should be held once every week for students who are slower than the rest.
9. NA
10. go a bit slower than the speed you have maintain and make the sessions more interactive as the recitation on 6th of oct.
11. Actually I'm quite satisfied with the teaching for this course. Haha...:-)
12. maybe the problem set can be harder but not that long! It take hours to read through and get familiar with the environment
13. Sometimes I got stuck because of the Scheme language itself and I found a book very helpful, which is available on
14. introduce more new conception and idea nowadays
15. just like this.
16. In my opinion, you all are teaching well But its hard to look at codes throughout lectures (once u miss some code, you have difficulties understanding the subsequent codes) , especially those on the message passing and stuff.. Maybe we can have some pics like boxes and lines to represent them, to help us "visualise" the links between the procedures. Since objects in scheme are basically procedures, there's no distinction between the two. At least from what i see....
17. No problems with it so far.
18. no comments.
19. tutorial based sessions. more practicals solving hard programming exercises.
20. Quite well the way it is.
21. Teaching can be improved by going a little slow when teaching very new things. And also, show us many examples and illustrations.
22. I think, for me without background, it of- course a little difficult . But one think I guess the assignments should be suitable for every students not for some most qualified students
23. keep it this way!!
Skip: 9  (28%)
Comment 1 says that the lecturers and TAs don't seem coordinated. Can someone send us more details separately on the actual incidents? I thought we were doing quite okay.

Some students seem to think that we should slow down. That's actually not possible 'cos we do have material that we need to cover for the class. Holding an additional class "once every week for students who are slower than the rest" is also not practical because of scheduling problems -- remember how much trouble I had scheduling the recitations? Razvan, the TAs and I, have met with quite a lot of students individually during consultation hours and so I believe that adequate individual attention has been made available. There are quite a few weeks where I don't get any "business" during my consultation hours on Friday. 

For people who want "self-exercises", LOTS of exercises are available in SICP and Concrete Abstractions. Some students have actually been doing them 'cos they come and ask me about them! ;-P

Personally, I will try to make my recitations more interactive in the future. Seems to work better than lecture-style in a smaller setting.

Thanks for highlighting the free Scheme language reference at!

Some students have suggested that we have review sessions. If we hold such sessions, what are the topics that should be reviewed?
1. Continuous passing Higher order procedures List processing Examine good Scheme code worth reading Learn to improve code
2. - Recursion to Iteration - Higher Order Procedures - Lists - Trees - Discussion Group & Recitation material
3. Certain difficult topics - can ask students
4. algorithms
5. general coding in scheme ..producing codes with out syntax bugs ..getting familiar with the different identifiers ..
6. Recursion---> Iteration, Order of growth and Lists
7. Erm, Orders of Growth, Invariance, Fast-Fib (the one using matrix), Towers of Hanoi, Curves, Message-Passing-Objects, Movie Database, Tagging.
8. Anything involving fresh examples and ideas! And maybe continuation passing...
9. the topic about list
10. The code in the lecture notes.
11. Higher order procedure Movies database Generic operations
12. All the extreme basics of the topics taught in class, and maybe we can do some similar to exam questions in class for practice, mainly questions that will test whether we understand what is taught in class catered to students who take a longer time to grasp and get used to the concepts.
13. It should be about some other exercises.
14. lists higher order procedures tree recursion the generic number operations
15. Instead of talking about a specific topic, I'd rather to have a review session which includes all those things that can be easily misunderstood or mistaken. :-)
16. order of growth
17. Scheme syntax
18. something we will do it wrong because of carelessness
19. time and space
20. No comments
21. List procedures...?
22. every topic.
23. Not sure.
24. passing message
25. chap 3,5, and 6
26. some new applications and algorithm
Skip: 4  (13%)
Review means we revise topics covered earlier in class, so NO new topics will be covered (suggestions 8 and 26 are out). Suggestions 15 and 18 are too vague and suggestion 22 is impossible. :-)

Tentatively, we will have a review session on Thursday (26 Oct 2006) from 6 to 8 pm. I will confirm this once I find a suitable venue. Tentatively, we will be reviewing the following topics:

  • More examples on converting recursive processes to iterative processes
  • Higher Order Procedures
  • Order of Growth
  • List Processing

Continuation Passing is not officially in the syllabus and it will not be tested in the exams. Message passing will not be covered because you will see a lot more of message passing when we cover Object Oriented Programming.

My current intention is to give out some questions on the above topics prior to the session for students to try together with a list of exercises from the textbooks. At the review session, I will reiterate the key principles and concepts for the above topics and solve the questions. Then if students have more questions, I will try to answer them. if not, then the review will be over. :-)


Discussion Groups
Question Total Responses
Multiple Choice
Do you find the CS1101S discussion session useful in your learning?
A : Yes 17  (53%)
B : No 3  (9%)
C : Others
5  (16%)
Skip: 7  (22%)
I'm glad that the majority of the students find discussion groups to be useful.
Multiple Choice
Do you find any differences between the CS1101S discussion session and tutorial sessions in other courses?
A : Yes 16  (50%)
B : No 8  (25%)
Skip: 8  (25%)

If you find the CS1101S discussion sessions different from the tutorial sessions in other courses, what are the differences?
1. Well, it is different with all other modules because all modules are different. But I like the fact that participation emphasized even though I don't participate much.
2. CS1101S is more interactive .. students participate equally
3. no
4. In other tutorials the TA'S are not as understanding. The students do not chance to show their own answer rather the TA'S just come and write the answers on the board instead the student doing it and the TA correcting the mistakes as in our module.
5. Got hands-on, coz got computer around
6. Tougher :) also more on-the-spot working
7. This would be not because of the way the sessions are conducted but because I am slower in grasping things than the rest of my class. In other tutorial sessions I am not lost, but in CS1101S I am lost.
8. I have to work more than the other courses.
9. no differences
10. Instead of listening to the tutor talking alone, we have more interaction with tutors and classmates. We have the intention to talk instead of purely listen, which is good for learning.
11. i learn more in cs1101s discussion sessions
12. We can propose our questions more freely in CS1101S discussion sessions.
13. during discussion, listen more during tutorial, discuss more
14. more interesting
15. More interactive... since the class is smaller
16. other tutorials are shorter, so the teacher only covers partial questions, so the 1101s tutorial covers more.
17. far far more interactive
Skip: 15  (47%)
Seems like we are doing well. :-) Sorry, we probably have no time in general for students to be proposing questions. On weeks where the discussion groups end early, then students are welcome to propose questions for the remaining time.
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?
A : Way too little, we need to spend more time in class. 1  (3%)
B : More class time would be helpful 4  (13%)
C : Just right 18  (56%)
D : We don't need so much time in class. We can afford to cut one hour. 2  (6%)
E : This is way too much time to spend on something as simple as Scheme. We can afford to cut at least 2 hours 0  (0%)
Skip: 7  (22%)
I'm glad that most students think the total class time is about right. It's probably quite hard to schedule even more classes. Cutting down on classes is however probably do'able. :-)
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?
A : Lecture 0  (0%)
B : Recitation 6  (19%)
C : Discussion Group 6  (19%)
Skip: 20  (63%)
Interesting that people all like the lectures. :-)
Please give us your suggestions on how we might be able to improve the discussion sessions.
1. Probably have a venue change as the people seated at the back is at a disadvantage. And it can't be helped as they have lectures before and thus turn up late when all the good seats have been taken.
2. More interactive, loads of help to be provided to needy students as students may be shy and don't speak about their problems.
3. Everyone prepares one difficult problem that he met instead of the problems by the lecturers. We should make us responsible for our own studies.
4. Discussion sessions are pretty much ok but still for one particular procedure different types of codes should be provided by the TA. The answers of the discussion groups should also be provided online on ivle.
5. Sit in a tutorial room rather than the lab, the seating is very hard for the student at the furthest end to follow the class
6. They're ok.. a mic for the TA could help :)
7. I think we should practice more in discussion hour, i mean use computer to practice code better than solve it on table.
8. Maybe you can have discussion groups tailored specially for students who take a longer time to grasp concepts.
9. NA
10. get the ideas clear and do not expect the students to know and do everything.
11. Maybe tutors can teach us more about the step-by-step way to solve problems instead of telling us why the answer is right or wrong, just like what Ben did in Recitation 5.
12. can not be better
13. Can give us some projects to do, and present in the discussion sessions
14. problem set is important
15. Venue?? The board (looks small) is too far for some. And the sitting arrangement... More area to unleash our creativity.. haha..
16. It's good.
17. Cut down the number of question so that we wont have to rush in discussion group session. And I find that the things covered in discussion groups are quite hard and requires lots of thinking.
18. more questions and also solutions. people who have programming background tend to be able to solve the problems and the teacher might get the impression that the whole class understands. however some are slower.
19. Lengthen/change amount of tutorial questions.
20. Maybe, groups by the level of students would be helpful for both the slow and fast student. Like this, slow students wont be lost during discussion sessions and fast ones do not have to wait for the others..
21. the lecturers should hold this discussion, one thing is the communication (very hard to understand the other with a not so good English), and the knowledge of lecturers
22. cooler activities more interesting activities actually, it's already pretty cool and interesting ... so it's okay
Skip: 10  (31%)
Yeah, the venue is a problem, but unfortunately, we're kind of stuck with what we have this semester. Will try to get a better venue in future classes. Personally, I do not like the current arrangement too much either. :-(

I think the suggestion to have smaller groups and groups catering to the slower students is really good. At MIT, the tutorial groups each have only 3 or 4 students. Unfortunately, we do not have enough TAs. :-( That is the reason why I have to stand in as a TA. There's going to be some feedback for the Department at the end of the semester, please be my guest and scream for more TAs. :-P Wouldn't help you by then, but will most certainly benefit future batches of students.

I really like the suggestion that "students should be made responsible for their own studies". Since I take one of the discussion groups, I can say from firsthand experience that one of the problems the TAs are having is that students do not come prepared. This means that we have one of two choices: (i) move at the pace of the slowest student(s); or (ii) just do the bare minimum and let the unprepared students become "lost". It's obvious which option is the one we end up with.

Homework : Problem Sets
Question Total Responses
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?
A : At most 10 hours 9  (28%)
B : Between 11 and 13 hours 5  (16%)
C : Between 14 and 15 hours 3  (9%)
D : Between 16 and 18 hours 5  (16%)
E : At least 19 hours 4  (13%)
Skip: 6  (19%)
One problem set is due approximately every two weeks. Since there are 5 hours of official class time, these results show that slightly more than half the class spends less than 12.5 hours on CS1101S while about 25% spend perhaps 3 or 4 hours more. Seems like we aren't doing too badly.

My sense is that the main problem is that students tend to procrastinate and start the problem sets 2 or 3 days before it is due. Then they panic and life is hell. Like that also our fault huh?? :-)

Multiple Choice
There are six problem set submissions for CS1101S this term. What are your views on the workload?
A : Way too little work. More please .... 0  (0%)
B : Workload is somewhat light 2  (6%)
C : This is just nice 9  (28%)
D : Workload is somewhat heavy 7  (22%)
E : CS1101S problem sets are killing me.... 8  (25%)
Skip: 6  (19%)
I think this is all relative. Perhaps the other NUS courses are too easy? The CS1101S PS load is probably only 60 to 70% that of the workload for the MIT version 6.001. The workload this semester has already been reduced from that of the previous year (from 8 Problem Sets to 6 Problem Sets).

Students should be aware that the lecturers are not sadist people. Also, the more homework that gets assigned, the more marking there will be (read: more work). Therefore, if the lecturers are lazy and idle, they would have gotten rid of the Problem Sets altogether. 

Multiple Choice
The problem sets are important for learning the material in the class
A : Agree 26  (81%)
B : Disagree 0  (0%)
C : Others
0  (0%)
Skip: 6  (19%)
Fortunately, people all agree that the problem sets are important. :-)
Please let us have your feedback on your problem sets thus far.
1. Difficult but should be continued
2. Quite tough
3. it takes a lot of time to figure out whats happening but once u crack the ps it feels like attaining enlightenment
4. I think PS1,PS4 is easy, while PS2 is a bit more difficult.
5. The problem sets are getting difficult as we move ahead. Three to four days before the submission the whole night goes figuring out the answers for the problem set. The level should be a bit low.
6. Hard, sometimes too hard for a beginner like me, but no choice, all others finding it "TRIVIAL", i'm da black sheep of the flock
7. They're difficult but fun :) I'd really like to have less work but I suppose then we wouldn't be able to know our material that well...
8. I did not really as i expected :((.
9. They are quite hard to understand, but once you understand them they become "do"able.
10. NA
11. the problem sets have been nice but far away from the lectures. some relevancy should be there
12. Although some of the problems are indeed killing me, I do feel that I learnt a lot when I did the problem sets.
13. each problem set is not difficult, but every of them is too long.
14. The problem sets are very good way for me to learn the material in that by solving the problems, I know what I've learned and what I need to know.
15. just right
16. I still do not know why I should paste the demonstration code. I think I have make sure the procedure can work, and I have demonstrate before I paste it.
17. help me understand better
18. discussion questions are hard to decipher and this add to our confusion. However, the stories are nice add-ons.
19. Ok... Interesting...
20. Gives more hint on what we are suppose to be concentrating on in the questions because normally I just read again and again for the bits relevant to the questions and still won't understand the question or where we are suppose to start from.
21. . already very good as there are no malfunctions like in Java, with the Coursemarker system. Fantastic that they are hand-marked! and with room for discussion on what went wrong, we can really learn! good!
22. Starting to derive SM pleasure from doing the problem sets.
23. First two ps were little difficult, but ps4 was the worst...
24. too many words, very hard to follow it .
25. mostly fun especially one on rsa other two were decent
Skip: 7  (22%)
First, a quick word on the relevance of the Problem Sets to the lectures. I hope that students will realize that the problem sets are chosen very carefully. They are not random, but are in fact chosen to help reinforce the ideas that we covered in lectures.

The code is required so that we know that you actually did work. Also the fastest way to check that you did the right thing is to run your code. You must understand that there are often multiple solutions to each question.

Please give us your suggestions on how we can improve the problem sets.
1. Improve on typos and reduce confusion.
2. Too many programs given in one problem set - needs to be corrected .
3. relate them a little more to the lectures
4. Perhaps we should offer some independent problems. Because the whole problem set mainly focuses on how we use other's codes. We want to create things of our own. And I think less background information should be provided because searching the useful information on the Internet is also an important ability.
5. The problem sets should rather be fun based instead of things like encryption and general mathematics. They should be based on things like graphics or games etc..
6. Lengthy, a bit too wordy
7. I think some of the questions are a bit ambiguous about what sort of solution they'd want. It'd help if every question ended with an explicit statement of the exact type of answer we are expected to give. More fractals! And why dun we get to write Mastermind games? ^^
8. -
9. NA
10. make it more synchronized with the lectures
11. I don't mind if the problems continue to be hard, but no harder than PS4 please!
12. shorten the problem set. and make it trickier and more interesting
13. Generally speaking the problems are all very good, but sometimes the story is a bit long...
14. donot too hard
15. Down to earth english
16. I feel if the problem set requires a large amount of reading up (eg PS4), it would be good if some time (15mins?) could be spent during lecture with a brief explanation.
17. as mentioned above.
18. they are very explanatory. however i am more used to having the notes separate from the questions. too long to do. i have to spend a lot of time on problem sets and ignore my other modules.
19. Nice as it is.
20. can you give more examples
21. more cool and fun and challenging exercises
Skip: 11  (34%)

I apologise for the typos and occasional mistakes. We're only human. I've been fixing typos as we go along. If we recycle the problem sets for future batches, things should be better. We will also review the descriptions of some of the problems to make them more clear.

As for the story, I hope that people will appreciate that it takes effort to come up with a story -- and I'm quite quite irritated by the fact that people seem to be lazy and don't want to read and expect us to talk about the problems during class. Can people learn to learn for themselves?

Since CS1101S is an introductory class, it is not practical for us to ask students to write too much of their own code, so we resort to giving out a lot of support code. Already given the somewhat few lines of code that students have to write, students are already complaining that it's killing them. Writing full programs will likely kill some people twice over.

It is precisely to satisfy hardcore Scheme-addicts that we have the Programming Contests. :-P

Please let us have your comments about the Programming Contests.
1. Code should be open out for further discussion and learning.
2. i am scared to look at them ..
3. Maybe we could compose some problems of our own and select some from them as the programming contests problems.
4. Well the first problem set was a bit hectic to attempt the contest 1. So i will surely attempt the second one but.
5. Haven try, no time, other modules are hard also
6. Didn't have time to work on it :( why don't you give us until sometime end of term to submit?
7. Fun!
8. NA
9. those are the best part.. really enjoyable!!!
10. It is a good way to encourage those who have extra time to learn more and explore more.
11. have not done any. have not interest in the part which does not affect my cap
12. I haven't attended any Contest yet
13. award should be more precious
14. good, though i failed in the first one
15. no comments din take part in the first one.
16. good to practice. definitely helps train up.
17. Did not participate.
18. should not have it because some ones can not join the Contests and think they lost something (the feeling like :not as good as the others)
19. good idea to have them
Skip: 13  (41%)
There is no point discussing the code 'cos it's the process and not the result. :-) Also, people should try coming up with contest problems! I want to be able to recycle my problems for future semesters.

As for suggestion 13, it turns out that your poor lecturers are not particularly rich and so what we can give is what we can afford. If I strike it rich, I will give out bigger prizes for programming contests in future semesters. ;-P

In response to 14, there are no failures in the Contests. Everyone who takes part is a winner in my opinion. :-P Those who don't are not losers. They are just busy. :-)

Question Total Responses
Multiple Choice
Comment on the difficulty of mid-term.
A : Way to easy 1  (3%)
B : Somewhat easy 3  (9%)
C : Just right 13  (41%)
D : Somewhat hard 7  (22%)
E : Way over your head 2  (6%)
Skip: 6  (19%)
Seems like the bell-curve we were looking for. :-) For the record, the average score was 66, the median was 72 and the highest score was 98. The scores were distributed on rather nice bell-curve centered at 72. 
Multiple Choice
Comment on the time allocated for the midterm.
A : Way too little. Too long, too little time. 1  (3%)
B : Time is somewhat short 11  (34%)
C : Time allocated is just nice 13  (41%)
D : Too much time, too little to do 1  (3%)
E : I can nap for an hour during the midterm and still finish every question 0  (0%)
Skip: 6  (19%)
We actually already couldn't fully test all the topics we covered during the first half of the semester. In any case, the fact that one student got 98/100 and made only minor cosmetic errors means that the test is humanly-do'able in the allocated time. :-)
Multiple Choice
Did you feel that the midterm is fair?
A : Yes 21  (66%)
B : No 3  (9%)
C : Others
2  (6%)
Skip: 6  (19%)
Seems like most think we had a fair mid-term.
Any other comments/suggestions for the mid-term?
1. I guess I didn't perform very well.
2. better marks distribution
3. may be it needs to be that way so u can separate the best from the rest and also the ones who are week ( like me ) can realise their weakness
4. Maybe we should cancel Problem 1.Because it is not useful. Instead we should add some multiple choice problems like the final exam.
5. Should be a little easy so that the students build some confidence . Some of them are losing out hope after doing badly in the ps and mid-term.
6. I took a long time to finish a question becoz i was thinking of a different line as the question.................. Erm, can make more explicit the questions??
7. Maybe give out optional practice questions which are similar to mid-term exam questions?
8. NA
9. could have been a little lighter as was the first exam in nus. but the exam was good enough
10. No.
11. the 4th question should be optional and give bonus points.
12. it is better, if 10 more minutes in exam
13. i think it is ok, but i found because of my carelessness, i lost lots of marks. sad
14. No
15. It actually seems much easier than the problem sets we've done. The only limiting factor was the time to think through and check our answers.
16. no comments
17. increase time to think.. maybe put it in coursework format
18. Can you mark basing on each student , not use the same pattern in marking and give more marks for those who have right algorithm, not some small mistakes (like the brackets)... because writing on paper is very different .
19. i made one careless mistake in the middle and wasted 15 minutes ... subsequently i couldn't complete the last problem
Skip: 13  (41%)
I don't understand suggestion 7. The midterms for 2004 and 2005 were made available in IVLE (together with solutions).

We cannot set exams such that everyone will score 100%. No matter what reasonable thing we do, some students will do badly --- that's just a matter of statistics. I think the spirit of the mid-term should be one of figuring out what was not well-understood.

In any case, the mid-term is only worth 15% and students who did not perform quite so well need not get too upset. There are many opportunities to make up for careless mistakes in the practical exam (on 10 Nov 2006) and at the Final Exam.

Question Total Responses
Multiple Choice
What is your overall impression of CS1101S thus far?
A : This is a horrible class. Truly regret choosing it. 0  (0%)
B : Should have taken CS1101XYZ instead. :-( 6  (19%)
C : Just like any other 1  (3%)
D : CS1101S is cool 14  (44%)
E : CS1101S rocks. Coolest class I have taken in my life. 5  (16%)
Skip: 6  (19%)
I guess it is natural that the students who are not doing quite so well are under the impression that life would have been better in CS1101XYZ. My advice to them: It's too late to change now and really, you don't know that will necessarily be doing better there. All you know is that there's probably less homework. :-) The thing to do now is to try to make the best out of your present circumstances and try to learn something useful in this class and don't worry so much about your grades. If you learn the concepts and how to apply them, your final grade will take care of itself. If you didn't actually learn the material, then your final grade will reflect this -- but so what? How many people will actually need to use Scheme in their future careers? :-P
Multiple Choice
Has CS1101S been able to arouse your interest in programming?
A : Yes 16  (50%)
B : No 3  (9%)
C : Others
7  (22%)
Skip: 6  (19%)
Good. :-) Turns out that many of those who responded "Others" say that they are already interested in programming to begin with, so this course can't turn them even more on. :-)
Multiple Choice
If you were given a choice again to choose either CS1101S or CS1101XYZ, would you still have chosen to take CS1101S?
A : Yes 18  (56%)
B : No 8  (25%)
Skip: 6  (19%)
I'm sorry to learn that about 25% of the class would have liked to have chosen the XYZ version instead. If you are a prospective student and you are reading, note this point. Read this survey carefully and understand what you are in (as best as you can) for BEFORE you sign up.
Please give us your comments and suggestions on how to make your learning in CS1101S more efficient and interesting.
1. More work on my part.
3. To make it more efficient and interesting, I think we should have more interesting examples.
4. By introducing fun topics like games and stuff. I heard we play with robots later on. So that must be interesting.
5. Smaller class has its benefits i guess, close bonding and closer interaction between lecturers and students
6. change cs1101s into 2 concurrent modules and let us scrap some other module xD Also it'd be nice if we could be introduced to a bit more Scheme (some library or api?) so that we can write more practical programs :)
7. I prefer something more challenging, but this is optional and no effect on CA, such as self practise problem i mentioned, and more story in programming, in fact as much as you can give us, but just to refer for interest. Maybe now i don't understand but tomorrow i might :)).
8. -
9. NA
10. the main thing is that the professors should go a bit slower than the current pace..
11. 1. Do more exercises other than purely reading. Application is more important. 2. If I have extra time, maybe I will think of some problems I which I may encounter in real life and try to write a program for it. It is good for practice, and it's fun!
12. you have done very good
13. Although this module is about programming methodology, I think some systematic introduction on Scheme syntax would be helpful in that we won't get stuck in the grammar and can really focus on the methodology itself.
14. teaching in a more cool way
15. See other qns
16. More brain-cracking and mind-bobbling codes to interesting problem to make us stare at the problem for the whole lecture haha.
17. the teachers can inform us on what chapters of the book to read up before class. like: "Please read chapter 2 of SICP before coming for next class. If you don't read, you going to not understand one bit". This is because class pace is very fast. People can absorb faster.
18. More cool stuffs.
19. So far, I found interesting the lessons on quilting language, game Nim and the movie database. I feel, this lessons are more useful, and make us understand better for what programing could be useful.
20. I really want to know some small applications of Scheme in real life. It will make the employment opportunity bright like Java....I wonder we will ignore it after graduation, and have to study Java again
21. more interesting and challenging exercises
Skip: 11  (34%)
I really like suggestion 1. :-)

It is not possible to slow down the pace of the class. At the other end of the spectrum we have people who are crying out for more (see suggestion 21). We are already covering only 60% of the material for the corresponding class at MIT.

I'm not a fan of having students read the text prior to the lectures. I think it's too much pain for the students. My goal is to have students NOT need to read the textbooks at all. When I took the class myself at MIT many many years ago, I never read the textbook. Only read the lecture notes and did the problem sets.

Multiple Choice
Would you recommend CS1101S to other students?
A : Yes 18  (56%)
B : No 8  (25%)
Skip: 6  (19%)
I guess the people who regret chooseing CS1101S over CS1101XYZ wouldn't recommend it to their friends. Natural. :-)
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. Somewhat challenging and I hope to gain benefits from it in my programming in the future. Although I must say, I have a lot to catch up. But it is unique and refreshing compare to what the other classes are having. The odds are, we will perform better than Java when the time comes.
3. i personally feel that this module can really remove all the rust in ur head and make u more smart ..but the problem is that when this module is done with 4 or 5 other modules it gets irritating ..and when there is an alternative like java ..its tough to recommend this module to any other person
4. I think the readability of some Scheme program is quite poor when we use complex functions. This is not a good style of programming.
5. Well it is a fun module to take but with too much workload. If you have 5 modules with cs1101s as one of them then you will end up studying all the time. But it even depends upon student to student.
6. Cool enough, yet very super-duper-irritatingly-time-consuming-yet-killing-and-suffocating-and-bla-bla-bla frustrating when cannot solve problems, but i guess that's applicable to all programming. So nothing much i can do about my own desolation
7. Pretty heavy and pretty tough but like it a lot. Would like to have it lighter and slower but wouldn't want to miss anything. That's life i guess.
8. Really nice, nothing to complain. It will be more nice if you give us more many sources about what we learnt, such as RSA, Google mapping ... but please optional, too deep and they are not easy at all :)).
9. -
10. NA
11. this module is kool , the way it is taught but a little slower and more interaction would help a lot.
12. I really don't regret choosing CS1101S because I learnt a lot more than what I thought I may learn.
13. no
14. Still have not learned a useful programming language, and being afraid can not use Java or C++ good enough comparing with other guys who have choose CS1101XYZ.
15. i like it, and i think it is not so hard as i thought before.
16. Great!!
17. Competition intense in here. Maybe that's one of the concern about 1101S. Just don't have the motivation since I always feel that I'm lagging behind the ppl around me.
18. the class can be held like a forum, where we can go to ask questions, but we must have been given the work to do before the lesson. the teacher can give a lot of exercises, i don't mind, but i just need to know how to discover what are my mistakes, without getting penalized in the process.
19. 1101"S" for "sadistic fun". Hopefully gets more "challenging" with each chapter to keep up interest.
20. Even though the subject itself is too hard, I think we are lucky to have lecturers like Razvan and Ben, otherwise CS1101S would be a nightmare!
21. it is cool, I dont know other programming, But I see it more interesting than others . Very freely in using, I like it 'cos I dont like some thing strict and serious
22. -
Skip: 10  (31%)
My response to 4 is that I think the code is quite readable. I suspect this is a C++ or Java programmer complaining about the style. The Scheme style is somewhat different, but more intuitively obvious in my opinion. It is because Scheme is so intuitively obvious that we don't need lots of C++/Java-styled comments. This is probably also one reason why having some programming background may actually not be helpful for this class. :-P The C++/Java programmers get pretty confused by Scheme at the beginning it seems.

My response to 14 is "Patience Padawan, Patience...." Razvan will be teaching you all the Java you ever need to know (and a lot that you never really wanted to know) in CS1102S, so you will eventually get there. Sad to say, Scheme does have very little commercial value so to speak. Nevertheless, I hope that students will appreciate the "teaching value" of Scheme and why Scheme is a good language to use for teaching intro to programming. Think about this: MIT has been using Scheme to teach into to programming for ALL their Electrical Engineering and Computer Science undergrads for the last 20 years (no choice there). There must be a good reason right? Perhaps it's the "S" for "Sadistic Fun" reason? :-)

Do you have any concerns about CS1101S? If so, what are they and how can we help?
1. having trouble with problem sets and keeping up with the class. Nothing needs to be changed. Just me.
2. i somehow hope to get a B or a B+ and pass .. and i think i'll be needing help for that also
3. Why not have the examinations on the computers? It is more practical than written on paper.
4. Sometimes the procedures are not understood. So after every procedure a small quote should be given to describe the action of the procedure in brief.
5. Exam, that's all, afraid of time management
7. Yes, I still think that my programming skill still not fluently at all, I need more self-practice exercises :((
8. -
9. NA
10. ya, if we could have more consultation hours as most clash with my other lectures and tutorials
11. No. Thanks to the lecturers and tutors for your hard work! Scheme is COOL!:-)
12. no
13. no
14. Sometimes needs chim maths theories.. I think maths is a important area that will make understanding the concepts better... What maths modules should we take?
16. taking up lots of my other module time, especially when one PS can take a few whole days. maybe make the pace of learning scheme slower, so the PS is easier. how about an Advanced scheme for the better students.. they can then get credit for it.
17. Must not cancel this module. Too cool to cancel. Must make more people suffer... it builds character.
18. I am very worried about my final grade for this module, I really dont want to fail it and take it again for the next sem...=/ What is the failing mark? Can I at least have the border grade even though I have lot of difficulties in this subject?
19. I am not clear the lambda expression, in some exercises I can use it but in others I am stuck with the very new ways of using it
20. -
Skip: 13  (41%)
There's no real need to go read up on chim maths lah. The most relevant and useful math class is probably the discrete math class (CS1231).

Students who are worried about their grades should probably just work harder and make sure that they understand the concepts. Dun understand? Come to consultation -- but you cannot expect the teaching staff to perform miracles. We can help people learn, but we cannot learn for them. Most importantly, cannot try to just memorize. Must practice and try problems (lots in SICP and Concrete Abstractions). It's the process that matters, not the result.

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