With six years of software engineer experience prior to becoming a teacher I feel I am an adequate code monkey. However although I might be able to see patterns, pseudocode and data flow tables from a cursory glance at a problem specification I know that my pupils can struggle to attain the problem solving skills required. Common problems are the mispelling of variable or procedure names, not ending loops or conditional statements, and typing code into Visual Basic 5 (our language of limited choice) without setting up the event definitions first. In short, there is a issue with my pupils’ programming literacy.
In my five years of teaching Higher Computing I have been the second pair of eyes in the classroom, helping pupils debug their programs by pointing out their spelling mistakes and decrying their inability to read a meaningful error message.

At the meeting one possible solution was suggested. One so simple it made my jaw drop. Pupils program in pairs, being the lead programmer and second pair of eyes alternatively. I’ll admit I was a little embarrassed that I’d never tried this strategy before but feel that this might improve error detection if not programming procedure if the pairs are selected carefully.
Other strategies suggested included, in my opinion, the outdated practice of desk checking their program before typing it into Visual Basic. Every. Single. Time. I feel that this method goes against the grain of event-driven programming languages like Visual Basic which are meant to be used for rapid application development. Objects are dragged in from the toolbox, code is quickly constructed and linked, module libraries are knitted into the main program and quickly great things can be happening. In the past few years I’ve taught my Higher Computing pupils how to make MP3 player software, cave-flying games and a homage to Horrace Goes Ski-ing in double-period lessons. These lessons were fun and boosted the pupils’ confidence – where is the fun in desk checking your code for these applications?

Hi – I have a new MSc student project in which the student is interested in finding ways of giving fast feedback to pupils when they try short programming exercises. After musing upon how we learned maths at school (lots and lots of examples) we’re also interested in how much practice teachers feel is required to “get” a particular programming point. Could you point us towards any resources computing teachers might typically use to teach programming? Thank
Hi, stumbled across you via the Twitterverse and had a quick poke around your blog. Nice to meet you.
Pair programming is a fairly common dev technique these days and is a great way to help students learn programming. If you’re needing more resources, try this one:
http://www.wikihow.com/Pair-Program
or just google “pair programming”. One basic notion is the idea of test-driven development. In the classroom context, one student would come up with a test, and the other would program against that test.
Here’s a bit more:
http://www.agiledata.org/essays/tdd.html
Hope this helps inspire more creative ways of getting kids learning how to problem solve.
All the best,
– Ian
Ian, thank you so much for taking the time to read and respond to my blog. This is definitely a strategy I’m going to use with my classes in the future to see if it helps them improve their programming and debugging skills.
All the best,
Ian