Assoc Prof James Gain comes from a long line of teachers. "Both my parents were academics; in fact, I am a third-generation academic. My grandfather was originally a UCT professor in the medical faculty, so it is sort of a family profession.
"The thing for me is I really like to have the students engaged with the material I teach," he explains. "It is very easy for students' attention to lag if you are the kind of lecturer who speaks throughout the entire lecture."
For Gain it is important to create the type of environment where students are not afraid to ask questions. He does in-class exercises, and breaks large classes into smaller groups, to make asking questions less intimidating.
"For example, in larger groups I use polling exercises where students have to respond using polling sheets," he explains. "Because everyone is doing it, it is less intimidating than venturing an opinion, but it still means students have to grapple with a response to the material, which is far more effective than just asking them to think about it."
One of the biggest challenges in teaching computer science specifically is the huge class disparity in experience and exposure.
"We have such a wide range of abilities coming into the course. On the one hand you have people who have been doing hacking at home or IT studies at school, and on the other you have people who haven't touched a computer. Teaching for such a broad range is really tricky. You can't address that entirely in a class setting."
To try and straddle this gap, Gain runs tutorials and workshops for students who are struggling, and a programming contest for more advanced students.
Beyond the actual subject matter, Gain believes students also learn other skills: "Problem-solving is one of the skills we teach indirectly by teaching computer science. A big problem can be really overwhelming, but if you break it down into smaller pieces, which is how you learn to program, you can do almost anything; and this applies more widely in life. Something that people might not associate with computer science is creativity. Just as an engineer would build a bridge, we build this intangible information artefact, and there is a lot of creativity that goes into it."
What does he find most satisfying about teaching? "In science there is this kind of chain, going back thousands of years – of knowledge building on knowledge – and the same applies to people. I had people imparting their knowledge to me and inspiring me to carry on the subject, and I try to do the same for my students. So I feel like I am a part of that chain; and if I was missing or my students were missing, the chain; in a sense, would be broken. So there is a massive tradition of science and advancing science that I feel a part of."
This work is licensed under a Creative Commons Attribution-NoDerivatives 4.0 International License.
Please view the republishing articles page for more information.