You are here

Previous Teaching Philosophy

When it comes to teaching, I think that there a lot of things we can do as computer scientists to improve.  We take the term "lecture" literally.  Students simply expect now that their classes will consist of professors with slides that they can then download afterwards. Professors read through these slides in class, often with little interaction with the students. This can get really boring, really fast, even when some professors are able to work more interesting examples into those slides. What use is dumping all that content onto the students if they can’t concentrate and pay attention to it? Even the best speakers can lose their audience if there is no break from the slides.

It doesn't have to be that way.

Some computer science professors pause from their slides to work on code with the class. This is a great idea – it allows students to think about how they would do it, and if the professor is really good, they even take these suggestions from the class to try out. It allows students to get feedback on their understanding and start correcting misconceptions right away.

While working on code is very helpful, I think that there are many opportunities to take the idea of classroom activities further. Algorithms can be shown with interactive activities, and students could work in small groups to answer a question designed to test their understanding of a concept right after it is taught. In upper year classes there are fewer students, making it possible to get into some more interesting discussions – if only the right questions were asked of the class. You can even have students come up to the front and show how to do something if you prepare a tutorial sheet for them and bring a printed copy to class.

There is a danger with these classroom activities, of course. Some students may feel like you are treating them as children instead of adults and others may see them as time fillers. In fact, these were both comments I received in an informal survey I conducted recently about my own course. I can understand where these comments are coming from: I remember thinking that I wasn’t learning much from these sorts of activities during my student days. But looking back, I now realize that even though the activities didn’t disseminate as much information as traditional lectures, I actually did gain a better understanding of the topic. Funny how being at the front of the room can improve one’s hindsight and insight.

I think the current challenge for computer science education is to break the mould that is the slide-based lecture and convince professors to spend a bit of extra time preparing more interesting activities for their classes. New and creative ways to teach difficult topics need to be invented as well, since it is certainly not entirely clear how to teach all subjects in this way. There are many opportunities to share this knowledge, such as through ACM’s Special Interest Group on Computer Science Education (SIGCSE).

This change will be good for the typical student currently found in computer science, and may make the field more attractive to the more diverse population we hope to attract.  I know I will strive to never have a slides-only lecture in any of my workshops or courses.