It came as some relief when we were introduced to the visual programming languages that we are now familiar with in primary computing lessons. These are generally based on snapping blocks (effectively lines of ready-made code) together in a certain sequence so as to make something happen. Tools such as ScratchJR, Scratch and Blockly, which I’ll refer to as ‘block-based programming’ are ideal for helping children develop computational thinking and logical reasoning, and demonstrate their knowledge and understanding of the underlying principals and concepts of computer programming.
But should children in primary schools have experience of “real” coding, using a text based programming language? In these environments, there are no ready-made blocks to snap together, and the code is typed out character by character before being run.
It is important to understand that the primary computing curriculum is not about teaching children a specific programming language
It is important to understand that the primary computing curriculum is not about teaching children a specific programming language, rather than understanding the principals of programming and applying these to solve specific problems and achieve specific aims. This does mean, of course, that they need to use a programming language but I sometimes think that too much importance can be placed on learning the language, rather than learning and then using the principals and concepts through the language (having started the learning ‘unplugged’ and away from the computers!)
So unlike KS3, where it is stated in the national curriculum that students should use a text based programming language, this is not a requirement in primary schools, and generally block-based programming is used.
However, in the right measure, trying out some text-based programming could be a useful addition to your computing lessons or club. By experiencing, for example, what a variable looks like in both a block-based and text-based program, it can help solidify the child’s understanding of what a variable is and how it is used. They also get to experience some ‘real’ coding, which is something they will meet in KS3. I am not suggesting, however, that we move away from blocks in favour of text, or start covering KS3 content in KS2.
If you would like to give children experience of text-based programming, there are some easy ways to try this out, with lots of support the teachers and pupils.
Some teachers may be familiar with using Logo from their own school days. It is a programming language in which we program a ‘turtle’ (usually just a triangular shape) to move and draw lines, shapes and patterns. It uses relatively plain English commands, which can also be abbreviated and shortened. So a simple command such as ‘forward 100’ can be shortened to ‘fd 100’. Logo is ideal for teaching how, for example, repetition can make our programs shorter and more efficient. A program to draw a square may look like this:
However, by using a repeat command we can refine the program to:
repeat 4 [fd 100 rt 90]
We have moved from eight lines of code to one line of code, clearly showing how repetition can improve our programming.
There are many versions of Logo available. MSW Logo can be installed to Windows computers, or online versions through 2Simple Purple Mash, J2Code from Just2Easy or Transum can be used through a browser.
Freely available to download and install on Windows computers, Fuze is based on the Basic language that we used to use on BBC Computers in the 80s! The Fuze Basic website comes with downloadable lesson plans, and pupils can get started by using ‘Immediate Mode’ through which they can do simple line-by-line programs. They can then enter ‘Edit Mode’ to create and run slightly more ambitious projects.
Rapid Router is a free, step-by-step approach for learning to code, for children from Year 1 up to Year 6 and even into KS3. The majority of the lessons are block-based, in which pupils program a vehicle to move around streets. The final lessons introduce the Python programming language. Children begin these levels by continuing to work with blocks, but can see the equivalent Python code created below. Again, Rapid Router offers all sorts of supporting materials for teachers, helping them deliver coding lessons without needing a lot of expertise or experience themselves.