How NOT to teach programming
When I first started teaching programming, there wasn’t much research out there on how to teach it well. Programming and computer science weren’t part of the UK National Curriculum at the time.
All I had to was memories of how I learnt how to program.
Learning to program
I learnt to program the hard way, by reading heavy programming books. Which, in my opinion, all spent far too long explaining the theory and didn’t give me enough of a chance to put my new skills into practice.
I mistakenly thought that was the only way to teach programming and mimicked that method when teaching my own students.
Dull, boring programming lessons
I created dull, uninspiring lessons full of complex theory which unsurprisingly my students felt dull and uninspired by. I forced them to follow exactly the same strategies for every program I asked them to create. Thinking it would embed programming theory and somehow, eventually, they would appreciate it.
I thought I should model good programming habits such as using comments and subprograms right from when start. When all it did was confuse students and turn them off from programming.
After a particularly challenging lesson when yet again I had to send a student out of the classroom for their behaviour, I was at the end of my tether. I spoke to the student and they told me “It’s just all so boring, Miss”.
I didn’t want to admit it at the time, but I agreed with him.
What had gone wrong?
I had inadvertently taken all the fun out of coding. I had reduced it to the most mundane procedural methods and so it was no wonder students weren’t engaged or making progress.
So I changed.
A new focus
I realised that I wasn’t in the classroom to teach my students how to become a sophisticated programmer who would leave school at 18 and go straight into working for a programming house. I was there to introduce students to coding and help nurture a love for it. It didn’t matter if they didn’t create their programs using multiple subprograms or add comments to every line of code. If the program worked it was good enough.
If I inspired my students to embrace the craft of coding and they wanted to become a professional programmer, they could learn all the boring bits later.
So, I stripped back the befuddling dross and realised that I actually wanted to focus on the essential skills of programming to help students grow in confidence.
And I certainly wasn’t going to do that with boring, theory led lessons.
So I developed my own way of teaching programming - and it worked!
A focus on practical programming skills
Student’s responded well and could remember the basic skills they had been taught. They could apply the skills to new problems and they grew in confidence.
I also enjoyed teaching the lessons and no longer viewed them with dread and the hard slog it had once been.
Sure, we covered comments and subprograms but only when the students were already proficient with the other things like if statements, iteration and data types.
At the end of the unit all my students could plan, create and debug their own programs to solve simple problems. They had also developed soft skills such as perseverance, critical thinking and teamwork and they had done it all without me pulling my hair out.
Programming lessons don’t have to be boring.
Programming books that spend 5 chapters extolling the virtues and pitfalls of one particular language and then give a single program for the reader to copy should, in my opinion, have a warning label on the cover that it will kill your love of coding.
The future of programming teaching
Get your students coding right from the start and don’t let them stop. Allow them to make loads of programs, and it doesn’t matter if they don’t add comments or use subprograms. If it works, it is good enough.
Let’s revolutionise programming lessons and bring in the fun. Good programming practice can wait.
Let’s enjoy the problem solving, creative side of coding and instil a love of programming in our students right from the start.
Vive la révolution!
If you would like to find out more, watch my FREE webinar “3 Simple Tricks To Immediately Improve Your Programming Lessons”