Sunday 18 January 2015

Thinking and Programming Videos

I'm in the process of making some videos (screen casts), showing how I arrive at solutions to programming exercises. They are for students learning programming, rather than experienced programmers, though that would be interesting too. The idea of using video is to expose the thought process. I'm not trying to show "follow these steps to produce this code". The problem solving skills that lead to those steps are the interesting thing.

Producing the videos has been a learning experience for me too. The sustained thinking aloud is quite fun. Recording and editing is quite a time sink, but is gradually becoming smoother - and the results more polished as it becomes more familiar. The unexpected thing was how much it exposes the stuff that interferes with mental flow: being hungry, interruptions, outside noises and so on. Not only am I editing out the interruption, but there's a typically a run of edits required as I make a couple of small mistakes or fail to express myself as clearly as I'd like over the few minutes that it takes to get back into my stride.

The video I'm happiest with so far is below. (It is also the shortest!) This follows the bit of the "Money" problem where inheritance isn't the solution. In some ways this was also the most challenging lab so far. Most of the time the thing to show is "the right way". Here the exercise is, at least partly, about recognising when things have gone wrong and rolling back is the best choice. (It is also about the composition vs inheritance choice, but composition is the next exercise.) Important issues, but in my experience "this is wrong and here's why" is avoided in the classroom.