At Chaddesley Corbett, Computing is taught using the Purple Mash Scheme of Work. Our computing provision aims to create excitement, curiosity and inclusivity by providing the building blocks and transferable skills to learn a skill in computing and apply it in other areas. It also aims to make pupils become aware of how to be safe online and to be able to complete many tasks using different computer programmes. There are three clear aspects of the computing curriculum: Computer Science, Information Technology and Digital Literacy. In this ever changing digital world, children are taught a range of skills including how digital systems work and apply this in programming. They will be taught about coding and computational thinking, spreadsheets, internet and email, Art and Design, Music, databases and graphing, writing and presenting and communication and networks. By the time our pupils leave Chaddesley, they will have been given the opportunity to develop their knowledge and understanding in each of these key areas across the school, ensuring a solid grounding for future learning and beyond.
Computing has many words that pupils need to understand in order to achieve the objectives within the new curriculum. As a result, we thought it would be a good idea to produce a glossary of key words with brief (or not so brief) explanations which we hope will help in developing your child's vocabulary.
Key Words
Algorithms A precise step by step guide to achieving a specific outcome. We all use algorithms all the time but often don't recognise them as such. The order we dress and wash could be described as a getting up algorithm. Posting a letter, dance steps, making a sandwich or preparing a cup of tea are other common algorithms. In fact we all use algorithms every day of our lives. The important task for budding computer scientists is to break the steps of any algorithm up into the smallest possible steps that could be repeated by someone else or a computer. The cross curricular links in this are many and range from instructional writing in literacy to mathematical methods to solve arithmetic sums. To make the point teachers will often need to be pedantic to an almost ridiculous level.
Algorithms & Programming All working programs are also algorithms. They are a sub set of algorithm design written in a specific programming language that the computer can decipher. But not all algorithms are programs as you can write an algorithm in an ordinary language that a person would be able to follow but a computer wouldn't.
Logical Reasoning Logical reasoning is the systematic application of rules to problem solving and task completion. These rules could be mathematical, logical, programming, grammatical, engineering, scientific, story construction in fact a body of rules based around a logical system. Logical reasoning is very important in all areas of knowledge of the curriculum but it is especially crucial for Computer Science as much of the design work is done in your head using programming to test this hypothesis. Logical reasoning is mentioned in KS1, 2 & 3 of the new Computing National Curriculum in England. For example in KS1 the national curriculum says use logical reasoning to predict the behaviour of simple programs. A pupil who understood the constraints and rules of a Beebot would know that they only make 90 degree turns and have set distances for each arrow key pressed so will design routes with those parameters in mind. In KS2 the national curriculum says use logical reasoning to explain how some simple algorithms work and to detect and correct errors in algorithms and programs. A pupils who understood the constraints of algorithmic design will be looking to break tasks up into as small steps as possible and order them in a sequence that works. A pupil could only fix an error in Scratch if they understood the computational thinking rules that govern how Scratch works which depending on the bug might be connected to loops, sequence, variables or selection.
Debugging Debugging is the art of fixing or correcting algorithms or programming code. Ultimately in all areas of learning we want pupils to become independent and to find solutions to errors themselves. Computer Science is a really good area to promote this type of learning. All computer scientists and programmers make mistakes as a natural part of the creative process. The best computing lessons are those where the expectation to fix errors is placed firmly on the pupils. Pupils need to be alerted to the type of errors they might encounter and encouraged to work together to fix these. Praise coupled with reward encourages pupils to successfully correct their work.
Controlling Physical System In primary programming a physical system is anything that we can attach to a computer other than a screen. The type of physical systems we might easily control in primary computing science are things such as lights, buzzers and motors. We might also use various types of switches and sensors to trigger our control items other than just a keyboard or mouse such as distance sensors or movement sensors. Typically systems associated with traffic have been good sources of simple control such as zebra crossings, traffic lights and level crossings. However the breath of physical systems that are and can be controlled by a computer program are widening all the time.
Decomposing Decomposing sometimes called factoring is breaking a problem into smaller manageable chunks that can be solved separately. In a software company this allows different teams of people to work on the same overall project at the same time. For junior computer scientists this might be analysing someone else's program to determine the different problems that they have had to solve to complete the whole or it might involve breaking their own programming project into manageable chucks that they are able to create piece by piece.
Sequence A sequence is a set of actions or events that must be carried out in the same order every time. Along with selection and repetition it is one of the three basic logical structures used by algorithms and programming.
Selection Selection is about choice. It is the place where an algorithm or program branches in different directions. Choice can be made in many ways including by the user as in a quiz program (if answer is correct say well done else say wrong) or by a sensor as in a burglar alarm (if sensor detects movement say alarm else say no alarm). Along with sequence and repetition it is one of the three basic structures used by algorithms and programming.
Repetition (loop) Repetition refers to sections of code or algorithmic instructions that are repeated. There are different types of loop. The most basic is where a set of instructions in repeated a set number of times (repeat 4 [fd 100 rt 90]). Another type of loop repeats continuously until an escape clause is met. When loops are combined with variables the sets of instructions can be adapted in every repetition. Along with sequence and selection it is one of the three basic structures used by algorithms and programming.
Variables Variables are programming structures that can change or be changed. A simple adventure game may have hitpoints as a variable, as the game progresses the number of hit points can be adapted by the program depending on the users choices. Variables can contain numbers or text. The programming language keeps a record or what is currently assigned within a variable at all times. So a score variable can be reported to the user at any time whilst the program is being run. When talking about variables with students the box analogy works best. The programmer creates a box called score and the user adds, takes things away or looks in the box. Using a physical box and counters helps students to comprehend what is happening as the program progresses. This quiz plan has a good variables example.
Input Adding data into a program or computer system. A user could input information to steer a sprite or type an answer using a keyboard or mouse. A more modern input might be voice activated or via a touch screen. A sensor could input data into a system such as temperature or distance from an object.
Output Output is information provided by a program specifically for a user to perceive. It might be text on a screen, a beep through a speaker or a rumble on a hand held controller.
Computational Thinking Computer scientists differ as to which skills and techniques are part of computational thinking. However most will agree on a core set of skills and understanding which include generalisation, abstraction, decomposition and algorithm design. Being able to think like a computer in sequence, selection and repetition is also often included. I would argue that most of the terms we have included here are part of computational thinking.
Abstraction Abstraction is the process of simplifying a process so that it can be considered at a higher level often in relation to other processes. If you ask pupils how they get to school they will say. I get up, have breakfast and travel to school. This is an abstraction as each one of these tasks is in fact a much more complex algorithm of precise instructions. Getting up involves a mechanism for waking up, getting out of bed and getting washed and changed. These are still abstractions. A getting out of bed algorithm may involve pulling back the covers, rotating the body so the feet are over the floor on a specific side of the bed. Lowering the feet to the floor and then pushing with the hands on the bed to lever the body upright.
Upper KS2 & KS3 Sorting Algorithms designed to sort numbers into order efficiently and quickly. Three common sorting methods are bubble, insertion and selection sort but there are many others.
Lists, tables or arrays These are programming tools for storing information that can be used by programs.
Procedures Functions These are self-contained sub programmes that can be used by the main program multiple times. Both a function and a procedure can accept inputs. A function is slightly different in that it can feed information back into the main program. A multiplication function might have two number inputs and feed the answer back to the main program.
Generalisation Generalisation involves replacing many things with one. It is very closely related to abstraction. Lets say I am designing many types of bikes but only want to write one program. I would first decide what all bikes have in common, wheels, frame, seat etc. I can then write a program that uses variables and functions when I get to these features.