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 CS3243 (Semester 2, 2007/2008) Mid-term Survey + My Responses

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

There are several reasons for this survey:

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

  • Allow 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 - Students always want to know about class before they take it. The style of the lecturer actually matters more than the subject material being taught. These results will allow future students who are contemplating taking CS3243 with me to know what to expect. If I may cite the key finding in this regard, "Students who are looking for a class that is easy to score, please don't take CS3243 (or actually any class!) with me :-)". My responsibility as a teacher is to help students learn something, not to make a subject easy for them to score. The only way to score in my classes is to learn the material well and to learn CONSISTENTLY. My teaching style is such that students who have a penchant for sleeping during the term and trying to study last minute for the exams will likely do poorly. I apologise for my shortcoming in this regard. Students, please be warned. :-P

Total Number of Respondents : 55/71

Multiple Choice
1)How do you find the lectures?
Rank Percentage
I have no clue what the lecturer is talking about most of the time 3
I have no idea what's happening half the time 8
Lectures are no different from the other classes on campus 19
Lectures are clear and I am able to follow the material quite well 24
Lectures are way cool. Easily the best class that I've taken at NUS
Skip 0

This is a disaster. Quite troubled that some 20% of the class is lost. :-(
Multiple Choice
2)How do you find the Tutorials?
Rank Percentage
I'm always asleep during tutorials and have no idea what the lecturer/TA is saying. 2
I have a hard time understanding what is taught in tutorial 10
Tutorials are okay 25
Tutorials are clear and helpful in reinforcing the material covered in lectures 18
Tutorials are brilliant. I understand AI completely because of them. 0
Skip 0

Tutorials aren't doing so great this semester either. :-(
3)Feedback for the lecturer Ben Leong
1. makes an effort to make the material understood
2. Very interesting lecturer, with very interesting analogies
3. Good, but a little bit fast sometimes.
4. interesting analogy.
5. Quite a good lecturer. Is quite helpful especially when students raised questions. Would be better if the lectures involve a bit more participation of the students but not too much like the first lecture. For tutorials, they are fine and enforce the concepts learnt on the lectures quite well.
6. He is responsible on this module (post on forum, lecture notes...)
7. He's a good lecturer.
8. Very interesting lecturer... :)
9. i feel lectures should go more in-depth of the topics taught. i know the intention of this module is a survey course of all the AI techniques, but personally , i think without going into the details, it is hard for any student to appreciate and be really interested in the topics.
10. Some of the materials that are in the textbook and will be tested are not covered in the lectures. For example how to draw a constraint hypergraph.
11. Interesting way of teaching, makes it fairy enjoyable.
12. Talks a little fast.
13. Very cool guy who makes lecturers and tutorials fun. However I think exchange students will need a little help in understanding Singlish.
14. Good coverage of taught material. Speed of lectures can be a slight concern but otherwise good. Good interaction with students in class.
15. lectures are a bit fast paced, but hopefully with the recent encouragement to ask more questions students will be more inclined to speak out more to control the pace of lecture. i feel the same about the tutorials, but at least the tutorials cover the topics in lecture more in depth and give more examples and help to reinforce the material.
16. Towards the end of the lecturer normally he will rush through the notes.
17. ok
18. Very concise and effective
19. He's a very very good lecturer. One of the best lecturer in NUS i've met i guess, cause he can make the lecture very interesting and clear so far. And also a very good tutor apparently.
20. above average. at least your voice wont put me to sleep.
21. Sometimes talk too fast, but other than that is okay.
22. better to focus on important parts instead of details of the progress of an algorithm
23. You should speak slower when explaining different concepts. That would help students understand the material faster and better. =)
24. No comments.
25. Often speak too fast. Words spoken get clumped together, shorten our attention lifespan.
26. Friendly fella
27. Very interesting during lectures.
28. He talks too fast. Some staff in textbook is not in the notes. I am not sure whether they will be in exams or not.
29. Good
30. Good^^
31. Sometimes speak quite fast. Examples given in lectures are interesting and clear.
32. An excellent lecturer.
33. he talks too fast
34. Interesting teaching style prevents students from falling asleep and keeps us interested most of the time. Great lecturer. Keep it up! pace on new topics can be slower.
Skip: 21 (38.2%)

Thanks for the kind words. I get comments about speaking too fast almost every semester and I do try to slow down, but it's really hard. Well, one advantage of speaking fast is that we usually end early so students can feel free to ask me to repeat.
5)Please let us know your suggestions on how the teaching of the class can be improved.
1. More examples to enhance understanding.
2. None
3. No suggestions.
4. nil
5. Slow down a little bit? :)
6. A detailed explanation can be given for each consequence covered in the classes.
7. For now it's good enough with very interactive lectures and tutorials. Thank you =)
8. can't really understand the algorithm, more explanation on the algorithm would be good=>
9. Could go a bit slower so that everyone can understand
10. Not enough examples to help us understand the searching concepts.
11. ok
12. none.
13. None.
14. Speak slower. Cause sometimes it can be very fast. But, most of the time, it's ok alrd.
15. More interaction between tutor and students.
16. NIL.
17. nil
18. More actual examples. The examples given are very brief.
19. Explain how different topics fit together. Give an overview of the class once in a while.
20. More discussions and maybe some hands-on on practical usage of AI.
21. Good enough ....
22. For the second part, could you choose some chapters that are helpful to increase our interests in AI. I really feel chapters about logic boring.
23. Better to have a series of mini labs/assignments instead of 2 projects
24. Give us some good paper about AI. Suggest some good
Skip: 31 (56.4%)

Thanks for the suggestions. I did attempt to summarize more and explain how thinks fit together. Also, the mini-project and Final Project are designed to let students have some practical hands-on experience with implementing and exploring AI algorithms.
1)There's very little "homework" for this class, but there are tutorial questions that students are supposed to prepare for each week. Please let us have your views on the tutorials and/or suggestions for improvement.
1. Nil
2. For my tutorial, the giving of participation marks is only for every RIGHT answer given. This poses tension in the learning environment. This culture, subconsciously, will discourage students who are unsure of their answers to participate in tutorials. To emphasize again, it is participation marks, not oral-test marks. Probably, tutor can remember faces and award participation marks after class, rather than after per correct answer given.
3. Homework requires too many tracing problems. Takes a long time to answer.
4. No comments.
5. Could have focus on few topics first.
6. ok
7. No comments.
8. Tutorial is ok Now.
9. workload is ok.
10. Tutorials are good, but some questions can be really tough
11. The tutorials could focus more on teaching the concepts rather than finishing the tutorial questions.
12. Can get answers from tutorial with a clear explanation
13. it's just nice
14. The tutorial questions are helpful in applying the concepts learned in class, and the solutions that are posted are helpful as well.
15. Good questions chosen. Concepts can be a bit abstract, but overall fairly manageable
16. most tutorials are easy... guess better to choose some difficult ones and discuss
17. It's very helpful.
18. Apparently for Mengran's tutorial, he'll give points to a correct answer to his question. Not just the participation effort which Dr. Leong mentioned in lecturer.
19. None
20. Ok
21. It is Ok for me.
22. The questions are a bit easy.
23. nil
24. Tutorials are good enough.
25. The tutorials pretty much require us to look back at the lecture notes and study carefully before the tutorial questions can be done. It also helps to enforce the concepts learnt in lecture while doing tutorial questions. Perhaps a non-compulsory challenging AI question can be put in the tutorial for further discussion for those students that are okay with the tutorial questions.
26. I think homework sets would be more effective.
27. The number of tutorial questions is manageable.
Skip: 28 (50.9%)

For comments 2 and 18, I have spoken with Mengran to address your concerns. Points for Tutorial will be given for participation, not only correct answer. That said, just because one speaks during a Tutorial doesn't necessary mean that he will be awarded a point. There is also a minimal level of demonstration of understanding and/or effort. It's cannot be just saying things for the sake of saying things.
2)Please let us have your views on Mini-Project: Breakthrough
1. It is really fun except for the makefile part.
2. For me it's a very tiring project. But quite interesting as well.
3. alright project, but if more help can be rendered on the use of timer function would be great. as we just told that it's the tutor's problem and to read the API. Also, the timer not working in GUI mode doesn't help either. Seems to not work properly on sunfire also..
4. Cool^^
5. A cool project with good visuals on achievements met. Good direct application of AI.
6. Its tough, fun and interesting.
7. help us understand the concepts a lot
8. Interesting, but a little bit hard to do it very well given the time we have after learning alpha beta.
9. not ok if your programming experience is not good enough.. not really sure how to implement minimax initially whether as a tree (implement root, node etc..) or using recursion (which essentially forms a tree as well) probably because cs1102 didn't focus on the practical programming involving trees.. also there was too much focus on binary trees, and even though recursion can form trees is pretty obvious, it is not clearly obvious, at least for someone like me..
10. -
11. allowed us to implement and see the mini-max algorithm in action, which is good.
12. interesting project.
13. I spent a lot of time to finish the project but my partner does nothing. The whole break, I did only one thing---this project. My other midterms will let me die.
14. Fun.
15. It would be better if you prepare group in IVLE like the final project, so that it would be easier to find partner.
16. it was challenging. My team started early, but still spent the whole mid-term break on it, trying to get it running. Better documentations next time. More intuitive error messages to help debugging.
17. i think having a win-lose kind of situation is not good because we might have a class full of motivated students. even if our breakthrough agents r really good, someone will still get 0 percentage...
18. It is great.
19. cool
20. fun
21. Manageable.
22. Very helpful in understanding alpha beta pruning and minimax
23. NIL.
24. Quite time-consuming.
25. It's really interesting and worthy to work on project. =)
26. Very interesting... gives a very good introduction of AI gaming
27. It is very interesting.
28. Very interesting
29. It was quite an interesting project, but due to bad time management, and bad luck (if I may say that)....I was not able to 'complete' it. The heuristics portion has a lot of room to improvement, and we know the version we submitted is not really doing what we intend it to do. We didn't manage to find the correct weights, and we didn't manage to figure out how to 'discourage' our agent from initiating exchanges unnecessarily. Sigh.
30. really fun and helpful to understand minimax and alpha-beta pruning. However, we have worked on it for semesters. From my experience and what my friend told me (he took it before), competition between agents cannot show which is the best. I would like to find some agent can beat human (may not be experts) instead of other agent...
31. I enjoyed the project and it definitely helped me to understand the alpha-beta minimax problem much more thoroughly than i would have otherwise.
32. Ok
33. very fun. I like it so much.
34. It was a good prj, helped me understand what was being taught in the class.
35. It is an interesting project, in such a way that the game play is easy, yet getting a good strategy for the agent to perform well is actually hard (like it's not as simply as you thought initially). If my group met up earlier, the Breakthrough agent might be better improved. Perhaps the original website for putting up our agents to play against each other can be put up so as to fine-tune our agents better.
36. I felt the instructions could have been more clear and summarized. It should also be consolidated into 1 file (there was the pdf and the readme file in the file)
Skip: 19 (34.5%)

My response to comments 3 and 9 is that CS3243 expects a minimal level of programming competency. From our grading of the Mini-Project, it's quite clear that some students may not have the necessary level of programming competency. My advice to students who are weak in programming is to spend some effort improving his/her programming skills before taking this class.

Also, students who are weaker in programming should most certainly start working on the assignment earlier. Otherwise, they are a disaster waiting to happen since they will likely not be to able to debug their assignments in time.
Multiple Choice
3)On average, how much time do you spend doing homework for this class per week? Take the total time spent preparing for Tutorials + doing Breakthrough and divide it over the 6 weeks prior to the mid-term break.
Rank Percentage
At most 10 hours 24
Between 11 and 13 hours 12
Between 14 and 15 hours 7
Between 16 and 18 hours 4
At least 19 hours 4
Skip 4

It's a good distribution that shows that CS3243 do not take up too much time. For the rare ones who spend > 14 hours, I suspect it must be Breakthrough. Two possibilities: (i) weak in programming; or (ii) really out to win the contest.

The interest observation about the CS3243 assignments is that they are able to cater for a wide range of abilities. Weak students who put in effort should be able to do reasonably well. Strong students who want to do a lot can also spend an infinite amount of time on them.
4)What are your views on the Final Project?
1. Similarly, we have worked on tank for semesters. Though the server and client have been improved, there are still faults in them... For the open final project, I guess it's really hard to show much related to AI. I've seen the examples in workbin. They are fun but have little relationship with AI. I would prefer to write a simple self-learning agent for some chess or card game if I had time
2. Prob be doing the tank project, looks scary, but we'll see how it goes
3. Have not completed it..
4. Nothing, haven't touch it yet
5. Not sure what to do yet.
6. haven't looked at it yet...
7. IT should be very fun and full of learning opportunities.
8. Looks like going to be tough
9. Should be more interesting than Breakthrough.
10. gonna be another fun project. prepare to enjoy it. ^_^
11. Extremely time-consuming if we want to design a good agent. And the "contest" is kind of random......I mean it may not pick the best agent.
12. -
13. Will be quite interesting.
14. Tough
15. Should be difficult, but I am looking forward it
16. Tough one.
17. i like the flexibility given as AI indeed can be applied in many fields, depending on one 's creativity
18. Should be quite challenging.
19. Should be fun to do.
20. A lot more challenging than Breakthrough, will anticipate many sleepless nights again.
21. Seems hard as the concepts will not be covered.. thus programming/learning the techniques for it will be hard.
22. It is quite hard but interesting.
23. Not much time given for final project.
24. Looks hard
25. Seems tough. Contains a lot of materials for self-exploration which is after all the driving reason for this project.
26. It sounds interesting enough for both tank game and open-ended project and I hope it would be a good project too.
27. is there a advantage/disadvantage in terms of marking between the two different final project types? i.e. bonus marks to open-ended projects with good ideas.
28. No idea, haven't really started....but considering what ha
29. Now No Idea.
30. The tank game seems a bit much given that we aren't offered any guidance whatsoever, but the open-ended seems more do-able. Also, it would make more sense if the project was required to explicitly pertain to some topics we have discussed in class, unlike the tank project which doesn't incorporate much of it.
31. it seems like the report has a lot more weightage than the code?
32. Final project.. it seems interesting but very challenging also.
Skip: 23 (41.8%)

Re: comment 27 - the two variants of the Final Project are supposed to be equivalent. There should not be any advantage/disadvantage in terms of marking between them.
Multiple Choice
1)What is your overall impression of the class thus far?
Rank Percentage
This is a horrible class. Truly regret choosing it. 0
Not so great compared to my other classes 4
Just like any other 22
Better than my other classes 25
Definitely one of the best classes that I have taken in my life. 4
Skip 0

So-so, but looks like we're not doing so great this semester. It's probably because I'm teaching twice the normal course load this semester and I am unable to devote quite as much time preparing and teaching CS3243 as I would have liked. :-(
2)Would you recommend the class to other students? Why or why not?
1.I would recommend. Tell folks that this class is really interactive and interesting
2. Sure. AI is firstly an interesting topic with both great lecturer and TA.
3. Yes. It is interesting, though it takes a long of time.
4. Yes, because AI is a good field for people to understand though hard, especially interesting for gamers so as to have a better opponent for their gaming needs. AI also gives an interesting concept on how to make something think better, or if possible, think like humans perfectly.
5. yea. projects are fun.
6. Yes. Concepts are fun.
7. No.
8. I would. Ben is a great teacher who gives a very honest effort at lecturing. He's personable and can relate to the students. Also, he seems legitimately excited and enthusiastic about teaching, not something you see in all professors. The subject matter is also interesting to learn about, as AI is a fascinating topic in CS.
9. Yes, because it is quite interesting; not, because the projects are horrible.
10. No, too much work to be done for mini-projects.
11. Yes.It's fun.
12. Yes. But only to people who likes programming.
13. Yes. coz its interesting and fun
14. neutral, but it is a pre-req for many other modules.
15. yes. it is useful.
16. Need to warn non SOC people the necessity of learning java or at least basic knowledge of it. There are those who have not touch c++ for a loooooooong time outside soc faculty
17. Yes
18. yes. interesting topics.
19. Yes, interesting
20. If they are interested in AI which is rather essential to gaming, I would recommend to people who are taking Communication and Media stream.
21. Depends on whether they enjoy CS1102 or not. If they didn't, they probably would not enjoy this class
22. Yes, it gives you a better understanding of AI which is necessary for writing good software.
23. I would recommend it to those like algorithm and AI (in fact it's a course more with algorithm in my opinion).
24. Dont know. It's not that good or that bad
25. Yes, it's an interesting course to take.
26. is already one of the few more interesting modules in a major that can be pretty dry.
27. Yes & No. yes if they ever wondered how computer AI worked and no if they are weak at programming.
28. yes and no, yes because the things taught are quite useful, no because the concepts are quite hard to understand
29. maybe, maybe not, not all my friends like logic or programming despite being computing students.....
30. Depends.
31. Yes I will coz I feel that it's an interesting topic which has a lot to offer.. for cs students AI is one major branch, for CM they need it for the games, for the rest and other majors (if they good in computing) it's good to know AI just like it's good to know maths even if you're not going to be a cashier..
32. Yes. Cause, it's interesting and quite fun, even though doing the project can make me quite frustrated.
33. Yea, because it is an interesting subject
34. Yes. Interesting class and knowledge learnt should be useful for other modules. It is also a pre-req for many other modules.
35. Yes. Interesting lecturer, interesting content.
36. Yeah, interesting but tough, but think should be better than other Level 3 Modules for CS electives.
Skip: 19 (34.5%)

I would agree with some of the comments above that 1102 and programming ability is quite important for CS3243. Students who don't like 1102 and programming might want to avoid taking CS3243 (at least when I'm teaching it). 
3)Do you have any concerns about the class? If so, what are they and how can we help?
1. Engineering students seemed to be at the slightly losing end considering they do not have any proper & formal java programming knowledge prior to this course. This is in compared to SOC students who are very much adept at programming in java already. Having said this, its not really a complaint since its a CS module after all. Just that programming-wise engineering students will be slightly behind in progress.
2. You can't help it if I've a bad memory and don't like complicated things.
3. none
4. nil
5. No
6. Not much concerns.
7. No.
8. Nil.
9. No.
10. none.
11. No
12. So many staffs.
13. No la
14. go a little slower for the lectures. getting the point across is better than following the formality of finishing all lecture materials for the week?
15. Concepts can be hard to apply to various situations. Maybe a little bit more samples would be good.
16. -
17. nil
18. Nope.
19. No comments.
20. Yes. The class size is relatively small. I worry about the bell curve, especially for students who may not be as good in programming as the rest. Moderation?
Skip: 35 (63.6%)

Re: comment 1, engineering students can choose to do the Mini-Project in C. They can also choose to do the Open-ended Final Project in C. Come next year SoC Comp Engineering students will be doing CS1101C instead of CS1101.

In response to comment 20, to do well in CS3243, students need to do well in the exams and average in the projects or average in the exams and really well in the projects. Those who do well in both get the A+'s. In this light, I think that CS3243 is actually more fair because unlike the exam-biased classes, students who don't do so well under examination stress can still do well by putting in extra effort into the projects. The projects are mostly about effort more than smarts.
4)Final question: tell us more about anything else you have to say about the class that is not already covered by the previous questions. Phew. :-)
1. No
2. Hmm.. Good job so far and hoping for cooler things to come!!!
3. NIL.
4. None.
5. -
6. none
7. the 5% part about participation is perhaps too much. for the tutorial, the tutor appears to mark the name of each student who participates. there are only so many questions and sub-questions and they number less than the number of tutorial classmates so obviously not everyone's gonna get the full participation. also, some people are too dominant in class so others have no chance to say something. alternatively one has to post in forum but if got nothing to say then is really nothing to say. it's getting too artificial and rigid that i cannot be bothered to participate in class or post in forum if i've nothing useful to post. perhaps a better way is to make submission (may or may not include grading) of tutorial part of participation..
8. >...<
9. Nil.
10. Initially, I thought AI is only about robots and nothing more. But now, I begin to appreciate the beauty of AI, like for bots, game AI and solving problems. Though tough to learn all those algorithms and understanding it, the application of it is pretty much good.
11. Life is busy when I take this module.
12. it's annoying to test breakthrough code on sunfire. why do this???
13. nil
14. Nothing much. The class is fun.
15. none.
16. None
17. NIL
18. nil
19. Nil.
Skip: 36 (65.5%)

Re: comment 7, the participation marks are there to encourage participation/effort. For most students, it is not going to make a major difference (or any difference) to the final grade. It only matters mainly to those who are at the borderline of passing/failing.

Re: question 12, we need a common platform on which all the students can test their agents to make sure that they can compile/run correctly because the agents need to be run against each other on a common machine. Sunfire is the one that the Department has made available for this purpose, so we use it.

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