The first step when starting to learn coding is very important. It puts the foundations in place and getting these early steps right is essential.
But what next? There are several routes to learning programming. However when it comes to teaching kids how to code, getting the order of what topics to introduce is key to making sure that children are engaged in their learning and can learn and consolidate their knowledge through exciting projects rather than stale exercises.
So how do Level 2 summer holiday coding courses build on the introductory courses. Let us first look at how a coding curriculum should be built.
Python course insights
Like any other academic subject, we need to see the big picture when teaching coding, with every step aimed at moving through a curriculum that has both breadth and depth. Too often coding is taught within courses that lack both. This is an unfortunate consequence of coding being a relatively new subject in children's education.
Codetoday was founded by a physicist who was involved in science education and research for many years, and the core team consists of people with science and maths backgrounds. Why does this matter? Because we view coding first and foremost as an academic subject not too different from maths and science. We believe it should be taught thoroughly by blending the theory with the practical side, as happens when maths and science are taught properly.
Our curriculum spans the range from beginners to advanced and the vast majority of those who attend an Introductory course with us come back for higher level courses.
In higher level courses we aim to achieve two key objectives: introducing new material to add to the coding knowledge, and to add depth to topics that have been covered in previous courses and consolidating that knowledge. Getting the balance between these two objectives is essential as moving on to intermediate and advanced topics without broadening the fundamentals is a recipe for disaster when learning any subject, and particularly coding.
As we progress through the levels, the projects we use in our courses become more complex. We also gradually change how we approach such projects. Starting from the very first course we strongly believe that students need to experiment and write code themselves as much as possible. As we move through the levels this becomes even more prominent, with students being given the opportunity to do more and more of the thinking that is required when planning and writing a computer program.
We also focus more on coding good practices as students are in a better position to understand why these are important. It is a well known fact in coding that bad practices and bad habits that students may pick up early on don't have too much of an impact in the early days when programs are short and relatively simple, but become very serious later on. But by this time the bad habits have become second nature. It is therefore important to start to point these out and, importantly, to show why these bad practices can lead to problems later on.
We also believe in teaching coding as a broad subject rather than focussing one a narrow use of programming. When students are of the right age and coding ability we start to combine coding with subject areas from maths and science, for example, and introduce Python tools and programming methods used specifically to deal with these subjects. We also teach topics that are relevant for software development and analysing data, two of the main uses of programming in the real world today.
And one more area that takes more centre stage in later courses is the ability to understand errors and find and fix bugs in a program. Very few subjects view errors and bugs as importantly as coding does. It is an essential part of a coding education but it also teaches skills that go beyond coding — the skill of looking at errors in a positive way and learning from them and finding solutions to them. Coding, after all, is one of the subjects that focusses on critical thinking and problem solving most.
Learning to code is a journey through many topics, ideas and methods. There is no shortcut to learning how to code, as there is no shortcut to learning maths or science or any other academic subject. Our job is to guide your children throughout that journey, from the beginning all the way to when they are proficient and experienced enough to carry on by themselves.