National Curriculum in England: computing programmes of study
Purpose Computing Programmes of Study
A high-quality computing education equips pupils to use computational thinking and creativity to understand and change the world. Computing has deep links with mathematics, science and design and technology, and provides insights into both natural and artificial systems.
The core of computing is computer science, in which pupils are taught the principles of information and computation, how digital systems work and how to put this knowledge to use through programming. Building on this knowledge and understanding, pupils are equipped to use information technology to create programs, systems and a range of content.
Computing also ensures that pupils become digitally literate – able to use, and express themselves and develop their ideas through, information and communication technology – at a level suitable for the future workplace and as active participants in a digital world.
National Curriculum for Computing Aims
The national curriculum for computing aims to ensure that all pupils:
- can understand and apply the fundamental principles and concepts of computer science, including abstraction, logic, algorithms and data representation
- can analyse problems in computational terms, and have repeated practical experience of writing computer programs in order to solve such problems
- can evaluate and apply information technology, including new or unfamiliar technologies, analytically to solve problems
- are responsible, competent, confident and creative users of information and communication technology
Key Stage Attainment targets
By the end of each key stage, pupils are expected to know, apply and understand the matters, skills and processes specified in the relevant programme of study.
Schools are not required by law to teach the example content in [square brackets].
National Curriculum Computing Programmes of Study Subject Content
Primary School Coding Curriculum Key Stage 1
Pupils at key stage 1 should be taught to:
- understand what algorithms are, how they are implemented as programs on digital devices, and that programs execute by following precise and unambiguous instructions
- create and debug simple programs
- use logical reasoning to predict the behaviour of simple programs
- use technology purposefully to create, organise, store, manipulate and retrieve digital content
- recognise common uses of information technology beyond school
- use technology safely and respectfully, keeping personal information private; identify where to go for help and support when they have concerns about content or contact on the internet or other online technologies
Junior School Coding Curriculum Key Stage 2
Pupils at key stage 2 should be taught to:
- design, write and debug programs that accomplish specific goals, including controlling or simulating physical systems; solve problems by decomposing them into smaller parts
- use sequence, selection, and repetition in programs; work with variables and various forms of input and output
- use logical reasoning to explain how some simple algorithms work and to detect and correct errors in algorithms and programs
- understand computer networks, including the internet; how they can provide multiple services, such as the World Wide Web, and the opportunities they offer for communication and collaboration
- use search technologies effectively, appreciate how results are selected and ranked, and be discerning in evaluating digital content
- select, use and combine a variety of software (including internet services) on a range of digital devices to design and create a range of programs, systems and content that accomplish given goals, including collecting, analysing, evaluating and presenting data and information
- use technology safely, respectfully and responsibly; recognise acceptable/unacceptable behaviour; identify a range of ways to report concerns about content and contact
Secondary School Coding Curriculum Key Stage 3
Pupils at key stage 3 should be taught to:
- design, use and evaluate computational abstractions that model the state and behaviour of real-world problems and physical systems
- understand several key algorithms that reflect computational thinking [for example, ones for sorting and searching]; use logical reasoning to compare the utility of alternative algorithms for the same problem
- use 2 or more programming languages, at least one of which is textual, to solve a variety of computational problems; make appropriate use of data structures [for example, lists, tables or arrays]; design and develop modular programs that use procedures or functions
- understand simple Boolean logic [for example, AND, OR and NOT] and some of its uses in circuits and programming; understand how numbers can be represented in binary, and be able to carry out simple operations on binary numbers [for example, binary addition, and conversion between binary and decimal]
- understand the hardware and software components that make up computer systems, and how they communicate with one another and with other systems
- understand how instructions are stored and executed within a computer system; understand how data of various types (including text, sounds and pictures) can be represented and manipulated digitally, in the form of binary digits
- undertake creative projects that involve selecting, using, and combining multiple applications, preferably across a range of devices, to achieve challenging goals, including collecting and analysing data and meeting the needs of known users
- create, reuse, revise and repurpose digital artefacts for a given audience, with attention to trustworthiness, design and usability
- understand a range of ways to use technology safely, respectfully, responsibly and securely, including protecting their online identity and privacy; recognise inappropriate content, contact and conduct, and know how to report concerns
Secondary School Coding Curriculum Key Stage 4
All pupils must have the opportunity to study aspects of information technology and computer science at sufficient depth to allow them to progress to higher levels of study or to a professional career.
All pupils at key stage 4 should be taught to:
- develop their capability, creativity and knowledge in computer science, digital media and information technology
- develop and apply their analytic, problem-solving, design, and computational thinking skills
- understand how changes in technology affect safety, including new ways to protect their online privacy and identity, and how to report a range of concerns
Contains public sector information licensed under the Open Government Licence v3.0 : National curriculum in England: computing programmes of study.
Programming Pedagogies: PRIMM
As more and more young people are starting to learn programming, there’s a need to develop the pedagogies we use for teaching it in schools. Teaching programming is challenging: as an educator, you can know the subject well yourself, but often find students get exasperated with mastering what you’ve taught them.
Dr Sue Sentance and the Computing Education team at King’s College London found that there was a need for specific strategies educators can use to support the development of understanding in computing. Building on the literature suggesting students need to develop accurate code tracing before they can become successful in programming, they developed the ‘PRIMM‘ model as a structure for activities.
PRIMM stands for Predict, Run, Investigate, Modify, Make.
It has been developed by building on the Use-Modify-Create model from Irene Lee and colleagues. The model supports educators to design experiences where students engage with code in a progressive variety of ways that build their understanding.
Predict
Students start with the code for a program that works, and are asked to look at it and predict what it does.
Run
They run the code and observe what the program does, testing their predictions.
Investigate
They then get into the details, looking at the program line by line, and exploring how it does what they predicted and then observed when they ran it
Modify
Students use the understanding they’ve developed of the code to change it to do different things.
Make
Using the concepts in the program that they’ve now understood and adapted, students make a new program that solves a different problem.
This approach takes the evidence based approach of starting with existing code, and building the students capacity for code tracing before asking them to start writing code. It scaffolds their developing understanding in a way that teachers can repeat for working with different constructs and programming approaches.
The team at King’s have trialled this approach with teachers and seen some promising results.
They’re currently undertaking a wider scale study into the approach with secondary teachers in the UK.
You can read more about PRIMM and the ongoing research into this pedagogy on the Computer Science Education at King’s blog at Exploring Pedagogies for Teaching Programming in School.
PRIMM: A Structured Approach to Teaching Programming in Schools