Lately I’ve been spending a lot of time in matatus – the stupidly overpacked minibuses that travel between cities in Kenya – visiting students I’m working with in a few far-flung communities. I’m trying out ideas around teaching students to become self-motivated learners, through the medium of teaching computer programming. (Hypothesis: People who know how to learn independently can go further than those who need teachers. Evidence: Pretty much every effective tech person I’ve met in Kenya.) Programming, of course, is a very hands-on skill, one that you mainly learn by doing it, a lot. So in these three locations, I’ve been giving some basic overviews and leaving the students with resources to work on, and coming back after a week or two to see what kind of progress they’ve made.

The question is how to transform students into self-guided learners, given the cultural expectations of lecture-based, teacher-driven classrooms. With the math camps, we’ve been attacking the ‘lecture-based’ part of the formula, by introducing fairly radical beyond-curriculum activity-based methods. But the camps are still ultimately teacher-designed and teacher-driven. In the math camp context, we’re seeking to change attitudes around math education, so that’s fine. But there’s a real question of what happens after the camp ends, and the students go back to the same-old same-old. How can we best foster and facilitate independent learning amongst our students?

To try to get at an answer, I’ve been giving lessons while experimenting with questions of resources, guidance, motivation and community. Within a given learning environment, each of these factors varies in type and quality. The Kenyan secondary education system is marked by a high degree of impersonal guidance (lots and lots of straight lecture) and very low access to resources (maybe one copy of a textbook per five or ten students). Motivation in mathematics comes from a combination of desire to pass the national exams, and desire to avoid getting beaten by teachers or parents for getting low marks. Community seems not to be intentionally developed: sometimes students help one another, but it’s accidental, rather than by design.

The idea, then, is to tweak these variables to encourage independent learning in the students. In each of the student groups I’ve been working with, I give an introduction to programming and then leave them with resources: namely, a python instance and a copy of Zed Shaw’s ‘Learn Python the Hard Way.’ (Or a reference on how to write HTML, alongside a text editor and a browser.) Having done the intro sessions about ten times now, I’m much better at teaching basic programming ideas through activities: if statements, loops, and so on, and will probably be putting together some activity sheets sometime soon.

To be perfectly honest, the results have been extremely mixed so far, but I’m learning a lot, and seeing some strategies that might work better in the future.

You just snapped me out of my world for a minute. I think what you’re doing is really cool, and I enjoy reading about it.