Key Stage 4 Computing
Key Stage 4 Computing
Key Stage 4
Curriculum map
3 Networks Year 10 6
4 Security Year 10 7
6 Algorithms Year 10 11
14 HTML Year 11 6
1. What is representation?
In this lesson, we will consider two-state systems, such
as bulbs and switches, and investigate how combining
these in groups provides more combinations. Finally, we
will learn how this relates to computers, and will be
introduced to binary.
2. Number bases
In this lesson, we will use decimal representation to
explore the concept of place values in number bases
and the values of digits. Then, we will explore the
representation of binary values, and converting these
back to decimal.
3. Binary maths
In this lesson, we will discover how to perform binary
shifts, binary addition and develop an understanding of
the term 'overflow'.
4. Hexadecimal In this lesson, you will be introduced to the hexadecimal
number system and learn how to convert between
hexadecimal and decimal numbers. We will also learn
why hexadecimal is used.
6. Representing text
In this lesson, we will look at character coding systems.
First, we will consider character coding systems that you
might have come across before, such as semaphore and
Morse code, then we will be introduced to ASCII, a
standard coding system for representing text. Next, we
will learn about the need for Unicode to extend ASCII.
Finally, we will learn how to work out the size of a plain
text file.
9. Units of measurement
In this lesson, we will look at units of measurement and
learn how to convert between these units.
Unit 2 Computer Systems 12 Lessons
Lesson
Lesson question Pupils will learn
number
5. Secondary storage
In this lesson, we will be introduced to secondary
storage and take an in-depth look at solid-state storage.
We will discover the need for secondary storage,
through assessing the devices we have learnt about
already. By the end of the lesson, we will be able to
explain how solid-state storage works, and describe the
advantages and disadvantages of such devices.
7. Selecting a storage device In this lesson, we will systematically compare and select
storage devices for a given situation. The second half of
the lesson explores the limits of physical storage and
how cloud storage can fill the gaps. We will examine
cloud storage and explore questions about the impacts
of cloud storage.
8. Computer specifications
In this lesson, we will learn how to evaluate a computer
based on its specifications. We will discover the factors
that limit a CPU's performance: clock speed, cache, and
the number of cores. The end of this lesson will involve
us choosing the right computer for a given task.
9. Logic gates
In this lesson, we will discover logic gates: the building
blocks of processors at the heart of a computer system.
Through the activities we will build an understanding of
how logic gates are used to address real-world
problems.
11. Assembly language programming I In this lesson, we will learn how to write and debug our
own assembly language program. The lesson will build
us up to this task, first modelling how to translate a
piece of Python code into assembly language and
examining the types of commands used in assembly
language.
12. Assembly language programming II
In this lesson, we will complete one last project for the
unit: we will be given a set of requirements and tasked
with designing an assembly language program to meet
the requirements.
Unit 3 Networks 6 Lessons
Lesson
Lesson question Pupils will learn
number
2. Basic networks
In this lesson, we will be introduced to the ways that
computers can be connected together in a network that
is either wired or wireless. We will be introduced to MAC
addresses and relate this to the need for having unique
identifiers for every device on a network.
3. Real-world networks
In this lesson, we will further develop our understanding
of networks. We will look at the three main types of
networks, LAN, WAN, and PAN, and at the different
topologies that these networks can use in their
design.We will carry out an activity in which we will plan
a business network to meet the requirements of a
fictional company, 'Fabgadget Inc.'.
4. Configuring networks In this lesson, we will compare peer-to-peer networks
with client-server networks. We will also build and
configure three networks using Packet Tracer.
2. Non-automated cybercrime
In this lesson, we will distinguish between non-
automated and automated cybercrime. We will be
introduced to the idea that humans are the weakest link
in the security chain before exploring different types of
social engineering.
3. Automated cybercrime
In this lesson, we will explore terms and techniques
related to automated cybercrime and the vulnerabilities
of a network or software that can make companies or
individuals vulnerable to such attacks.
4. Fighting fire with fire In this lesson, we will discover different ways to protect
software systems. This will include approaches to design
and approaches to access.
5. Network defence
In this lesson, we will find out about ways to protect
network systems from cybercrime. We will learn about
the importance of network security before looking at a
number of ways to achieve network security.
4. Cultural impacts
In this lesson, we will understand what the term 'cultural
impact' means. We will learn about downtime and its
effect on businesses and individuals and examine the
concept of 'digital divide' and work through examples of
its impact. Finally, we will analyse the cultural
implications of the growing use of mobile technology
and the responsibility of stakeholders in mitigating any
risks explore globalisation.
5. Privacy and surveillance In this lesson, we will discover the reality and limitations
of privacy and surveillance. We will learn the laws that
protect us directly, and others that enable the security
services to protect us from harm. We will then think
about the tension that exists between these two sets of
laws. In addition, we will consider the different
technology that we encounter in our daily lives and the
privacy implications of these. Finally, we will learn about
how intrusive social media is in its harvesting of data,
and become more informed about the data that they
are making available through our engagement with
technology, as well as the, environmental impacts of
social media.
6. Environmental impact
In this lesson, we will discover the reality of technology's
impact on the environment and about how technology,
if utilised strategically, can be used to protect the
environment and can be a preserver rather than a
destroyer.
7. Ethical impact
In this lesson, we will review what the word 'ethical'
means generally. We will then be introduced to the main
ethical impacts of technology, and engage in activities to
help them become more aware of how important acting
ethically is.
Unit 6 Algorithms 11 Lessons
Lesson
Lesson question Pupils will learn
number
1. Computational thinking
In this lesson, we will be introduced to three
computational thinking techniques: decomposition,
abstraction, and algorithmic thinking. We will explore
how these skills can be applied when solving a wide
range of problems, both computer-based and in their
everyday lives.
2. Representing algorithms
In this lesson, we will be developing flow charts. This
lesson assumes that learners have already covered the
flow chart lesson in the KS4 Programming unit, although
this lesson can also be used to introduce the flow chart
symbols if required.
3. Tracing algorithms
In this lesson, we will be shown examples of tracing a
Python program and a flow chart. Trace tables are great
for walking through an algorithm and are often used to
locate logic errors
4. Linear search In this lesson, we will be introduced to one of two
searching algorithms we need to know about: linear
search. We will go over the steps of carrying out a linear
search, and perform a linear search in real life and with
a sample of data.
5. Binary search
In this lesson, we will be introduced to binary search: the
second searching algorithm we need to know about. We
will go over the steps of carrying out a binary search and
perform a binary search with playing cards and with a
sample of data.
7. Bubble sort
In this lesson, we will learn the first sorting algorithm in
this unit: bubble sort. We will discuss why and where
sorting is used in real life, become familiar with
performing a bubble sort on a set of data, and
investigate the efficiency of bubble sort.
8. Insertion sort In this lesson, we will explore another sorting algorithm:
insertion sort. Some exam boards do not require
learners to know insertion sort, so do check the
specification first. We will start by discussing how to sort
objects in real life, which will help us to describe
something akin to an insertion sort.
1. Translators
In this lesson, we will learn that computers need clear
and precise instructions in order to perform the
expected task. We will also be taken on a journey from
machine code to high-level languages in order to
discover how a computer interprets instructions.
2. Sequence
In this lesson, we will be introduced to a Python IDE. We
will learn about the function of an IDE and why
programmers use these to write programs. We will be
given some simple code to predict, run, investigate, and
modify. Whilst we take our first steps in Python
programming, we will also learn about common errors
and error types.
3. Variables
In this lesson, we will find out about variables. We will
learn about the purpose of variables, but also the
technical aspects of creating variables to a uniform
standard. Variable declaration is not used in Python, so
a wider look at this through other programming
languages will help us gain an insight into its meaning.
4. Input In this lesson, we will start to add interactivity to our
programs by using the input() function. Whilst learning
about input, we will be introduced to functions and data
validation techniques. These will be covered in more
detail later on in the course.
5. Flowcharts
In this lesson, we will focus on interpreting and creating
flowcharts. We will use our knowledge of writing simple
sequences and subroutines to follow a flowchart, and
write the code that it represents. We will be given time
to write our own simple flowcharts in order to practise
using the symbols that we have learnt during the lesson.
This is an introduction to flowchart design and will be
built upon throughout the unit.
Unit 8 Programming 2: Selection 6 Lessons
Lesson
Lesson question Pupils will learn
number
1. Randomisation
In this lesson, we will be introduced to the concept of
random numbers using Python documentation. We will
determine what the random module is capable of, and
how random numbers can be generated in Python. In
computer science, random numbers are something that
you are likely to use regularly. They are also used in
areas such as cryptography, while pseudorandom
numbers are used in video games, modelling, and
simulations.
2. Arithmetic expressions
In this lesson, we will understand the rules of operator
precedence when evaluating arithmetic expressions. We
will be reminded of BIDMAS, before investigating code
that uses various arithmetic expressions. This lesson will
prepare us for the next lesson, where we will begin to
use conditions in programming.
3. Selection In this lesson, we will move on to the next big
programming construct: selection. We will be introduced
to it initially through a flowchart that demonstrates how
a condition can be used to control the flow of execution
in a program. We will then learn about definitions for
logical expressions and conditions. A short activity has
been included to allow us to grasp how logical
expressions evaluate. Next, we will complete a PRIMM
activity where we investigate and modify a chatterbot.
4. Selection challenge
In this lesson, we will complete the 'make' part of
PRIMM. We will complete an activity to create a joke
machine. This will allow us to apply our new knowledge
to a new, but similar scenario.
5. Logical expressions
In this lesson, we will deepen our understanding of
logical expressions by introducing the operators AND
and OR. It will begin with a Parson's Problem to check
our understanding of selection. It will then move on to
an unplugged activity that introduces AND and OR. We
will walk through code, and investigate it before writing
our own logical expressions.
6. Nested selection In this lesson, we will be introduced to the concept of
nesting 'if statements'. We will walk through some basic
nested statements to check our understanding. We will
then follow the PRIMM approach and investigate a
'guess the animal' game. We will then modify the game
to improve the functionality of it.
Unit 9 Programming 3: Iteration 5 Lessons
Lesson
Lesson question Pupils will learn
number
1. While loops
In this lesson, we will investigate the world of iteration in
programming. We will learn how to create and use a
while loop in Python.
2. Trace tables
In this lesson, we will learn what a trace table is and how
to use one. Trace tables help check logic errors in a
program and help us learn how to read and follow
programs.
3. For loops
In this lesson, we will be introduced to 'for loops'. For
loops allow us to iterate through a sequence. We will
find out how to create and use a for loop in this lesson.
4. Data validation
In this lesson, we will develop our understanding of data
validation by applying data validation through iteration.
5. Pseudocode In this lesson, we will learn how to write our own
pseudocode. We will also complete a challenging project
that we will need to design using pseudocode before
creating in Python.
Unit 10 Programming 4: Subroutines 6 Lessons
Lesson
Lesson question Pupils will learn
number
1. Subroutines
In this lesson, we will formalise our definition of a
subroutine. We will find out why they are used in
programming and we will also learn how to pass values
to them.
2. Functions
In this lesson, we will explore how to create our own
functions. Functions are a type of subroutine that allow
us to return a value. We have used them before when
we have used code like print() and input(). We will also
explore the difference between a function and
procedure.
3. Scope
In this lesson, we will learn about the scope of variables.
When a variable is initialised within a subroutine it
cannot be easily accessed and modified by other
subroutines. This lesson will teach us about the different
levels of scope and show us how to access variables that
are initialised within subroutines.
4. XOR In this lesson, we will be introduced to a new operator
called XOR. We will discover how an XOR works before
writing a function to perform the XOR operation.
5. Structured programming
In this lesson, we will be introduced to the paradigm:
structured programming is programming. This lesson
will also demonstrate how we can apply the paradigm to
our own programs.
6. Create a program
In this lesson, we will follow the structured
programming approach to create our own program.
Unit 11 Programming 5: Strings and lists 10 Lessons
Lesson
Lesson question About the lesson
number
2. Dictionary challenge
In this lesson, we will have the opportunity to use a
dictionary data structure in a new context. We will
create a Caesar cipher encryption program using a
dictionary as the cipher wheel. This mini project will
allow us to develop our programming skills through an
appropriate challenge.
7. Being a programmer
In this lesson, we will discuss the good habits of a
programmer before being reminded of why some of the
key aspects are good habits. We will also hear from
industry programmers about their own good practice.
We will then look at alternative approaches to
programming solutions.
8. Battle boats In this lesson, we will be introduced to the final
programming project of this course: programming a
game called Battle Boats.
1. Database essentials
In this lesson, we will explore the key terminology
required to be able to use SQL to search and update a
relational database. Together we will step through the
key concepts using a music database as an example. We
will complete the lesson by gaining some hands on
experience of using a database management system.
2. SQL searches
In this lesson, we will use the music database from the
previous lesson, 'Database essentials', to write our first
SQL commands to access and manipulate the data.
1. Introduction to HTML
In this lesson, we will take our first footsteps in web
development. We will start by gaining an understanding
of what a website is and how it ends up in the web
browser. Then we will edit content in a website before
creating our very own web page from scratch.
3. Mini project
In this lesson, we will build upon a laser tag website by
designing and adding new pages.
4. Introduction to CSS
In this lesson, we will focus on the look and feel of a
laser tag website by applying CSS (a cascading style
sheet) to it.
5. DIVs and classes In this lesson, we will look at how we can make use of a
DIV tag to apply CSS to different sections of each page
on a website.
1. Programming Paradigms
In this lesson, we will focus on how a programmer
chooses to write programs. We will investigate how they
use a programming paradigm, which is a set of
conventions, a set pattern or set way of doing things.
3. Creating a class
In this lesson, we will use our experience with object-
oriented programming to step into the shoes of a video
game programmer. We will create a class that will hold
the information about monsters in a puzzle game.
4. Inheritance
In this lesson, we will learn about a key principle of
object-oriented programming - Inheritance. We will use
it to create new monster classes for the Monster Quest
puzzle game. These new classes will inherit all the
attributes and methods of the original monster class
and add some new ones all their own!
5. Exploring OOP
In this lesson, we will explore a program written using
OOP. We will use our experience to first investigate and
then modify the program. Finally, we will add a new
subclass to the program and apply the principle of
inheritance.
4. Learn More
Contents
2. Knowledge organisation
The computing curriculum is structured in units. For the units to be coherent, the lessons within them must be taught in order.
However, the curriculum is flexible in terms of the order in which you teach units within a year group, except for
programming, where concepts and skills rely on prior knowledge and experiences.
2. Knowledge organisation
The curriculum applies to the National Centre for Computing Education’s computing taxonomy. This has been developed
through a review of the KS1-4 computing programme of study, and the GCSE and A Level computer science specifications,
across all awarding bodies. All learning outcomes can be described through a top-level taxonomy of ten topics, ordered
alphabetically as follows:
Algorithms
Computer Networks
Computer Systems
Creating Media
Impact of technology
Programming
The taxonomy categorises and organises content into strands which encapsulate the discipline. Whilst all strands are present
at all phases, they are not always taught explicitly.
We want Oak to be able to support all children. Our units will be pitched so that pupils with different starting points can access
them. Our lessons will be sequenced so that each builds on prior learning. Our activities will be scaffolded so all children can
succeed. We use unplugged or real world activities to unpack difficult concepts in computing as part of a semantic wave of
learning. We also use a range of scaffolding approaches when teaching programming, ranging from copying code, exploring
some commands or functions, fixing code with bugs to solving specific problems with code.
4. Application through software
We need pupils to be thinking during their lessons - both to engage with the subject and to strengthen memory of what is
being learnt. Some of our lessons require practical application of concepts and skills on a computer using appropriate
software. We supplement our lessons with guidance on how to use such software to reinforce the learning from the lesson.
We believe that computing is inherently interesting, and seek to motivate pupils through the subject matter. Where possible,
we draw on real world experiences to provide an engaging viewpoint on computing concepts. Every pupil should have the
opportunity to implement their skills and knowledge and ultimately feel a sense of achievement. We provide opportunities for
pupils to be creative and solve problems by building their own programmes and applications for example.
Below are the key stage 4 GCSE Computing and Non-GCSE Computing units organised by 10 curriculum themes.
Algorithms
Programming
Computing Systems
Network
Creating Media
Impact of Technology
Data Representation Binary, Hex Conversions & Ops Text Images & Sound Data
Capacity Compression
Programming Tracing & Exec. Prog. constructs Data types, structs Modularity
Quality Translators
Databases & SQL Relational databases SQL (Select, Insert, Update, Delete)