Spicing Up Text Based Programming

It’s been a while since my last post.  I’ve had my head down working away at the demands of teaching KS3 computing and GCSE computer science for the first time.

Without a doubt the toughest learning curve has been teaching Java to my Y9s, where class sizes are that bit bigger and they have had no experience of text based programming.  When they get stuck, they get stuck.

We started off the year with the grand idea that we would convert my old spreadsheet quiz unit into a Java based quiz, so we produced a whizzy tutorial website.  However, in practice, it was a bit too high level, and my classes, whilst being keen to do well needed more careful scaffolding to enable them to take their first steps in text based coding.  I was spending lessons running from one problem to the next as I hadn’t helped students develop the resilience to solve issues on their own before calling for me.  Combine this with a new piece of software (Eclipse) with it’s own set of folder management issues with multiple students using the same machines lesson after lesson and I wasn’t able to step back and see the big picture in class.  I needed to tweak the lesson structure to provide more built in support and free me up a bit more to challenge and support where it was actually needed.  The way I did this was though a three step process.

Here’s an example of how I taught loops:

Step 1 – The Human Computer

Five *ahem* “volunteers” were chosen to be the human computer.  Then I brought out the chocolate digestives (lots more volunteers next lesson!).  I set the variable ‘biscuits’ to five and we munched our way through the code below.  Whilst doing so, we discussed how we could code without the loop to achieve the same result.

BiscuitLoop1

Step 2 – The Worked Example  

Students were given the code for a program using loops (loosely based on my adventures on the M6 with two small children in the car during the summer hols).

DoWhile

Step 3 – The take away menu.

This, I think, is the best thing we’ve done with this unit.  Nicking an idea from Ross Morrison-McGill (@teachertoolkit), I created a differentiated take away menu of independent tasks for students to apply the skills.  They are graded against the Nando’s spice rating menu, with the spiciest involving skills not taught in class.  Here’s the loops example:

NandoLoops

This approach has worked much better, breaking down programming into discrete skills and  giving learners chances to apply and embed as well as a sense of ownership over their independent tasks.

To look at the whole unit, along with fully resourced tutorial website, please visit my Dropbox folder.  All work is licensed under Creative Commons non-commercial, share alike. And enjoy!