What is a programming language?
What is a programming language?
There are two main types of programming languages: visual and textual.
If you have ever watched a television programme about hackers, they are usually shown working on a lot of complicated-looking text on a screen – that's how we tend to think of programming languages! Whilst it is true that textual programming languages are quite complex and time-consuming to program in, visual programming languages are very simple to use and your child will be introduced to them as early as KS1.
KS1 programming languages
In KS1 your child will be introduced to a very simple programming language, normally one that is used to control a turtle robot (a kind of programmable floor robot).
The majority of turtle robots will have four different functions that can be used to control the robot, as well as a run option and a clear option:
If you were given a set path for your robot to follow, you would have to program the robot using the arrow keys in the correct sequence, before hitting the RUN key to have the turtle robot perform the instructions.
If you made a mistake you could use the clear key to remove all of the instructions assigned to the robot's memory, so that you could start fresh. By making sure you programmed the robot correctly, it should complete the given task when run.
A turtle robot often used in KS1 is the Bee-Bot and a commonly used programming task would be to make the robot draw numbers by following a path. Look at the example of a path below, and the corresponding instructions required to draw the number using the keypad:
In the above image you can see that we have been given a path to draw the number 5 or the letter S. From out starting point at the top right, facing left, by completing each of the steps in our program one at a time the end result would be to draw out the path of the number 5:
Programmable floor robots are easy to use: directional keys send them forward, back, left, and right and they usually beep or flash when they have completed each command so children can follow through a program they've created and watch it step by step.
KS2 programming languages: Scratch
In KS2 students learn to use more complicated programming techniques in a much more advanced programming language, the block-coding language Scratch.
KS1 programming does not allow children to do very much other than move a character with individual steps. In order to achieve something more interesting we need to use programming loops, which allow us to repeat something over and over again. A more powerful programming language is needed to use loops, and for the majority of primary schools the programming language of choice is Scratch.
Scratch allows us to use very basic building blocks and connect them together to create a computer program.
Scratch is mainly designed to help your child learn the basics of programming through building games. With a good understanding of programming principles Scratch can allow programmers to build extremely realistic games using advanced and accurate physics simulations.
Get started using Scratch: you can sign up for an account and access your projects from anywhere and the best thing is it’s completely free. The forums are full of helpful hobbyists and educators who will be willing to help you debug your programs.
KS2 programming languages: Python
The main difference between a textual language and a functional language is fairly obvious: a textual language is typed text whilst a visual language tends to use some sort of drag-and-drop feature.
Visual languages are generally:
- Easier to learn than textual languages
- Used to introduce the key concepts of programming
- Less powerful than textual languages so they limit what the programmer can build
Although textual programming languages are not generally taught as part of the primary computing curriculum it can be useful to understand a little about how they work.
Python can be described as a language that is very easy to learn and exceedingly difficult to master. The basics of using Python are very simple and a lot easier than the majority of other programming languages to learn. However the way that Python deals with highly advanced programming concepts can be somewhat more complex than other programming languages.
In order to show some of the complexities of Python, here is some Python code that moves an arrow in a straight line:
Extremely versatile and rewarding in the long-term, but rather too complex for most beginners!
Another issue with learning to program in Python is something called syntax errors.
When building in Scratch it is impossible for your code to not run. You could have errors in your program logic, for example doing an addition instead of a subtraction, but the code would still start; your result would just be incorrect. In Python, since everything is typed instead of being dragged and dropped, it is possible to write code that the computer does not understand. In a program that has hundreds of lines of code identifying these small mistakes can be very time-consuming and requires a lot of patience and practice and this is why generally programming in textual languages is not introduced until KS3 or even KS4.
Programming languages in primary school
Please note that the following guidelines for what is taught in each primary year are for guidance only and may not be representative of the way computing is taught at your child’s school.
Students will be introduced to the basics of programming with a sequential programming robot such as the Bee-Bot.
More complex programming tasks will be given, such as drawing out numbers and/or letters on the floor by programming a turtle robot.
Children will continue to develop their understanding of programming by using robots, possibly moving on to using more complex robots. In some schools a visual programming language will be introduced.
Students will be introduced to a visual programming language and will start to make use of computational thinking to write code that uses loops and if statements.
Year 5 and Year 6
Students will start to develop independence in a visual programming language, writing their own code rather than just following instructions and testing out ideas. Some students may start to learn a textual language.