PrimarySecondaryComputing

So You Need To Teach Coding? – Advice For Secondary Schools

You don’t have to be a programming expert to deliver the new computing curriculum, as long as you stay a step ahead of your students

Chris Roffey
by Chris Roffey
Data handling KS2 lesson plan
DOWNLOAD A FREE RESOURCE! Data handling KS2 – Use Battleships to introduce spreadsheets
PrimaryComputing

With the introduction of computing as a National Curriculum subject in the UK, many teachers are being asked to up-skill and teach material that is unfamiliar to them.

If you are faced with this situation, one of the most worrying aspects may be the prospect of having to teach programming or coding. I hope this short article will provide some encouragement – and that you might even come to love the creative nature of the subject.

Once you have learnt to program in one language, it is relatively easy to move to another when required. To start, then, pick a relatively easy one to learn – like Python 3 – and stick with it so that all the principles of coding can be learnt without confusing students with a plethora of different syntax.

While you may be a beginner yourself, you’ll be teaching youngsters who probably expect you to be an expert. Remember, we don’t have to teach everything at once – so, survival tip one: find a useful group of coding constructs that can be taught thoroughly in a first course and then add more later. This way you can be an expert in what you are asking the students to learn, if not in all aspects of programming.

A possible Python scheme:

Year 7: To be taught • variables • maths operators • the random module • string operators • if…elif..else • while loops • turtle module • functions

Useful for the teacher to know a bit about: • for loops

Year 8: To be taught Consolidate plus: • lists • for loops • simple GUIs

Useful for the teacher to know a bit about • tuples • dictionaries • the difference between methods and functions

Year 9: To be taught Consolidate plus: • tuples • dictionaries • modules • using documentation

Useful for the teacher to know a bit about how to use classes as utilities

You will probably find that if you only teach programming for one term each year, you and your students will forget the skills covered by the following year. It is better to alternate lessons in coding and other topics.

You will become more confident and skilled than your students because you will, through your teaching, practice more than they do. But it’s important to get to a certain level before starting.

Most aspects in the computer science curriculum involve facts, concepts or skills that have their parallels in other subjects. Teaching the Fetch Execute cycle, for example, can be done in the same way as processes and systems are taught in science. Very little research has been done on how to teach programming to school children but there are several approaches being tried that have parallels with other subjects. For example:

1. Start with engaging apps, then explain later Advantages: Engaging! What students want. Learning new techniques. Disadvantages: Could be frightening. Difficult to understand. No learning plan. Inefficient. You’ll have to bring students down.

2. Read other people’s code – ‘that’s how I learnt’ Advantages: Lots of examples. You can choose code that is close to the solution. Learn new techniques. Disadvantages: Might show bad practice. Difficult to understand. No learning plan. Inefficient.

3. Project tutorials – common in ‘learn java in a day’ type books Advantages: Careful explanations. Building something cool. Sensible learning order. Disadvantages: Unusual techniques. Lack of consolidation. Often lack a focus on principles.

4. Maths style – ‘complete 10 while loop exercises today’ Advantages: Less frightening. Teacher in control. Sensible learning order. Efficient. Disadvantages: Could be boring. Project building skills not developed. Easy to forget earlier material.

Mix it up

Teaching through a mixture of these is best. When introducing a new construct such as loops then the maths style is appropriate. A carefully selected project might be best for consolidation.

Studying an engaging app might be good to start a term with, to illustrate what is coming. Learning to read other people’s code is an important skill to develop, but care needs to be taken with this in the early days. Most important, though, is to have plenty of consolidation.

Ask students to solve lots of problems and make little apps that can be achieved with their current repertoire of skills. There are some great collections of short problems available in the Computing at Schools resources section. Survival tip two: register at computingatschool.org.uk to gain access to support and resources.

Fundamentally, programming is a skill like reading or writing. It might seem difficult at first but ultimately writing the code will usually be far easier than the process of solving a problem. Our aim should be to enable students to produce coded solutions to problems they have already solved using computational thinking.

You will also find that young people enjoy sharing how they solved a problem with their peers – in so doing they learn a lot including that there is often more than one way to solve a problem. Survival tip three: Provide lots of opportunities to share solutions.

Finally, ensure that students do not expect you to solve all their problems – you will be swamped! Try paired learning (with students of similar ability) and make some debugging certificates (the students to do the work but then you reward them).

Chris Roffey has 30 years of teaching experience and is currently on sabbatical. He organises the UK Bebras Challenge and is the author of the Coding Club series, published by Cambridge University Press.

You might also be interested in...