What's the future of kids' coding? Why is kids' coding important? Coding for kids has come a long way since it's made its way officially in the children's education curriculum around a decade ago. But what's next?
In this blog post, I'll look at the journey that children's coding has been through in recent years and will then look at the possible directions it will go in in the future.
Why Coding is Different From Other Subjects
Before we can look at the history and peer into the future of kids' coding education, we need to understand why teaching coding is different from teaching other subjects.
Coding is a complex subject to teach. It's not any more challenging to learn than other subjects such as Maths and Science, but teaching it is a lot harder.
Why? Here are some answers:
Coding is a very abstract subject, and abstract concepts are harder to teach.
Teaching the fundamentals thoroughly is much harder than just teaching them superficially.
The skill needed by a teacher to teach using engaging projects is very significantly higher than what's required to teach simple projects. Being one or two steps ahead of the student is not enough.
The skill needed by a teacher to teach more intermediate and advanced topics is also very significantly higher than what's required to teach basic topics.
Dealing with errors and bugs with the children's code requires a lot of experience, and students cannot progress if their errors are not fully dealt with.
To paraphrase Richard Feynman, one can only truly teach something if they have understood that topic thoroughly. This fact is especially true for coding as there are many layers to understanding coding. The superficial layers are easy to learn. But one must have a much deeper understanding of the subject to teach these topics properly, even the most basic ones.
This issue creates a problem with teaching coding to kids. There is a high threshold required before a teacher can teach the subject properly and thoroughly.
So how have schools dealt with this problem?
A Brief History of Teaching Coding to Kids
In the past decade, there has been a better understanding of the importance of teaching coding to kids. Schools now all teach 'coding' in some form or other. The difficulties I have discussed in the previous section have been addressed for many students by using software specifically designed for children.
These platforms—Scratch is the most common one of these used in UK schools—do a lot of the hard coding work for the students in the background. Kids can simply place commands in the right order by dragging blocks on a screen without having to understand too much about what's happening underneath the hood.
The idea is not a bad one. However, the reality is that block programs do not look much like the real coding that programmers in the real world do. Scratch and similar platforms are easy to teach by non-programmers or teachers with only limited experience in programming. For this reason, what's happened in the real world is that they have become the primary way of teaching coding.
When real programming languages are introduced, usually at a much later stage, they are often taught at a superficial level, teaching them only through basic programs.
Schools have very little choice other than to teach coding at a basic level, as it's been impossible to have the in-house expertise to teach the subject. In the next section, I'll talk a bit more about ways to improve this, but here's a spoiler alert: there's no easy solution to this problem.
Out-of-school options have also become a lot more available for students who wish to learn to program over and above what they're doing at school. Unfortunately, some of the out-of-school options have also resorted to teaching the kids platforms rather than proper coding. Until recently, it has been impossible for most parents to distinguish between what is real coding and what are simply short-cut solutions to teach 'coding' concepts without actually teaching coding.
This situation has started to change now. More and more parents have begun to understand that teaching coding only makes sense if appropriately taught, using the proper tools.
The Future of Kids' Coding
At present, out-of-school courses remain the best way to learn proper coding. Often, they're the only way. Providers that teach a thorough curriculum, and not just the basics, and using real coding languages, such as Python, can provide the same thorough learning experience that schools provide for other subjects.
As more and more parents opt for the more serious options to learn to code, we are likely to continue to see the decline of platforms such as Scratch being taught in out-of-school courses. These add little value to what schools already do. Similarly, we are likely to see a clear distinction between educational courses and entertainment activities as parents understand more the difference between the two. At present, all of these are labelled as 'coding', but I would expect two very separate industries to emerge: one focussing on the educational aspect and treating coding as a serious, academic subject, and another sector offering childcare and kids' entertainment activities that rely on technology, such as gaming activities and robotics.
In schools, the outlook is less clear. It is improbable that every school can ever have a proficient programmer among their teaching staff who can teach programming. This option is just not realistic in the short or medium term. There are not enough people with the right expertise who are willing to go into teaching. At present, coding is a very well paid job, so programmers may be reluctant to take a significant pay cut to move into teaching.
Bringing outside expertise is the next best option. Some schools have already identified this as the only solution currently available to teach coding thoroughly. Unfortunately, this option is not cheap. With limited funds, schools may not always be able to bring in external experts to teach coding.
Another solution for schools would be to share staff among a group of schools. An experienced programmer would work in several schools, focussing only on teaching coding in different schools on different days. These specialised staff can leave other aspects of computing with the schools' full-time staff. This means that one experienced teacher could serve five or more schools, travelling to a different school each day of the week. Even with this reduced number of experts needed, it may still be very difficult if not impossible to find enough experts to teach in schools.
The past year has opened a few more doors. It is now possible to consider remote teaching. An expert programmer can teach at an even larger number of schools as there is no longer a need for travelling. However, an adequate supply of experienced programmers who are willing to go into teaching will still be required.
The most likely viable option is to rely on a combination of delivery formats, including recorded lessons, some live lessons, and remote support via learning platforms that schools use.
None of these future solutions will happen overnight. For the time being, schools will need to restrict themselves to teaching the basics, as they have been doing in recent years. Some problems in today's world don't have an easy solution, and the teaching of coding to children remains one of them.