19 February 2005
Half way through the course on Object Oriented Software Development, I realised what's wrong with most computer courses.
Learning programming should be like watching a Bond movie. As the movie starts some guy is sky-diving onto a building, rappels down a ventilation shaft, bursts out of the ceiling, kills a guard, grabs the false teeth from a safe, takes his jumpsuit off, walks casually through the elegant party and leaves by the front door just as the building explodes. Who is this guy? Why did he do that? What's with the false teeth? Who cares, it's fun! After the opening credits we watch the debriefing back at headquarters, and the details of what we've just seen start to fall into place within the larger framework.
By contrast look at a typical programming course. First one learns about the concept of objects, why objects are important, how to draw relationships between them, how to define their schemas. By the time one gets around to creating an object or two on a computer, most students are either asleep or have given up trying to assimilate abstract concepts without knowing where this is all leading. This teaching method is logical and systematic, but it doesn't work.
Instead, imagine a course where students are given no theory, and taught just enough syntax to keep the compiler happy. Build something cool (probably calling in lots of existing code). Only after they've had a good taste does one step back and explain the base concepts. These students now have something concrete they can chew on.
The only time I've seen computer programming taught this way was an accident, I went from grade 7 to grade 9 half-way through the year (long story) and landed right in the middle of the action. After a week or two the teacher found the intro notes for me to read. One of the few good computer classes I've been in.
There's no denying that the underlying theory is terribly important. But teaching theory first results in a bored audience. A Bond movie has better flow. Not to mention a better gender ratio.
Classic comment from this course's tutor: "A problem with many of your solutions here is that you deviated from an expected analyses of the problem." All we like sheep...