"Getting the basics in place and making sure children learn the fundamentals well is very important."
This statement is true for all subjects, and especially true when it comes to coding.
But for those children who wish to go beyond the basics, being able to progress at the right pace and in the right order through the various topics in coding is just as important. Coding for kids is not just about the introductory stuff!
Coding is a vast subject. Even professional programmers who have been coding all their lives will have areas of the subject that they don't know. This is the same as for other subjects. No matter how many years one studies Maths, for example, there will always be other areas to explore and learn, or discover.
Learning to Code is Like Climbing a Tree
A good analogy for learning to code is climbing a large tree: everyone needs to start by climbing up the main trunk of the tree, and branching off from this will be two or three very large branches. But beyond that, there will be many branches going off in different directions, sometimes crossing paths again further up the tree. And branches keep growing longer, and new branches are formed too.
Over the past 5 years of running coding courses for children (and adults), we have extended and expanded our curriculum so that students can go as far as they wish. The basics are the same whatever application one wants to use coding for. Beyond the basics, there are different paths one can take and we believe that students should learn a broad range of programming topics if they want to become more versatile.
Our Live Online course format is now nearly one year old and going from strength to strength. Students progress through the Levels one course at a time. Each level helps them consolidate what they have learned in previous levels and learn new topics
We also run all courses at different age groups. Each age group has a Level 1 to start from, and we always start from the basics to make sure these fundamentals are well-understood, but we progress at a different pace at each age group. With 7 year olds we spend more time on getting the very early basics well understood, and we don't rush things. Older students however can grasp the basics a lot quicker, but then we need to slow down once we reach other more intermediate topics.
As students progress through the levels and learn more of coding's tools, techniques and methods, the projects become more complex as well. Let's look at some projects we work on at the various stages within our codetoday curriculum.
The Early Levels
In the early levels, at all age groups, we start with introducing the four pillars upon which all of coding is based: loops, storing data with variables, defining functions and conditional statements. These key topics are introduced at different stages depending on the age group and always within the context of exciting and engaging projects. There is an emphasis on algorithm building and the necessary logical structure needed for all computer programs.
All projects in the early levels are graphics-based in nature, starting with writing code to make drawings, then moving quickly to animations and eventually writing games.
The Middle Levels
In the middle levels we start working more on data structures such as lists—these are a critical part of coding as programs become more complex. Deciding which are needed and how to used them is an important skill to learn and master.
As programs become longer and with more parts in them, we step up the need for proper planning of a program and we focus more on learning how to find and fix bugs and errors in a computer program.
We also start varying the style of projects we work on a lot more, with more text-based programs as well as graphics-based ones. The mix of project types means that students get a broad understanding of coding.
At this stage we can also start moving towards showing how coding can be combined with other subjects. One of my all-time favourite projects is the Bouncing Ball project in which we can combine the science of gravity with coding to create a realistic animation of a bouncing ball. This also puts in place a framework for writing games that have objects that need to move and fall realistically.
The Later Levels
For those students who want to become even more proficient in coding and explore what else can be done, the later levels start to dive a lot more into intermediate and advanced topics in coding. This includes more advanced data structures, and more complex uses of these structures, and also starting to look at how we can interact with data in the real world such as by reading data from text files and spreadsheets, and also getting our computer programs to create and write data to text files and spreadsheets.
We also introduce some more advanced topics, such as Object-Oriented programming, which open the door for even more elaborate projects. Our project types are still varied even at these more advances levels, working on graphics-based games at times, but also science-based projects and data analysis ones.
Beyond the Later Levels
As mentioned earlier in this post, coding is a subject that never ends. One common misconception that beginners make is that once they cover the basics, they think that they know everything there is to know in coding. We do sometimes get students on a Level 1 course who have done some coding and they often answer the question "Have you done any coding before?" with "Yes, a lot", but then it inevitably turns out that that's not really the case.
The more students advance with coding, the more they realise how much more there is to learn and explore, and how much more can be achieved with coding.
Following our Live Online programme of Levels for each group, we then have theme-based courses for the more advanced students. Each course is based on a theme that is either a topic in coding or an application of coding.
Practise, Practise, Practise – At All Levels
Learning to code has similarities with learning a musical instrument: lessons with a great engaging teacher covering the content at the right time are really important, but practising is just as important.
The skills and methods students learn can only be truly mastered if they are used a lot. Right from Level 1, we encourage our students to find time to write code independently. And in the summer of last year we also launched The Codetoday Community which is a private forum for our students in which we can support them during and after the courses. All our students have free access to this forum where they can post their code, ask questions and get help and feedback from us.
Learning the basics of coding is great, but being able to progress to more intermediate and advanced topics through a well-balanced and structured curriculum is just as important. At codetoday we have always been committed to enable students to learn coding properly and thoroughly, which is why we don't stop with the basics.