Reflections on being a teacher…
Last week, I was attending the LaTiCE conference -- a good international conference in the area of learning and teaching in computing and engineering -- held for the first time in India, at the IIT Bombay campus. Due to various constraints, attending conferences have become very rare for me, and it has been a long time since I attended a conference. If at all I go, it is for a talk or as a part of organisers. So this was a change -- a welcome one at that.
The theme as I mentioned is improving the teaching and learning in various areas, mostly STEM and engineering including computing. Many papers focussed on computing itself. With almost half a century of experience in developing computer programs, we still have issues with the way people teach and learn programming. We don’t seem to know how to do it right! And the programming capability of many of our students, graduating after a 4-year engineering degree (even in computer science/IT) or a 3-year MCA is generally poor. I used to use simple programming problems requiring just 2-3 lines of core code during tests and interviews, to check programming comfort. Examples include sum an array, count the number of ‘a’s in a string, check if an array is sorted, etc. Very few people even make a serious attempt on such problems. “Sir, I learned java 4 months back…” is a usual answer -- where the “4 months” is uttered to mean something like dinosaur-era! So, the concern is genuine. Perhaps there are many entries in the list of the accused for this state of things. Go ahead and work on changing all of them. But, what are we teachers doing about it?
At the end of the lecture, how many of us pause to think on what all things went right, and what all went wrong. If you were sitting in the same class as a student, what would your feedback be on the lecture? How interesting was the class? How motivating was the delivery, the examples, and your body language? How many people were looking lost and how many were in a different world -- those eyes which go right through the teacher into the beyond!
And then reflect on what we could have done better, from any of these perspectives. If we could find one thing to do differently, by the next time we get on the stage/podium, may be our transformation to being a better teacher would have begun then. No, I don’t think you can be the “best teacher” -- such a thing does not exist. There is always room ahead, there is always someone who had problems with some part of what you did. So, we always strive to get better, and better, and still better. This pursuit itself can make a lot of difference. Stop the feeling that subject x is very boring. Subjects are not, teachers are!
Technology is not always the solution, and sometimes they are the problem. Slides do not make you a better teacher -- you can actually get to be a worse one than before. You need the right kind of slides, with right degree of preparation with those slides, and use them in the right way. All the “rights” here are a function of you -- not a universal rule. We often end up copying fancy looking slides from elsewhere, without even making an attempt to understand and internalise them. We put up so much of stuff on the slides, that there is no time or need to think in the class, the spontaneity is lost, and there is little involvement.
One nice thought which I was reminded of in the conference was about program reading. The analogy was that we do so much reading/listening before writing, when it comes to any language. In computer programming, we start writing even before we have seen even 5% of the language. Practical touch is good and important, but what is the right time, and what is the right type of practical in various stages of learning programming? Open source people used to talk about using good open source code to teach how to program. The idea of “program reading” sessions seems to be very appealing, and I am thinking of trying them out somewhere. I have not seen that in the assignment or activity list, or syllabus anywhere so far. Has anyone experienced it? Or tried it?
I am not sure what is the right recipe for program reading? What kind of program should one read? Ideally, we should do both good and bad, to know why is bad so bad, and the good, so good. What should we focus on during program reading? Imitate reading of stories or fiction? I believe there are studies done on it, and some with very positive results. Need to dig them up and study.