BEN LEONG

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 comp.nus.edu.sg

 

Learning Journal

The process of teaching is also one of learning. This page is an evolving journal where I keep track of the lessons learnt, ideas that seem to work (at least for me), and articulate my philosophy on teaching. Suggestions and comments are welcome. :-P

                                                                           - Ben Leong   

General

Belief that We Can Make a Difference. I believe that to be an effective teacher, we first have to subscribe to the belief that we can actually make a positive difference in the work that we do. If we don't believe in what we do, how do we expect to be able to do it well? I used to believe that I make a small difference as a teacher, and I still do, and the day I stop believing, I will find myself a new job. :-)

Good Teaching Admin is Important. I believe that it is important to ensure that the logistics and administration for a course is faultless. Labs should be made available to students who don't have access to laptops; appropriate software should be installed on all the lab machines; assignments should be released on time and they should be checked and reviewed annually to ensure that there are no weird issues. For programming assignments, changes do happen because of the interpreter/software. I also believe that students should have access to the lecture slides several days in advance (in case they want to preview the material) and that solutions should be released for the assignments in a timely manned. Finally, I believe that solutions should also be released for all examinations, even the Final Exams - and this is something that I have done since my second semester teaching at NUS. All in all, there is a significant amount of administrative work that is completely separate from the teaching of the content and some care and effort needs to be put into ensuring that the attendant issues are dealt with. Good administration does not directly improve the quality of teaching, but if the administration is lacklustre, we will be inviting flak from the students. Also, it does not reflect well on our professionalism.  

Good Teaching Staff is Key. Some people may think that teaching is an individual performance. Personally, I think differently. While it may be possible for one person to teach relatively effectively, my view is that teaching can be made much more effective if we have access to more manpower -- but it is not simply a matter of bodies. Not many people can teach and not many people care about teaching.  Having a good teaching staff can improve the quality of teaching significantly because of many reasons: (i) students will have access to more individualized attention; (ii) we have the resources to review and update the teaching materials; and (iii) we can try new things (and afford to fail). In general, I do attempt to recruit Tutors and Teaching Assistants for the classes that I teach at least one semester in advance and I care about not only smartness, but communication skills and passion. In summary, a good teaching staff is a huge "force multiplier" for teaching effectiveness. I have received relatively good feedback for my teaching in recent years and I would like to acknowledge the sterling contributions of my former TAs and tutors. Most of the credit should really go to them. :-) 

Teaching Philosophy

Learning Should be Fun. I have found that the main problem that we face today as teachers is that students actually don't care about learning. Many students find themselves in university not so much because they are here to learn, but because it's the "practical thing". Their parents tell them, society tells them, God knows who tells them, "to get a good job is to get a degree". With this backdrop, life is hard (for us teachers). Many students really aren't in school to learn. Many are just going through motions; most want good grades - but good grades do not guarantee that learning is happening either. So how? To some extent, the answer is simple (and yet not so simple): the key challenge is to convince students that they want to learn. The most straightforward thing is to make learning fun - but talk is cheap. I really have no ready answers for how to "make learning fun". It's just something we need to strive for - and it's probably easier with some classes than others. I am fortunate in that I have been teaching elective classes instead of core requirements since joining the faculty. In elective classes, the students actually choose to take the class, instead of being shafted there against their will. It makes the problem somewhat easier I think. Of course, I have also had an experience where my elective was one of two options, and my class was deemed the "lesser of two evils". There too, I had a huge problem even persuading students to turn up for lectures. Yeah, so teaching is tough. :-)

Learning How to Learn is Key, NOT Learning Content. A recent survey concluded that half of workers in Singapore regret what they chose to study back in school, polytechnic or university and anecdotal evidence indicates that the majority of people DO NOT actually do what they were trained to do in school after they graduate. In this light, I am of the opinion that it probably doesn't matter what people learn in school as long as they learn something and more importantly, learn how to learn independently.  However, it must also be said that we are obliged as a university to train our students in their chosen profession well. While our CS undergraduates might not become programmers, we should still ensure that we do our best in ensuring that they learn how to program. Since I am one of the lecturers for the CS1101 series of introductory programming modules, it is appropriate for me to highlight that the teaching of the programming isn't about the programming. This is especially true for me since I teach Scheme which is practically useless in the real world. The whole point is to teach computational thinking, which trains students how to look at problems, solve them and also manage complexity. But back to how my personal teaching philosophy relates to this point about learning to learn and not learning content. Basically, I don't try to make every student who takes CS1101S with me elite programmers. There are those who are simply not cut out to be programmer and/or don't want to program period. My goal is for them is simply to help them appreciate what we do in programming and to encourage them to learn. I have encouraged students to drop out of CS and to pursue what they really care about - because the role of a teacher is not so to train students to become something that we want, but to help students fulfill the potentials and become who they want to be. It's not about us. It's about them.

Learning by Doing. I teach Computer Science. In CS, we build cool stuff that makes the world a better place. I am a strong proponent of "learning by doing". I see little point in training students to answer examination questions well. Exams do serve a purpose in the education system. The point is that they are indispensible and they are but a tool to be used appropriately. Some classes needs the exams, because they help. Other class don't - and for them, I don't have that component. Overall, CS is trade and I believe that the apprenticeship model works. I tell my students that I see myself as Yoda and they as padawans - and to really learn CS, they need to "do stuff". :-) I believe that there is a place for structured assignments in the introductory classes, I believe that we should have more open-end assignments at the higher levels. In CS3216, the Facebook class, the students are allowed to do practically anything they want for their final projects. Allowing the students to propose what they want to do also gives them more of an incentive to do their projects and to do it well. The problem I feel with structured assignments is that it limits the potential of the students when we simply give them a set of specifications that they have to satisfy. Because an assignment has to be calibrated for the median students, they will never sufficiently stretch the stronger students.

Make Students Learn during Exams. The primary function of exams is to allow us to assess whether our students have learnt what they learnt and also how well they have learnt what they are supposed to have learnt. One of the things that I have found is that exams can also be used to facilitate learning. I experienced this first hand at MIT when I took the Advanced Networking class with Prof Hari Balakrishnan (who is in my opinion a fantastic lecturer - and I was really fortunate to have had the opportunity to serve as his TA for one semester). It doesn't happen often and it's can quite uncanny to suddenly realise after the exam that I learnt something we didn't know before we went to the exam! To be more specific, we cannot really be teaching new material exactly, but questions can be set in such a way that they can be answered by the application of existing knowledge - yet, the process of answering those questions illustrate certain principles. It is really quite difficult to set such questions. I believe that I might have succeeded in some instances and I will continue to do this as far as possible. To make this approach work, it is also important to release the solutions for the exams with explanatory notes. I always make it a point to do that. Do students actually bother to read? I'm actually not entirely sure, but I am reasonable confident that at least some of them will read and learn. 

Teaching is Not a Popularity Contest. While it is important for us to have a handle on our teaching feedback, I take consolation in the fact that we really don't have to try to be popular. We just have to do our jobs. It turns out that in the classes I teach I have a tendency to issue quite a lot of homework to the students. If we have a competition for the lecturer who is most sadistic about issuing homework, I think I have a good chance of winning! :-P Perhaps this is a consequence of my own training at MIT. I tell my students quite frankly the the workload I'm inflicting on them in CS1101S is probably no more than 70% for the corresponding course at MIT. For the first offering of CS3216, I must admit that I didn't have quite a good handle on the workload and it was indeed somewhat excessive even by my own standards. If one will read the only comments about the "excessive workload" in my teaching feedback, one might conclude that my teaching ratings would be toast -- but it turns out be to on the contrary. So we have somewhat of a contradiction - why do I get relatively good ratings notwithstanding the complaints? My view: we just to do our jobs in good faith. It turns out that while students like to complain and compare workloads across their classes, they are not blind to the fact that I do not inflict work on them because I'm sadistic. As long as we ensure that there is teaching value in the homework that we set for the students and they actually do learn something from doing it, it's actually fine -- even if there are the inevitable complaints.

There is a moral hazard in the existing student feedback system. When students complain, we are supposed to address those complaints - and if students complain that there's too much work, it is quite easy to reduce the workload in order to address those complaints. From the perspective of the teaching staff, more homework actually means more work since there will be more grading. So prima facie, the system has all the wrong incentives -- because reducing the workload to address the complaints might be the wrong thing to do pedagogically. I am not suggesting at any point that we want to load the students with more work. Too much work will also have adverse consequences because if the students are too busy doing, they have a tendency to end up going through motion to satisfy the requirements and not really learning in the process. My suggestion is that the whole art of setting homework assignments is an optimization problem and the quantity that we want to optimize is learning value. We should set homework in such a way as to help students learn appropriately and we shouldn't worry too much about complaints as long as we are doing it in good faith. I have come to terms with the fact that the students for CS1101S will complain about the heavy workload, but the workload is not going to change because I have taught the class enough times to know that the current workload is somewhat optimal for maximizing learning value. The class has been taught 25+ years and the problem sets are really all quite brilliant and teach the topics they are meant to teach so incredibly well that it would be sacrilegious to drop them because of workload complaints.

New Stuff Every Semester. It is impossible to have a perfect course and so even if we have taught a course multiple times, there is always room for improvement. Every semester, I always try some new things. Sometimes they work and sometimes they don't work so well. Of course once I figure out how to teach a course reasonably well, the core part that works will be constant. We don't change for the sake of changing - but I will always devote some of the available teaching resources to try new things. If we find things that work, we will incorporate them into the course; if we find that some things don't work, we will document the lessons and try other things the next time round. When I first taught CS1101S, I created a new picture language problem set, which incorporated an optional contest for the students. When I first taught CS3243, I introduced a new Tank Game final project, which culminated in a contest. It was a lot of fun. More recently I am getting some of my Tutors to work out a new stereogram generation problem set for CS1101S to replace my picture language problem set! Maybe it's just me. I like change. :-P

Other Practical Pointers

Timely Feedback is Important. Every class is different. I believe that it is important to have a good handle on how well the students are following the lessons. One thing that I have done is to encourage students to post reflections on the lessons in the IVLE Forum. I've found that this works very well for some classes, i.e. CS1101S, but not quite so well for others. Nevertheless, I think that this is something that is worth doing.

Next, I also conduct a survey after the midterm break in all my classes to get a sense of how things are going and also to identify any problems. While there is a course feedback at the end of every semester, it's much too late by then. Having a survey in the middle of the semester is helpful because we still have the opportunity to fix things if something is indeed broken.

Listen to the Students - They have Good Ideas. Personally, I have found that we should pay attention to what the students say because every once in the while, they come up with good ideas. We are trying to help them learn, but as lecturers our perspectives are often not the same. One success story in this regard is the buddy mentorship scheme that we started for CS1101S. This was suggested by one of the students after the midterm exam last year. While the mentorship scheme doesn't work for every student, it was found to be effective for the majority.

Another instance where I listened to the students and found it helpful was in CS3216, where one student suggested that we organize a session where the students would come together to pitch their ideas for the final projects to each other. There were two main reasons to do so: (i) to recruit like-minded members for their project teams; and (ii) to obtain feedback on their ideas. This turned out to be a brilliant idea. As teachers, we really don't have a monopoly on the good ideas.

Need to Engage Students.  My view is that teaching is not a very scalable activity and the reason is that to be effective, we have to spend effort knowing the students as individuals. Every semester, I try to know every single student by name by the midterm break. This is generally doable for a class with around 50 students. If there are more than a hundred students, it is hard. Another thing that I do is that I make the students fill up a midterm survey and then spend time responding publicly to their feedback. Students think differently from us and we are not expected to agree with them. However, I think the students appreciate it if their feedback is taken seriously and their concerns addressed.

 

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