One of the things I sometimes say to my programming students is that the purpose of each instruction in a program is to bring about some sort of change. But, as one of the othe volunteers pointed out, they might have trouble understanding this if the concept of bringing about change is missing from their culture. Many kenyans are powerless to bring about change in their own lives.
I’ve heard the term fatalistic patience used to describe the national condition. Sitting, waiting, waiting for things to get better, waiting for the donors to send more money, waiting for a mzungu to come by and sponsor one’s daughters through highschool. I can see it in my classes too. Sitting waiting for the program to write itself, for someone else to answer the question, for the teacher to get bored and give out the correct answer.
If I believe myself to be powerless to chang my own life, if I believe that things are the way they are because that’s the way they are, then I might expect my education to consisted of the wise telling me how things are, and I might unquestioningly write it down in my notebook, and learn it off by heart in the belief that knowing the way things are would give me some advantage in my predestined journey through life. How woudl I react to someone strange and foreign trying to tell me about change? Bringing about change? Following a sequence of steps to achieve a stated goal (the definition of an algorithm)? Bemuzement? Intrigue, perhaps. And if I got the idea that this strange foreigner believed that humans can achieve stated goals in their lives by following a sequence of steps, I could even be offended, angry. If I have become comfortable with my fatalistic patience, this stranger spouting personal (and computational) empowerment could even seem like a threat to my personal comfort and security.
I give up. How can I teach these ladies to program? I actually volunteered (sic) for this class: the
But its tough. Oh my god is it tough. They have a different attitude to stuff. It feels the same as that one I have heard called fatalistic patience. They sit at their computers and type stuff in. They type in long programs, copy them from books or from my whiteboard. They type them like essays, starting from the beginning and going on to the end, so there is no chance to stop half way and see if what they have so far will compile. When they see lists of errors, after they have tried unsucsessfully to correct the first one, they give up and start browsing for romance, and hide their browser windows when I pass. The exam papers themselves are unhelpful. I’ve already given some examples of the
paucity of them. It would be tough to get this class through the exam even if they could program, since they would also have to have studied endless lists of trivia, including outdated dogma such as the generation model of programming language development (according to which the last real developments in programming languages happened in the late ’70s).
Today, however, my instincts are telling me that the best strategy for getting the maxmum pass rate in the exam, and using the skills my students have (they’ve a lot of practise at memorising lists of trivia) would be to stop tryint to teach them problem-solving skills and just go for the lists.
My body aches from the physical theatre of the last two hours. They copy complex programs into the machine and can even answer questions about what all the statements in them do and so on. But the ability to rearrange those instructions into a program to do something slightly different is missing. Absent without, possibly, ever having been present.