Computing teacher: Mark Cullen
The Teach Computing curriculum is structured into units for each year group, and each unit is broken down into lessons. Units can generally be taught in any order, with the exception of programming, where concepts and skills rely on prior knowledge and experiences. Lessons must be taught in numerical order.
Year 10 Autumn Term 1
This extensive programming unit takes learners from being complete novices to having the confidence to tackle any GCSE level programming challenge. Essential programming theory is also interleaved into the practical elements of programming to provide tangible links between required knowledge and skills.
Lesson 1 Translators
In this lesson, learners are introduced to the notion that humans interpret instructions differently to computers. This is to help them understand that computers need clear and precise instructions in order to perform the expected task. Learners are also taken on a journey from machine code to high level languages in order to discover how a computer interprets instructions.
Learning objectives
- Compare how humans and computers interpret instructions
- Explain the differences between high- and low-level programming languages
- Describe why translators are necessary
- List the differences, benefits and drawbacks of using a compiler or an interpreter
Lesson 2 Sequence
In this lesson, learners are introduced to your chosen Python IDE. They learn about the function of an IDE and why programmers use these to write programs. Learners are given some simple code to predict, run, investigate and modify. Whilst they take their first steps in Python programming, they will also learn about common errors and error types.
Learning objectives
- Use subroutines in programs
- Define a sequence as instructions performed in order, with each executed in turn
- Predict the outcome of a sequence and modify it
- Interpret error messages and define error types and identify them in programs (logic, syntax)
- Describe the tools an IDE provides (editors, error diagnostics, run-time environment, translators)
GCSE Lesson 3 Variables
Learners will find out about variables during this lesson. They will learn about the purpose of variables but also the necessary 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 is given to allow learners to gain an insight into its meaning.
Learning objectives
- Use meaningful identifiers
- Determine the need for variables
- Distinguish between declaration, initialisation and assignment of variables
- Demonstrate appropriate use of naming conventions
- Output data (e.g. print (my_var))
Lesson 4 Input
During this lesson learners will start to add interactivity to their programs by introducing the input() function. Learners are given a demonstration of how input() is used in Python and then asked to add this feature in their silly stories that were created last lesson. Learners are then introduced to the five main data types that they need to understand. This is done first through theory teaching and then a practical activity where learners predict, run and investigate a program that includes the five data types. Whilst learning about input, learners are also introduced to functions and data validation techniques. These will be covered in more detail later on in the course.
Learning objectives
- Obtain input from the keyboard in a program
- Differentiate between the data types; integer, real, Boolean, character, string
- Cast variables by calling a function that will return a new value of the desired data type
- Define runtime errors in programs
- Define validation checks
Lesson 5 Flowcharts
The focus of this lesson is for learners to interpret and create flowcharts. They use their knowledge of writing simple sequences and subroutines to follow a flowchart and write the code that it represents. They are also given time to write their own, simple flowcharts in order to practise using the symbols that they have learnt during the lesson. This is an introduction to flowchart design and this will be built upon throughout the unit.
Learning objectives
- Identify flowchart symbols and describe how to use them (start, end, input, output, subroutine)
- Translate a flowchart into a program sequence
- Design a flowchart for a program
In this unit, learners will gain an understanding and knowledge of how computer systems work. Starting with the building blocks of the microprocessor - logic gates - learners will discover how a computer system works and executes instructions. (NOTE: there are two learning graphs)
Lesson 6 Computer systems and system software
This is the first lesson in the ‘Computer systems’ unit. It will introduce learners to the two types of computer systems: general purpose and embedded systems. They will explore the characteristics of these systems, and will learn how to identify embedded systems through practical activities. Following this, learners will discover the need for system software to facilitate communication between software and hardware in computer systems. You will explain the role of an operating system, and learners will match each description to the component, to help them with exam questions.
Learning objectives
- Understand the difference between embedded and general purpose computer systems
- Describe the role of system software as part of a computer system
- Explore the role of the operating system and utility software
Lesson 7 Introduction to the CPU
In this lesson the learners are introduced to the CPU and von Neumann architecture. They will learn about the individual components of the CPU and their roles in computation. Learners will find out about von Neumann and his theories that form the basis of modern computer architecture.
Learning objectives
- Describe the basic components of the CPU
- Understand the roles and purpose of each component of the CPU in computation
Lesson 8 The FDE cycle
In this lesson, the learners’ knowledge about the components that make up the CPU and main memory will be furthered with the introduction of the fetch-decode-execute cycle (FDE). Learners will be able to connect the parts of the CPU to their role in executing instructions visually.
Learning objectives
- Explain how the fetch-decode-execute cycle works by describing what happens at each stage
- Describe the role of each part of the CPU as part of the fetch-decode-execute cycle
Lesson 9 Main memory
In this lesson learners will be introduced to main memory, RAM and ROM, as well as cache. This lesson builds on the core knowledge from the previous lesson about CPU components.
Learning objectives
- Describe the characteristics of RAM and ROM
- Explain the role of main memory as part of a computer system
- Define cache memory
- Describe the role of cache in a computer system
Lesson 10 Secondary storage
In this lesson, learners will be introduced to secondary storage and take an in-depth look at solid-state storage. You will guide them to discover the need for secondary storage, through assessing the devices they have learnt about already. By the end of the lesson, learners will be able to explain how solid-state storage stores data, and describe the advantages and disadvantages of those devices.
Learning objectives
- Explain why a computer system needs secondary storage
- State the different types of secondary storage and describe their functional characteristics
- State how solid-state memory works and describe its characteristics
Lesson 11 Optical and magnetic storage
This lesson builds on from the first secondary storage lesson; it involves exploring optical and magnetic storage devices. Learners will need to be aware of how each type of storage operates, and to explain how data is written and read from each device. The last activity has them synthesising the characteristics of the storage mediums to compare them. Using a combination of their learning, and a reference table, learners will actively rank the mediums in each of the key areas of comparison.
Learning objectives
- Explain how optical and magnetic memory stores data in the form of binary
- Describe how data is read from and written to optical and magnetic memory
- Apply knowledge of storage devices to compare the three mediums of storage
Lesson 12 Selecting a storage device
This is the last of three lessons on secondary storage. The previous two lessons have equipped the learners with the knowledge they need to systematically select and justify a device for a given use. This lesson will model that process for the learners, and then lead to them completing the full process on their own. The second half of the lesson explores the limits of physical storage and how cloud storage can fill the gaps. Learners will examine cloud storage and answer GCSE-style questions on the impacts of cloud storage.
Learning objectives
- Apply the knowledge of storage devices to recommend an appropriate device
- Describe the limitations of secondary storage
- Explain the definition of ‘cloud storage’ and describe the characteristics of cloud storage
Lesson 13 Computer specifications
This lesson will teach your learners how to evaluate a computer based on its specifications. They will discover the factors that limit a CPU’s performance: clock speed, cache, and the number of cores. Learners will then use a computer component website to build computer systems of their own. This activity is designed to put their understanding of computer systems into a real-world context. Selecting components to a budget will force learners to make compromises and to examine the importance of the components.
Learning objectives
- Explore the factors that impact a CPU’s performance
- Select components to create a computer system
- Evaluate a computer’s suitability for a given task
Lesson 14 Computer systems quiz
The beginning of this unit has introduced the essential components of computer systems to your learners. This lesson offers them an opportunity to revise that knowledge while engaging in a fun software project. The learners will be using the questions they have produced in the previous plenaries to make a quiz they can use for revision. The quiz project serves as a fun way for them to revisit the different components, but the project will also help them with the next few lessons. After this, you will be looking at how computers execute programs; the quiz serves as a knowledge activator for that learning.
Learning objectives
- Revise computer systems content covered so far
- Design and implement a software project
Lesson 15 Logic gates
Year 10 Autumn Term 2
In this lesson, learners will discover logic gates — the building blocks of processors at the heart of a computer system. Through the activities they will build an understanding of how logic gates are used to address real-world problems.
Learning objectives
- Discover the logic gates AND, NOT, and OR, including their symbols and truth tables
- Learn how logic gates are used in carrying out computation
- Design a logical circuit, combining logic gates to solve a problem
Lesson 16 Logic problems
In this lesson, learners will be introduced to the concept of three-input logic problems, and will be taught how to construct a three-input logic diagram, truth table, and expression. Links will be made to show that computer circuits are made of logic gates, through an explanation of how you can use logic gates to construct a binary adder.
Learning objectives
- Construct truth tables for a three-input logic circuit
- Write a Boolean expression to describe a logical circuit
- Describe how combinations of logic gates can perform mathematical operations
Lesson 17 Assembly language programming I
This is the final set of lessons for the ‘Computer systems’ unit, a double lesson in which learners will design and write their own assembly language program. You will build them up to this task, first modelling the translation of a Python program into assembly, and then moving on to analysing and tracing an assembly language program as it runs. Over the course of the lesson, learners will build up a ‘toolbox’ of assembly language commands.
Learning objectives
- Explain the basic commands in the LMC’s assembly code: INP, OUT, STA, LDA, ADD, SUB, and BRP
- Determine that assembly language has a 1:1 relationship with machine code
Lesson 18 Assembly language programming II
This final lesson involves one last project: the learners will be given a set of requirements and tasked with first designing a Python solution and then an assembly language program to meet the requirements. There is an assessment for the learners to complete to round off the unit and test their understanding.
Learning objectives
- Design and write your own program in assembly language
This extensive programming unit takes learners from being complete novices to having the confidence to tackle any GCSE level programming challenge. Essential programming theory is also interleaved into the practical elements of programming to provide tangible links between required knowledge and skills.
Lesson 19 Randomisation
In computer science, random numbers are something that you are likely to use regularly. They are also used in areas such as cryptography, whilst pseudo-random numbers are used in video games, modelling and simulations. In this lesson, learners are introduced to the concept of random numbers using Python documentation. Learners will determine what the random module is capable of and how random numbers can be generated in Python.
Learning objectives
- Be able to locate information using the language documentation
- Import modules into your code
- Demonstrate how to generate random numbers
GCSE Lesson 20 Arithmetic expressions
This lesson has been designed to ensure that learners understand the rules of operator precedence when evaluating arithmetic expressions. They will be reminded of BIDMAS before investigating code that uses various arithmetic expressions. This lesson prepares them up for next lesson where they will begin to use conditions in programming.
Learning objectives
- Evaluate arithmetic expressions using rules of operator precedence (BIDMAS)
- Write and use expressions that use arithmetic operators (add, subtract, multiply, real division, integer division, MOD, to the power)
- Assign expressions to variables
Lesson 21 Selection
This lesson moves learners on to the next big programming construct, selection. They are introduced to it initially through a flowchart which demonstrates how a condition can be used to control the flow of execution in a program. They are then introduced to definitions for logical expressions and conditions. A short activity is used to allow learners to grasp how logical expressions evaluate. They then complete a PRIMM activity where they investigate and modify a Chatterbot. Finally, peer instruction is used to assess their learning.
Learning objectives
- Define a condition as an expression that can be evaluated to either True or False
- Identify flowchart symbols and describe how to use them (decision)
- Identify that selection uses conditions to control the flow of execution
- Walk through code that includes selection (if, elif, else)
GCSE Lesson 22 Selection challenge
This lesson is an extension of lesson 8 where learners completed a PRIMM activity that introduced them to selection. This is the “make” part of PRIMM where learners will complete a pair programming activity to create a Joke Machine. This will allow learners to apply their new knowledge to a new but similar scenario.
Learning objectives
- Use selection statements in a program
- Identify when selection statements should be used in programs
- Write and use expressions that use comparison operators (equal to, not equal to, less than, greater than, less than or equal to, greater than or equal to)
Lesson 23 Logical expressions
This lesson continues to deepen learners’ understanding of logical expressions by introducing the operators AND and OR. It begins with a Parson's puzzle to check understanding of selection. It then moves on to an unplugged activity that introduces AND and OR. Learner's then walkthrough code and investigate it before writing their own logical expressions.
Learning objectives
- Describe how Boolean/logical operators can be used in expressions
- Walkthrough code that use conditions with Boolean/logical operators (AND, OR)
- Write and use expressions that use Boolean/logical operators (AND, OR)
Lesson 24 Nested selection
This lesson introduces learners to the concept of nesting if statements. It begins with a walk through of some basic nested statements to check learner understanding. Learners then follow the PRIMM approach and investigate a guess the animal game. Learners modify the game to improve the functionality of it.
Learning objectives
- Define nested selection
- Walk through code that uses nested selection
- Modify a program that uses nested selection
This extensive programming unit takes learners from being complete novices to having the confidence to tackle any GCSE level programming challenge. Essential programming theory is also interleaved into the practical elements of programming to provide tangible links between required knowledge and skills.
Lesson 25 While loops
This lesson allows learners to find out about using iteration in their programs. It will define iteration, give a code walkthrough of a while loop, and then use a ‘guess the number’ game as a practical example for using iteration. Live coding will be used to turn an if statement into a while loop, and learners will be given a series of challenges to extend the ‘guess the number’ game using programming skills that they have gained during this course.
Learning objectives
- Define iteration as a group of instructions that are repeatedly executed
- Modify a program to incorporate a while loop
Lesson 26 Trace tables
This lesson has been designed to deepen learners’ understanding of a while loop whilst introducing trace tables. Learners will be given an example of how to use a trace table, then they will be given various loops to trace. Trace tables are a valuable part of programming because they allow learners to walk through code and detect errors.
Learning objectives
- Use a trace table to walkthrough code that uses a while loop
- Use a trace table to detect and correct errors in programs
Lesson 27 For loops
This lesson is designed to introduce learners to the concept of a for loop. They will learn about the definition, and be shown how the range function can be used with a for loop. This lesson only focuses on the range function; the wider use of for loops will be covered later on in the unit. This will enable them to be able to compare a while loop and a for loop at an earlier stage in the unit. After a walkthrough of a for loop, learners will be given a times table generator to explore and modify. Finally, learners will compare a while loop to a for loop and develop definitions for each.
Learning objectives
- Define a for loop
- Walk through code that uses a for loop
- Modify a program that uses a for loop
- Compare a while loop and a for loop
Lesson 28 Data validation
Learners will spend this lesson finding out how to effectively add data validation techniques to their programs. They will learn why they are important, and how to incorporate them. Before this lesson, learners have only used a try and except technique that works once, then breaks the second time. This lesson will show them how to incorporate try and except inside a while loop. It will also show learners how to check the range of a value and if a user input has been left empty.
Learning objectives
- Determine the need for validation checks
- Use iteration to perform validation checks
Lesson 29 and 30 Pseudocode
Year 10 Spring Term 1
The next two lessons have been created to introduce learners to pseudocode, whilst giving them the opportunity to design a program. It has been designed over two lessons to give learners the time to get stuck into solving a problem. They will be designing and creating a FizzBuzz quiz as part of the main task. For the purpose of this unit, we shall use the Teach Computing pseudocode. You may wish to replace this with pseudocode from your chosen examination board.
Learning objectives
- Describe the purpose of pseudocode
- Translate pseudocode into a program
- Design and build a program using pseudocode
This extensive programming unit takes learners from being complete novices to having the confidence to tackle any GCSE level programming challenge. Essential programming theory is also interleaved into the practical elements of programming to provide tangible links between required knowledge and skills.
Lesson 31 Subroutines
Learners will determine why subroutines are used in programs. Live coding is used to improve a calculator-style program by introducing subroutines. Learners will discover the advantages of using subroutines, and how they are used for decomposition. They will also modify a subroutine that uses parameters.
Learning objectives
- Describe a subroutine
- Describe the purpose of parameters in subroutines
- Use procedures that accept arguments through parameters
- Describe how subroutines are used for decomposition
- List the advantages of subroutines
Lesson 32 Functions
During this lesson, learners will be introduced to functions. They have already used built-in functions when programming, but haven’t actually written their own yet. They will learn how to structure a function, and then use a trace table to trace the input, process, and output of various functions. They will then be shown how functions can be used for decomposition, and will take part in a pair programming/live coding activity where they modify a previous program to introduce functions. Finally, homework will be set to test learner understanding of functions.
Learning objectives
- Explain the difference between a function and a procedure
- Use trace tables to investigate functions
- Use functions to return values in programs
Lesson 33 Scope
Learners will be introduced to the concept of scope in this lesson. They will be briefed on the definitions, before being given example programs that show how local and global scope work in Python. There is an activity where learners will convert programs that use global variables into programs that pass values through parameters instead. This demonstrates that passing values through parameters can reduce the need for global variables. Learners will be then introduced to constants and how these work in Python before completing a lesson quiz.
Learning objectives
- Describe scope of variables
- Describe how parameters can reduce the need for global variables
- Identify when to use global variables
- Describe a constant
Lesson 34 XOR
Learners were introduced to logic operators in Lesson 10. At that point, they could only use AND and OR. Learners also need an understanding of how the XOR operator works. Python doesn’t have an XOR operator, so they will be creating their own function for one this lesson. Learners will be reminded of AND and OR and then introduced to truth tables. They will learn about XOR and complete a truth table for the operator. Next, they will dive into designing and creating a function for an XOR operator using worked examples for support.
Learning objectives
- Use a truth table
- Describe the function of an XOR operator
- Design and create a function for an XOR operator
Lesson 35 Structured programming
This lesson introduces learners to the structured approach to programming. They will learn to describe structured programming through a series of exercises. Firstly, learners will be introduced to the concept that all blocks of code should have one entry point and one exit point. They will be shown how to avoid breaks and multiple returns in their programs through some exercises. They will also see how to create a structure chart for a dog walking program. They will complete this in pairs, before attempting to complete the program independently using the structure chart as a guide. Completing these activities will help to build decomposition skills in your learners, whilst they discover the advantages of the structured programming approach.
Learning objectives
- Describe the structured approach to programming
- Explain the advantages of the structured approach
- Use the structured approach in programming
Lesson 36 and 37 Create a program
This lesson begins with an exploration of the different ways to test programs with a few example tests to complete. Learners will be introduced to their project, which will be used to check their understanding of all the concepts covered up to this point. As they create their program, they will use their testing skills to perform tests on the program. The program is quite complex and some scaffolding has been provided. It is expected that learners will reach different levels of completion for this project. A rubric has been provided to help you assess the project. Although two lessons have been allocated for this project, you might decide that more time is required. You should use your professional judgement to increase the time allowance if needed.
Learning objectives
- Describe iterative testing
- Describe the types of testing (erroneous, boundary, normal)
- Design and create a program
The main focus of this unit is on searching and sorting algorithms, though other topics are covered, such as computational thinking, flow charts, and tracing algorithms. Students will have opportunities to analyse, interpret, modify, and implement a range of algorithms. (NOTE: there are two learning graphs)
Lesson 38 Computational thinking
In this lesson, learners are introduced to three computational thinking techniques: decomposition, abstraction, and algorithmic thinking. Learners will explore how these skills can be applied when solving a wide range of problems, both computer-based and throughout their everyday lives. They will be using these techniques throughout this unit when analysing and solving problems, especially around searching and sorting data. Learners will be provided a new problem that they have to help solve by applying decomposition, abstraction, and algorithmic thinking. There will be an opportunity for learners to peer/self assess their work and participate in discussions around computational thinking.
Learning objectives
- Define the terms decomposition, abstraction and algorithmic thinking
- Recognise scenarios where each of these computational thinking techniques are applied
- Apply decomposition, abstraction and algorithmic thinking to help solve a problem
GCSE Lesson 39 Representing algorithms
The main focus of this lesson is on developing flowcharts. This lesson assumes that learners have already covered the flowchart lesson in the KS4 Programming unit but can also be used to introduce the symbols if required. A step-by-step worked example of a flowchart for a coin toss game is used to cover each of the flowchart symbols apart from subroutines, though you can ask learners to develop the dice roll simulation in the worksheet as a subroutine. Learners are also introduced to using structured English to specify the steps of an algorithm in detail, though this is referred to as “written descriptions” throughout the unit so as to not introduce more terminology than is necessary. Structured English is used to describe each of the searching and sorting algorithms later in the unit so that learners can focus on the logic of the algorithm, before later being shown programmed examples of all bar merge sort.
Learning objectives
- Describe the difference between algorithms and computer programs
- Identify algorithms that are defined as written descriptions, flowcharts and code
- Analyse and create flowcharts using the flowchart symbol
Lesson 40 Tracing algorithms
For this lesson, learners will be shown examples of tracing a Python program and a flowchart. Trace tables are great for walking through an algorithm and are often used to locate logic errors. However, the focus of this lesson is mainly on using a trace table to understand how the algorithm works as this is what learners will use trace tables for in the coding searching and sorting algorithms lessons, which are lessons 6 and 9 of this unit respectively. That being said, there is a logic error in the second task of the worksheet for finding the lowest number in a list which learners will use a trace table to detect. The working code for all the algorithms is linked below. It is assumed that learners have already covered the lessons on selection, while loops, for loops, nested loops, and lists in the KS4 Programming unit. These concepts are essential to analysing and interpreting the code for the searching and sorting algorithms later on in this unit. Learners should also be familiar with calculating integer division and modulo in Python, which is covered in lesson 7 of the Programming unit. Integer division is key to the binary search program in this unit.
Learning objectives
- Use a trace table to walk through code that contains a while loop, a for loop and a list of items
- Use a trace table to detect and correct errors in a program
This extensive programming unit takes learners from being complete novices to having the confidence to tackle any GCSE level programming challenge. Essential programming theory is also interleaved into the practical elements of programming to provide tangible links between required knowledge and skills.
Lesson 41 GUIs
This lesson introduces learners to the world of GUIs (Graphical User Interfaces) using the Tkinter framework, Python’s standard GUI toolkit, to create GUI applications. This will give learners the experience of using a built-in module while exploring the differences between event-driven programming and procedural programming. Procedural programs execute code in a sequence, whereas event-driven programs react to events triggered by the user or sensors. Learners will discover how GUIs differ from the sequential programs they have created so far, before making their own app that adds two numbers together. They will then be challenged further with the creation of a joke machine. These programs will be familiar to the learners but will now be represented in a GUI environment.
Learning objectives
- Define the term GUI (Graphical User Interface)
- Understand the basics of the Tkinter framework
- Use Tkinter to create an event-driven program that uses a GUI
Lesson 42 String handling I
This lesson introduces learners to string-handling techniques. They will be given two new techniques to use (length and access a character), before they are given a programming challenge where they use these techniques in a ‘guess the word’ game. Next, they will be shown how a string can be iterated over using a for loop. A walk through is used to help learners build a mental model of how this works. They will then be asked to use this technique to add extra functionality to their ‘guess the word’ game. Finally, learners will explore the Python documentation for different string methods.
Learning objectives
- Describe the function of string operators
- Use string handling techniques
- Use for loops with string operations
Lesson 43 String handling II
In this lesson, learners will be introduced to three new techniques that can be used with string handling. The first two focus on substrings. Learners will be shown how to slice a string and hold it in a variable. Next, learners will find out how to check for a substring within a string. Finally, learners will be introduced to ASCII conversion techniques and presented with a challenge to create a message decoder. This lesson covers a number of programming challenges and learners might not complete them all in the time given. Time has been given for learners to spend longer on these challenges in the next lesson if required.
Learning objectives
- Use a substring in a program
- Use the in operator to check for a substring
- Use chr() and ord() to perform ASCII conversions
Lesson 44 String handling III
Year 10 Spring Term 2
This lesson allows learners to create a program that uses a variety of string handling techniques. It also makes use of the random module. Learners have not seen this for a while, so a starter activity has been created to help familiarise them with this again. This lesson is intentionally shorter than a typical lesson to allow for additional time that might be required from the last lesson. The main activity for this lesson is to produce a program that will create a secure password based on three random words. It uses randomisation and string handling techniques to produce the secure password.
Learning objectives
- Create a program that uses string handling techniques
Lesson 45 Arrays and lists
This lesson introduces learners to the data structures: arrays and lists. It defines them and explains the differences between the two. It then moves on to focus on lists in Python. Learners will use lists to create a ‘Simon says…’ game, which randomly selects instructions from a list of items. They will then move on to learning about append() and remove(), and perform a shopping list activity where they practise using the methods.
Learning objectives
- Define a data structure
- Define a list and an array
- Describe the differences between lists and arrays
- Use a list in a program
- Append to a list
Lesson 46 List methods
This lesson introduces learners to the many other list methods that can be used in programming. These were briefly introduced at the end of the last lesson. It also demonstrates that a list can be traversed using a for loop in much the same way as we can iterate over a string. Learners will complete an activity where they populate a deck of cards and perform some list operations and methods on the deck. Finally, learners will be shown that lists can be returned from a function. Live coding will be used to demonstrate how to do this, and how to create custom built functions.
Learning objectives
- Traverse a list of elements
- Use list methods
- Create a function that returns a list
- Import custom built functions
Lesson 47 Sense HAT I
This lesson uses the Raspberry Pi Sense HAT to explore the use of lists. Learners will either use the physical device or an emulator accessed via Trinket to interact with a Sense HAT. This lesson introduces the Sense HAT with some basic techniques in preparation for the next lesson where they will be given a programming challenge to complete. The reason for using a Sense HAT is that it offers a different insight into programming whilst giving learners the opportunity to use a list. A list can be used with the LED matrix to control the individual LEDs. For this lesson it might be helpful if learners were aware of how RGB colours work. This is covered in the data representation unit.
Learning objectives
- Use lists to display output on a physical computing device
Lesson 48 Sense HAT II
This lesson gives learners the opportunity to complete three small projects with the Sense HAT. Through the first two activities they will learn how to add random items to a list by using choice() and append(). They will then finish the lesson by creating a magic 8 ball that works with the Sense HAT. Finally, learners will have some time to showcase their favourite projects to the class.
Learning objectives
- Use randomisation to append items to a list
Lesson 49 2D arrays and lists
Learners will be introduced to two-dimensional arrays and lists during this lesson. They will be defined and then learners will be shown how to access lists and single items in those lists before completing an activity where they practice these skills. Next, learners will find out how to change and append a 2D list through demonstration, before creating their own password manager programs.
Learning objectives
- Define a 2D array and a list
- Use a 2D list in a program
Lesson 50 and 51 2D lists challenge
This lesson begins with reminding learners about iterative and final testing. Learners will be introduced to their challenge, which is to create a noughts and crosses game. As they create their program, they will use their testing skills to perform tests on the program. The program is quite complex and some scaffolding has been provided. It is expected that learners will reach different levels of completion for this project. A rubric has been provided to help you assess the project. Although two lessons have been allocated for this project, you might decide that more time is required. You should use your professional judgement to increase the time allowance if needed.
Learning objectives
- Use a 2D list as part of a programming challenge
This unit allows learners to gain the understanding and skills required for the data representation sections of the GCSE computer science exam. First, learners look at binary and hexadecimal numbering systems, how they work, and how to convert between bases. Then, learners explore different coding systems and find out how text, images, and sound are represented in computers. All lessons include worksheets to allow learners to explore each topic through practical application. (NOTE: there are three learning graphs)
Lesson 52 What is representation?
In this lesson, learners will be reminded of the need for written representation, and consider the fact that one thing can be represented in different ways. They will explore the concepts of data and instructions, to ensure that they have a clear understanding. Learners will then consider two-state systems such as bulbs and switches, and investigate how combining these in groups gives you more combinations. Finally, they will learn how this relates to computers, and they will be introduced to binary.
Learning objectives
- Give examples of the use of representation
- Explain that computers use binary to represent all data and instructions
- Explain how binary relates to two-state electrical signals
Lesson 53 Number bases
Learners will be reminded of how the base-10 number system works, before being presented with the base-2 number system. They will then complete some conversions from binary to decimal and decimal to binary.
Learning objectives
- Explain the difference between base-2 and base-10 numbers
- Convert between binary and decimal numbers
Lesson 54 Binary addition
Learners will discover how to count in binary so that they can establish an understanding of the patterns that occur when numbers increase by 1 in binary. They will then be shown the four rules of binary addition, before practising adding two binary numbers together. Finally, learners will move on to adding three binary numbers together.
Learning objectives
- Count in binary
- Perform addition in binary on two binary numbers
- Perform addition in binary on three binary numbers
Lesson 55 Binary subtraction
Learners will be introduced to the four rules of binary subtraction. They will then perform subtraction on a series of binary numbers.
Learning objectives
- Perform subtraction in binary
Lesson 56 Binary shifts
Learners will be introduced to binary shifting that can be used for multiplication and division of binary numbers. They will discover why binary shifting might be needed, and they will learn about overflow and underflow.
Learning objectives
- Perform binary shifts
- Describe situations where binary shifts can be used
- Explain how overflow errors can occur
- Explain how underflow occurs
Lesson 57 Signed binary integers
Learners will be introduced to the concept of signed and unsigned integers. They will find out how to identify the least significant and most significant bits. They will learn how to identify a positive and negative integer using sign and magnitude. Finally, they will discover two’s complement.
Learning objectives
- Compare signed and unsigned integers
- Use sign and magnitude to represent positive and negative integers
- Use two’s complement to represent positive and negative integers
Lesson 58 Hexadecimal
Learners will be reminded about base 2 and base 10, then they will be introduced to hexadecimal, which is base 16. They will be shown the traditional method for converting between base 2 and base 16, then they will learn about a simpler method that uses two tables to simplify the process.
Learning objectives
- Explain why and where hexadecimal notation is used
- Explain how numbers are represented using hexadecimal
- Convert decimal numbers to and from hexadecimal numbers
Lesson 59 Representing text
Learners will be introduced to the ASCII character set. They will learn that it traditionally used 7 bits, but now uses 8 bits. They will calculate the maximum number of characters that can be represented using 7 bits, then they will be introduced to the ASCII table. They will then practise coding words using decimal and binary numbers.
Learning objectives
- Determine the maximum number of states that can be represented by a binary pattern of a given length
- Explain how ASCII is used to represent characters, and its limitations
- Explain what a character set is
- Describe how character codes are commonly grouped and run in sequence within encoding tables
Lesson 60 Unicode and file size calculation
Year 10 Summer Term 1
The lesson begins with revisiting ASCII and its limitations, namely that it can only represent 128 characters. You will then introduce Unicode as an alternative for a more universal character set. Learners will then calculate the number of bits that are needed to store a piece of text using ASCII and Unicode.
Learning objectives
- Explain the need for Unicode
- State that Unicode uses the same codes as ASCII up to 127
- Calculate the number of bytes needed to store a piece of text
Lesson 61 Representing bitmap images
First, learners will investigate what a pixel is by looking at a pixelated image. They will then discover how colour depth and resolution are used to determine the number of available colours and the image size. Finally, learners will find out about metadata and the types of metadata used with a bitmap image.
Learning objectives
- Describe what a pixel is and how pixels relate to bitmap images
- Describe colour depth and resolution
- Define ‘metadata’
- Give examples of metadata applied to a bitmap image
Lesson 62 Bitmap file size calculation
First, learners will recap their understanding of bitmap images. They will then discover how to calculate the file size of a bitmap image using different examples. Then, they will investigate how the number of pixels and colour depth can affect the file size of an image.
Learning objectives
- Calculate the file size of bitmaps
- Describe how the number of pixels and colour depth can affect the file size of a bitmap image, using examples
Lesson 63 Representing sound
First, learners will be reminded of how sound travels. This will then lead into an explanation of how sound can be interpreted digitally. Through examples and demonstrations, learners will find out about the key terms: sampling, sample rate, and sample resolution.
Learning objectives
- Explain why analogue sound data needs to be converted into binary digits
- Describe the concepts of sampling, sample rate, and sample resolution
GCSE Lesson 64 Sound file size calculation
First, learners will recap their understanding of how sound is interpreted digitally. They will then learn how to calculate the file size of a sound file through demonstrations and examples. Finally, they will discover how sample rate, duration, and bit depth affect the quality of the sound recorded.
Learning objectives
- Calculate file size requirements of sound files
- Describe the effect of sample rate, duration, and sample resolution on the playback quality and the size of a sound file
- Give examples of metadata applied to sound files
Lesson 65 Measurements of storage
Learners will already be familiar with the terms ‘bit’, ‘nibble’, and ‘byte’. They will now learn about other types of storage capacity, and they will practise converting between units of measurement. They will also learn about the difference between storage capacities such as ‘megabyte’ and ‘mebibyte’ to help support them when performing calculations.
Learning objectives
- Define the terms ‘bit’, ‘nibble’, ‘kilobyte’, ‘megabyte’, ‘gigabyte’, ‘terabyte’, and ‘petabyte’
- Compare ‘kibibyte’, ‘mebibyte’, ‘gibibyte’, and ‘tebibyte’ to ‘megabyte’, ‘gigabyte’, and ‘terabyte’’
- Convert between units of measurement
Lesson 66 Lossy and lossless compression
Learners will be introduced to the concept of data compression and learn about why it is needed, and that it comes in different forms. They will be introduced to the terms ‘lossy’ and ‘lossless’.
Learning objectives
- Explain what data compression is
- Explain why data may be compressed, and that there are different ways to compress data
- Define ‘lossy compression’ and ‘lossless compression’
Lesson 67 Run length encoding
Learners will be introduced to run length encoding (RLE), which is a type of lossless compression. Through demonstrations and examples, learners will find out about frequency pairs and manually perform RLE on some data. Finally, they will learn about the term ‘compression ratios’ and calculate the compression ratios for different file sizes.
Learning objectives
- Explain how data can be compressed using run length encoding (RLE)
- Represent data in RLE frequency/data pairs
- Calculate compression ratios
Lesson 68 Huffman coding
Learners will be introduced to Huffman coding, which is another form of lossless compression. They will discover how the algorithm works and practise applying it to some sample data, and they will practise interpreting Huffman trees.
Learning objectives
- Explain how data can be compressed using Huffman coding
- Interpret a Huffman tree
- Calculate the number of bits required to store a piece of data compressed using Huffman coding
Lesson 69 Summative assessment
This is the final lesson of the unit, and is an opportunity for learners to confirm their understanding of the content covered in the unit. The assessment consists mostly of closed-form questions with a few longer, exam-style questions towards the end.
Learning objectives
- Summarise learning through a final assessment
The main focus of this unit is on searching and sorting algorithms, though other topics are covered such as computational thinking, flowcharts and tracing algorithms. Students will have opportunities to analyse, interpret, modify and implement a range of algorithms. (NOTE: there are two learning graphs)
Lesson 70 Linear search
In this lesson, learners are introduced to one of the two searching algorithms they need to know about - linear search. They 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. They will look into how searching is a common activity for both computers and humans and discuss how the instructions can differ when the items are unordered or ordered. At this point linear search will be introduced as the only reasonable way to search through an unordered list of items before being shown a demonstration in the slides using a number hidden under a row of cups. Learners will follow the instructions of a linear search themselves with a set of 10 cards in small groups. Afterwhich, they will be introduced to the best and worst-case scenario of the performance of an algorithm before carrying out a linear search on a small sample of data.
Learning objectives
- Identify why computers often need to search data
- Describe how linear search is used for finding the position of an item in a list of items
- Perform a linear search to find the position of an item in a list
Lesson 71 Binary search
In this lesson, learners are introduced to binary search; the second and final searching algorithm they need to know about. They 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. Learners will be made aware that a binary search is only possible if the data is ordered, otherwise a linear search must be performed or the data must be sorted. This is a great opportunity to acknowledge one of the reasons why sorting algorithms are useful before being introduced to them in the future lessons. They should also be able to identify why it is generally a more efficient algorithm than linear search when dealing with ordered data due to it’s “divide and conquer” nature. This should be made apparent to learners when going over the cup demonstration on the slides and when carrying out a binary search of their own with cards and a data sample. One of the challenges learners can often be faced with is knowing what item to check when there is an even number of items. To make things clear without the need for a mathematical formula, the slides state that the middle-left item should be the next midpoint. In the next lesson, learners will be presented with the Python code for a binary search which uses the expression midpoint DIV 2 to clarify this middle-left choice.
Lesson 72 Comparing searching algorithms
During this lesson, learners will compare the features of linear search and binary search and the suitability of each algorithm in different contexts. They will also interpret the code of both algorithms in Python, as well as analyse the efficiency of two implementations of the linear search algorithm. There are demo versions of linear search and binary search that output the steps of each comparison which are linked in the “You may also need” section below, where you will also find the commented code used in the slides and worksheets. Learners will start by analysing the factors that can affect the performance of linear and binary search: whether the data is ordered, the number of comparisons, and the simplicity of the algorithm. Next, they will perform a linear and binary search on a sample of data so they can visually compare the number of comparisons made when using each algorithm. The slides for the final two activities demonstrate and explain a step-by-step Python implementation for each searching algorithm. The slides for both the linear search and binary search in Python build up from the inside out, focussing first on how one comparison is made before adding the functionality to repeat this process. Each of the Python activities culminates with a worksheet that gets learners to further explore and understand the demoed code with questions and tracing the algorithm with a given set of data. Furthermore, a more efficient version of linear search is presented in a worksheet so learners can compare the efficiency of these two implementations.
Learning objectives
- Compare the features of linear and binary search and decide which is most suitable in a given context
- Interpret the code for linear search and binary search
- Trace code for both searching algorithms with input data
Lesson 73 Bubble sort
This lesson introduces learners to the first sorting algorithm in this unit, bubble sort. They 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. The sample data used in these worksheets and most of the other sorting algorithm worksheets is words instead of numbers as learners can often make mistakes when comparing if one word is higher or lower than another word. This will allow them plenty of practice in case they have to do this in an exam. Some learners can find writing the alphabet out helpful. The essence of sorting data is to make searching easier and this idea should frame the narrative of all the sorting lessons. They will start by performing a single pass first so they become used to the crux of the algorithm before doing multiple passes. By the end of the lesson learners should be able to execute a full bubble sort on a sample of data. They should also be aware that this algorithm is too slow for real world applications. It is, however, a good algorithm for introducing sorting algorithms and should be seen as a stepping stone to other sorting algorithms that perform better on large sets of data. Learners will also investigate a few ways to improve the efficiency of the algorithm, such as stopping if no swaps are made on a single pass and reducing the number of comparisons by one after each pass. This can result in the bubble sort algorithm being a viable option in some cases, for instance small sets of data that are nearly sorted.
Learning objectives
- Identify why computers often need to sort data
- Traverse a list of items, swapping the items that are out of order
- Perform a bubble sort to order a list containing sample data
Lesson 74 Insertion sort
In this lesson, learners will explore another sorting algorithm, insertion sort. Some exam boards do not require learners to know insertion sort so do check the specification first. They will start by discussing how they would sort objects in real life, which may lead them to describe something akin to an insertion sort. This should be especially apparent when adding a new item to a sorted group of objects. To begin with, the slides take learners through a broken down version of one pass of an insertion sort that reflects the coded solution introduced in the next lesson. Then the slides will take learners through multiple passes of an insertion sort which is how they will apply the algorithm when executing it on samples of data. Being able to recognise and highlight the sublists at different stages of an insertion sort is essential for showing the individual steps of an insertion sort and will help with understanding the coded implementation next lesson. Learners will get to practice performing an insertion sort on samples of data of their own which will include a partially worked example to support them with carrying out each pass of the algorithm. Again, words are used instead of numbers in the data samples as this is often what learners struggle more with and therefore need more practice.
Learning objectives
- Insert an item into an ordered list of items
- Describe how insertion sort is used for ordering a list of items
- Perform an insertion sort to order a list containing sample data
GCSE Lesson 75 Coding sorting algorithms
Year 10 Summer Term 2
In this lesson, learners will analyse and evaluate code for bubble sort and insertion sort in Python, as well as compare different implementations of the bubble sort algorithm. There are demo versions of bubble sort and insertion sort that output the steps of each pass which are linked in the “You may also need” section below, where you will also find the commented code used in the slides and worksheets and the 3 versions of bubble sort. Learners will first be presented with different statements referring to bubble sort and insertion sort where they have to work out whether they are true or false. The remaining slides demonstrate and explain a step-by-step Python implementation for each sorting algorithm, as well as two improvements to the bubble sort code. The slides for both the bubble sort and insertion sort in Python build up from the inside out, focussing first on how one pass is performed before adding the functionality to repeat this process. Each of the Python activities culminates with a worksheet that gets learners to further explore and understand the demoed code with questions and tracing the algorithm with a given set of data. Furthermore, a more efficient version of bubble sort is presented in a worksheet so learners can compare the efficiency of these two implementations.
Learning objectives
- Interpret the code for bubble sort and insertion sort
- Trace code for both sorting algorithms with input data
- Identify factors that could influence the efficiency of a bubble sort implementation
Lesson 76 Merge sort
During this lesson, learners will explore the final sorting algorithm in this unit, merge sort. They will start by considering how they might go about combining two groups of sorted items into one sorted group before being taken through the steps of one merge of a merge sort. This leads on to an activity that focuses solely on merging a pair of lists together so they can be comfortable with this process before moving onto the full algorithm. The slides will provide a further step-by-step visualisation of an entire merge sort, first splitting the lists until each item is in a list of its own and then merging pairs of lists in order. It is essential for learners to identify which pairs of lists should be merged together and which items in a pair of lists need to be compared at each stage in the algorithm. Learners will get to practice executing a full merge sort on the samples of data provided. Both worksheets contain a partially worked example to support them with merging lists together. They will also be given an overview of how well merge sort performs when compared to bubble sort.
Learning objectives
- Merge two ordered lists of items into a new ordered list
- Describe how merge sort is used for ordering a list of items
- Perform a merge sort to order a list containing sample data
Lesson 77 Algorithms review
In this lesson, learners will have time to practice and cement their knowledge on some of the things they have learnt throughout the algorithms unit. The worksheets contain a range of questions on flowcharts, searching algorithms, and sorting algorithms which will help prepare them for the summative assessment for this unit. The slides contain solutions to a select few tasks from the worksheets that will provide you with an opportunity to check learners’ understanding and discuss these questions. It will also be useful to get learners to peer-assess the worksheets as much as possible so that they can gain an insight into how other learners have answered the questions, especially the “describe” and “explain” questions.
Learning objectives
- Interpret algorithms and suggest improvements
- Analyse and fix errors in a flowchart
- Perform searching and sorting algorithms on samples of data
Lesson 78 Summative assessment
In the final lesson of the algorithms unit, learners will complete a summative assessment that will test their understanding of searching and sorting algorithms, flowcharts, tracing, and computational thinking terms. The type of questions mainly consist of multiple choice and short answer questions to make marking easier. Learners will start the lesson by exploring a piece of code in Python before developing the function for linear search in the program provided, which contains subgoal labels written as comments in the code.
Learning objectives
- Develop a linear search function in Python
- Complete the end of unit assessment
Lesson 79 Records and dictionaries
This lesson introduces learners to two new data structures. A record and a dictionary. The focus of this lesson is on records and how these can be created and used in Python to form a database. Learners will be shown how to use a dictionary as a record before creating a ‘database’ using dictionaries within a list. Note: This lesson uses a dictionary to represent a record because the record data structure isn’t available in Python. The standard use of dictionaries will be covered in the next lesson.
Learning objectives
- Describe the record data structure
- Use a dictionary to represent a record in a program
- Use a dictionary with a list to represent records in a database
Lesson 80 Dictionary challenge
This lesson gives learners the opportunity to use a dictionary data structure in a new context. Learners will create a Caesar cipher encryption program using a dictionary as the cipher wheel. This mini project will allow learners to develop their programming skills through an appropriate challenge and it can also be assessed using a rubric.
Learning objectives
- Describe the dictionary data structure
- Use a dictionary to produce key-value pairs
Lesson 81 Reading text files
Learners will be introduced to text files in this lesson. The focus will be on reading text files, and how the data from a text file can be used within a program. Learners will be stepped through the key methods that are used for reading text files in Python, before they complete two text file challenges.
Learning objectives
- Determine the purpose of external data files
- Read data from an external text file
Lesson 82 Writing to text files
This lesson continues the exploration of text files with the addition of writing and appending to files. Live coding will be used to introduce the two new concepts and mini challenges are used to allow learners to test their understanding of them.
Learning objectives
- Write to text files
- Append to text files
Lesson 83 Work with CSV files
Learners are already familiar with text files and how to read the data from them. A CSV file is still a text file and you can use the same methods and modes that you can with a standard file. However, you might use a CSV file for different purposes and operations. This lesson introduces learners to CSV files and will show them how to read data into a list and a 2D list, before setting them challenges where they will work with the data.
Learning objectives
- Describe a CSV file
- Read from a CSV file
- Use the split() method
- Select data from a collection of values
Lesson 84 Write to CSV files
Building on from the last three lessons, learners will discover how to write to CSV files. They work with 1D and 2D lists, before converting them to string and writing them to CSV files. There are lots of list challenges this lesson, which should help to enhance their skills in preparation for the final project. This lesson includes some complex challenges for your learners. You may wish to give them two lessons to complete this work or set one activity for homework.
Learning objectives
- Write data from a 1D list to a CSV file
- Write data from a 2D list to a CSV file
Lesson 85 Being a programmer
This lesson has been designed to round up the learning from this unit. It is the last lesson of new content before they take on their final projects. Learners will discuss the good habits of a programmer before being reminded of why some of the key aspects are good habits. Learners will also hear from industry programmers about their own good practice. Learners are then shown alternative approaches to programming solutions. This unit has consistently used specific approaches to help them learn different skills. They are now experienced enough to be able to see the other approaches and try them for themselves in their own programs. Finally learners will be shown how to append to a CSV file, before completing a challenge using their CSV skills and the alternative approaches learnt in today's lesson.
Learning objectives
- Determine the good habits of a programmer
- Explore alternative approaches to programming solutions
- Append to a CSV file
Lesson 86 Battle boats
This is the first in a series of eight lessons where learners complete their final programming challenge of the unit. This is their formal assessment for the unit. The project is very challenging, but it does cover everything that they have learnt over this unit. The key is, can they put it all together? This lesson focuses on familiarising learners with the game and the scenario. Learners will write their success criteria for the game to be used next lesson when they design their pseudocode or flowcharts.
Learning objectives
- Write success criteria for a challenging project
Lesson 87 Battle boats design
This is lesson two of an eight lesson project. Learners will now use their success criteria to help them with their design work. Examples are given to support learners before they spend the majority of the lesson thinking about their designs. This is a large, challenging project. You may wish to spread this over two lessons or set completion for homework if your learners need more time.
Learning objectives
- Design the program for a challenging project using flowchart or pseudocode
Lesson 88 to 91 Battle boats code
Year 11 Autumn Term 1
These four lessons are part of an eight lesson programming challenge. These lessons are designed to give learners time to code their solutions. They will also have the opportunity to complete a code log to track their progress as they go.
Learning objectives
- Create the solution for the battle boats program
Lesson 92 Battle boats test
This is the penultimate lesson of an eight lesson project. Learners will spend their time completing the final testing of their projects. You might wish to spread this lesson over two lessons if needed, or allow for homework time to finish if appropriate.
Learning objectives
- Perform final testing of the solution to a challenging problem
Lesson 93 Battle boats evaluate
This is the final lesson of the eight lesson project and the final lesson of the unit. Learners will spend time evaluating their progress against the original scenario given. They should reflect on their strengths and challenges through the completion of their solutions. Finally, learners will submit their projects ready for marking.
Learning objectives
- Evaluate a challenging program
Through a range of real-world examples, students will learn how to identify the specific type of impact, i.e. legal, cultural, privacy, environmental, and ethical. They will then progress to identifying stakeholders who are impacted by technology, and learn how these impacts are experienced, negated, or adapted to.
Lesson 94 How does technology impact us?
This lesson gives you time to introduce the subject of the impact of technology to learners. They will learn the significance of the five broad areas of impact, ie law, environment, culture, ethics, and privacy. They will identify and discuss the impact areas through genuine examples. Finally, learners will begin to understand the legal impact of technology specifically, and work through an example relating to the Data Protection Act (2018).
Learning objectives
- Apply the terms ‘privacy’, ‘legal’, ‘ethical’, ‘environmental’, and ‘cultural’
- Explain data legislation, including an organisation’s obligation to protect and supply data
Lesson 95 The law, data protection, and copyright
This lesson will further emphasise the different categories of impact. It will enable learners to further exercise their knowledge about data protection and clarify the definition of the word ‘stakeholder’. Learners will be encouraged to think about the stakeholders and examples of impact that a specific technology has had on them. They will learn about the relationship between data protection, the General Data Protection Regulation (GDPR), and the right to be forgotten. In addition, they will look in detail at copyright, learning about Creative Commons licensing and comparing open source and proprietary software.
Learning objectives
- Explain the term ‘stakeholder’
- Explain the right to be forgotten
- Distinguish the differences between legitimate creative uses and clear infringement of material subject to copyright
Lesson 96 The Freedom of Information Act and The Computer Misuse Act
In this lesson, learners will review the plenary mini quiz about the Data Protection Act and copyright from Lesson 2. In addition, they will be introduced to the Freedom of Information Act, and given the opportunity to experience genuine examples. Finally, they will learn about the Computer Misuse Act and categorise case studies by the different levels of offence.
Learning objectives
- Explain the Freedom of Information Act
- Define ‘computer misuse’ and the associated offences
- Identify situations that would be classified as an offence under the Act
Lesson 97 Cultural impacts
In this lesson, learners will understand what the term ‘cultural impact’ means. They will learn about downtime and its effect on businesses and individuals. In addition, they will closely examine the concept of ‘digital divide’ and work through examples of its impact. They will analyse the cultural implications of the growing use of mobile technology and the responsibility of stakeholders in mitigating any risks. Finally, they will share the impact that technology has on their lives, and for homework, consider looking more globally for further impact.
Learning objectives
- Define ‘downtime’ and explain the associated impact on an organisation
- Explain what is meant by the ‘digital divide’ and measures to mitigate its effect
- Identify positive and negative aspects of the use of mobile technology
GCSE Lesson 98 Privacy and surveillance
In this lesson, learners will discover the reality and limitations of privacy and surveillance. They will learn the laws that protect us directly, and others that enable the security services to protect us from harm. They will also learn about the tension between these requirements. In addition, they will consider the different technologies that we encounter in our daily lives and the privacy implications of these. In addition, they will learn about how social media platforms collect data, and become more informed about the data that they are making available through their engagement with technology. They will also learn about the environmental impacts of social media, though you will discuss this in more detail in Lesson 6. Finally, they will make a commitment to stay aware, and at the very least, sort out their own privacy settings on their devices.
Learning objectives
- Identify the implications of having personal data online
- Explain the social and environmental impacts of social media
- Explain the positive and negative effects of online content
Lesson 99 Environmental impact
In this lesson, learners will review the cultural impact of globalisation, which will build on concepts that they started to explore through the homework set in Lesson 4. In addition, they will discover the reality of technology’s impact on the environment. They will also learn about how technology, if utilised strategically, can be used to protect the environment and can be a preserver rather than a destroyer.
Learning objectives
- Explain the environmental effects of the use of technology
Lesson 100 Ethical impact
In this lesson, learners will review what the word ‘ethical’ means generally. They 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.
Learning objectives
- Explain the ethical issues surrounding the use of AI in society
- Explain the ethical impact of using algorithms to make decisions
Lesson 101 Putting it all together
In this lesson, learners will engage in a comprehensive end-of-unit assessment, covering aspects from each of the preceding seven lessons. The previous lessons covered the legal, cultural, environmental, and ethical aspects of the impact of technology. In addition, learners considered situations that impacted upon the privacy of individuals and that potentially had multiple impacts. They also considered the different potential stakeholders who either influenced or were influenced by the various impacts of technology. The assessment is directly based on the lessons in the unit, and the questions are all in multiple-choice format. At the end of the lesson, learners will also be invited to answer a question giving their own opinion about which technology has had the most negative or positive impact on society and why.
Learning objectives
- Demonstrate knowledge of the five impacts of technology
Computer networks have become an integral part of our daily lives. This unit allows learners to explore how a computer network works from the hardware required to the protocols used for communication. It also allows them to explore simulations of networks using Packet Tracer software. Packet Tracer is free for schools to use and is used in universities to train network engineers. (NOTE: there are two learning graphs)
Lesson 102 What is a computer network?
This lesson introduces learners to the term ‘computer network’. They develop their understanding by looking at other networks in the real world before discovering what a computer network is. They then discuss the advantages and disadvantages of a computer network before learning about the peer-to-peer model through an unplugged activity. Finally, learners are given real-world examples of peer-to-peer networks before completing a keyword matching exercise.
Learning objectives
- Define a computer network
- Discuss the advantages and disadvantages of computer networks
- Describe the role of a computer in a peer-to-peer network
GCSE Lesson 102 The client-server model
This lesson introduces learners to the client–server model by using a similar unplugged activity to the one used in Lesson 1 for peer-to-peer networks. This allows learners to see the similarities and differences between the two models. After discussing the advantages and disadvantages of the client–server model, learners are introduced to the three types of area network: PAN, LAN, and WAN. Finally, learners complete a mini quiz that assesses learning from the last two lessons.
Learning objectives
- Describe the role of a computer in a client–server network
- Describe the purpose of a PAN, LAN, and a WAN
Lesson 103 Network hardware
This lesson gently steps learners through the key hardware components required for communication across a network. They are first given definitions, using pause points to check recall. They are then given an activity where they spot the missing device from a network, before designing their own networks based on given scenarios. Finally, learners are given a quick ‘Who am I?’ quiz where they must decide which hardware component is being described.
Learning objectives
- Describe the tasks performed by the network hardware: wireless access point, router, switch, hub, NIC, and bridge
- Define a MAC address
Lesson 104 Network topologies
This lesson focuses on the four main network topologies: star, bus, mesh, and ring. Learners are introduced to each topology through a series of slides that illustrate how data is transferred between nodes. Learners are then given an activity sheet that lists the advantages and disadvantages of each topology; they use this to decide which network topology should be used for the given scenarios. For each scenario, learners draw the topology and justify their answers. Finally, learners are given a quick quiz to check which topologies they can remember.
Learning objectives
- Draw and describe a star, bus, mesh, and ring topology
- Describe the advantages and disadvantages of the star, bus, mesh, and ring topologies
- Select an appropriate topology for a given scenario
Lesson 105 Wired and wireless transmission media
Year 11 Autumn Term 2
This lesson introduces learners to wired and wireless transmission media. Transmission media is defined before going into the specifics of each type of transmission media. They are then given an activity where they must read about the advantages and disadvantages of each type and select the most appropriate transmission media for six given scenarios. Finally, learners are introduced to Packet Tracer, a popular network training tool used in industry and universities. Here, they add to pre-built networks and develop some essential networking skills.
Learning objectives
- Define a wired and a wireless network
- Define transmission media
- Describe the attributes of fibre optic and copper cables used in wired networks
- Describe Bluetooth as a mode of connection
- Discuss the advantages and disadvantages of wireless networks compared to wired networks
Lesson 106 Network performance and routing costs
This lesson begins with a quick check that learners have remembered some of the transmission media types covered in the last lesson. They then move on to look at the four main factors that affect network performance. A keyword matching exercise is used to check their recall of these terms. Next, learners are shown the formula for calculating the transmission time of a file over a network before attempting some calculations themselves. Finally, learners use the Packet Tracer software to investigate routing costs across a network.
Learning objectives
- Describe the factors that affect network performance (bandwidth, range, latency, number of devices)
- Determine how network speeds are measured and construct expressions involving file size, transmission rate, and time
- Determine methods of routing traffic on a network and calculation of routing costs
Lesson 107 What is the internet?
This lesson begins by testing learner recall and asking them to sketch each of the four topologies given. It then moves on to describing the internet from its invention to how it works now. Next, learners discover how a web browser is used to access the WWW by using DNS to find the IP address of each website. At this point, learners use the Packet Tracer software to see a simulation of this, which they can investigate. Finally, learners are given a more in-depth view of how DNS works and the different types of domain servers that are available.
Learning objectives
- Describe the internet as a network of computer networks
- Describe the function of an IP address
- Describe a DNS and its role in the conversion of a URL to an IP address
- Describe the role and function of a web browser
Lesson 108 Hosting services
This lesson builds on the knowledge covered in Lesson 7 where learners learnt how a web browser works and how web pages are located and presented on devices. Learners now take a look at web hosting and services that are hosted in the cloud. They take a tour of a Google data center whilst completing a scavenger hunt. Then they take a look at the environmental impacts of cloud computing and vote on whether it is positive or negative for the environment.
Learning objectives
- Describe how servers are used for hosting services across the internet
- Describe the role of web servers and clients
- Describe how the cloud provides services for software and storage
- List the advantages and disadvantages of the cloud
Lesson 109 Protocols
Learners begin by thinking about the types of rules there are for communication in the world that we live in. The term ‘protocol’ is then formally defined. They should already be familiar with this term as it has been used throughout the unit. Some of the most common networking protocols are then defined before learners complete a matching exercise. Finally, learners work in groups to create their own protocol and attempt to send a message. This is used to gently introduce them to the TCP/IP model that will be covered in Lesson 10.
Learning objectives
- Determine the need for standards in network communications
- Define the term network protocol
- Define the purpose and common use of the network protocols: Ethernet, WiFi, HTTP, HTTPS. FTP, POP, SMTP, and IMAP
Lesson 110 The TCP/IP model
This lesson is designed to deepen learner understanding of the protocols covered in the last lesson and how these protocols operate in the four layers of the TCP/IP model. It starts with a quick recap of what a protocol is. It then moves on to a brief description of the four layers of the TCP/IP model. Learners then take part in an unplugged activity that clearly shows how each of the four layers operate and how this works in relation to data transmission. They learn about segments, packets, and frames and how routing tables are used to decide the ‘next hop’ for the data. Finally, learners are given a repack and recap activity before a quick plenary to check if learners can remember the protocols used at each layer.
Learning objectives
- Describe the four layers of the TCP/IP model (Link, Internet, Transport, Application)
- Define the purpose and common use of the network protocols: TCP, IP, UDP
- Describe that the HTTP, HTTPS, SMTP, IMAP, and FTP protocols operate at the application layer
- Describe that the TCP and UDP protocols operate at the transport layer
- Describe that the IP protocol operates at the internet layer
- Describe the typical contents of a TCP/IP packet and packet switching
Lesson 111 The OSI model
Note: This is a short lesson that goes into the details of the OSI model. The OSI model only appears on one English examination board specification, which means that teachers of the other specifications may wish to skip this lesson. This lesson will not be referred to in subsequent lessons. This lesson introduces learners to the conceptual, OSI model. It provides descriptions for each of the seven layers and how these relate to the TCP/IP model that was covered last lesson. Learners are then given an activity sheet to complete that relates to the content covered in the slides. Finally, a plenary checks that they can remember the names of some of the seven layers.
Learning objectives
- Describe the purpose of each layer in the seven-layer Open Systems Interconnection model (OSI model)
- Describe the use of contemporary networking protocols in the seven-layer OSI model
Lesson 112 Protecting a network
This lesson starts by asking learners what data the school might hold about them. It also asks why it is important to keep that data safe. This will allow them to think about why it is so important to protect a network from cyber crime. Learners are then introduced to the two main types of attack, which are social engineering and malicious code. Next, learners use Packet Tracer to see a simulation of a pharming attack. Finally, learners play a network security game to introduce them to all of the threats and methods to protect a network before being asked to list some examples in the plenary.
Learning objectives
- Determine the need for and importance of network security
- Identify different forms of attacks on networks (social engineering, malicious software)
- Explain network security methods
Lesson 113 Summative assessment
his lesson gives the learners time to complete the summative assessment.
Learning objectives
- Recall knowledge of networks through a final, summative assessment
This unit enables students to gain knowledge and understanding of the range of cybersecurity threats impacting the world, our organisations, as well as us as individuals. Learners will explore security measures that can be put in place to protect networks and your data against different forms of automated and non-automated forms of attack. Once they have understood the impact of cybercrime, they will be inspired to be part of the solution, when they learn about the potential for lucrative and fulfilling careers in cybersecurity.
Lesson 114 The cost of cybercrime and hacker motivation
This lesson gives you time to introduce the subject of cybersecurity to your learners. They will begin to understand the difference between cybersecurity and network security and understand that although networks are wonderful inventions, they make an organisation vulnerable to attack. They will be given a sense of the size of the problem and how important it is that we understand a hacker’s motivation and take the subject seriously.
Learning objectives
- Define the terms cybersecurity and network security, explain their importance, and distinguish between the two
- Describe the features of a network that make it vulnerable to attack
- Describe the impact of cybercrime on businesses and individuals
- Analyse an attack on a company and identify what motivated the hackers
Lesson 115 Be suspicious part 1 - Non-automated cybercrime
This lesson enables the learner to distinguish between non-automated and automated cybercrime. Most of the lesson focuses on social engineering and introduces the idea that humans are the weakest link in the security chain. The learners will learn how to recognise and categorise different types of social engineering.
Learning objectives
- Identify and describe non-automated forms of cyberattack and how humans can be the weak points in an organisation
- Demonstrate knowledge of social engineering in role play and case studies
Lesson 116 Be suspicious part 2 - Automated cybercrime
This lesson builds on the previous one, which was about non-automated cybercrime, to enable learners to distinguish between non-automated and automated cybercrime. Learners will begin to understand terms and techniques related to automated cybercrime and the vulnerabilities in a network or software that make companies or individuals vulnerable to such attacks.
Learning objectives
- Describe automated forms of cyberattack
- Analyse a real cyberattack and identify the network or software weaknesses that enabled it to happen
Lesson 117 Software design as defence
This lesson builds on the previous lesson, which taught learners about the ways in which companies test their own vulnerability. In this lesson, the learners discover ways to protect software systems from design to access. It leads on to Lesson 5, in which the learners discover how businesses secure their existing networks.
Learning objectives
- Identify how software can be used to protect from cyberattacks
- Describe ways in which organisations use software to protect against cyberattacks
Lesson 118 Network design as defence
Year 11 Spring Term 1
This lesson builds on the previous lesson, which taught learners about the ways in which companies design software that discourages cybercrime and how they use software to avoid cybercrime. In this lesson the learners learn about ways to protect network systems from cybercrime. It leads on to Lesson 6, in which the learners discover how businesses investigate themselves to ensure that the steps they have taken to stay safe are effective.
Learning objectives
- Describe different ways to protect software systems and networks (2 of 2)
- Understand the need for, and importance of, network security
- Explain a number of methods of achieving network security
Lesson 119 Where is the danger?
This lesson builds on the previous ones about the different types of automated and non-automated cybercrime. Learners will begin to understand how companies can and do test their own vulnerability to cybercrime.
Learning objectives
- Describe different methods of identifying cybersecurity vulnerabilities, such as: penetration testing, ethical hacking, network forensics, commercial analysis tools, review of network and user policies
Lesson 120 Being part of the solution
This lesson enables the learners to engage in a comprehensive end of unit assessment, covering aspects from each of the preceding six lessons. In addition, it provides some inspiration for the learners to get involved with cybersecurity for themselves, for the benefit of their careers and wider society.
Learning objectives
- Evaluate the potential for cybersecurity careers
- Apply knowledge of cybersecurity to GCSE-style questions
This unit introduces learners to the world of databases and SQL. Learners explore the key terms used in a database and learn why relational databases are used to eliminate redundancy and inconsistencies that can occur in a flat file database. Next they explore increasingly challenging SQL commands where they retrieve, update and delete data in a relational database.
Lesson 121 Database essentials
Database essentials gives your learners the key terminology required to be able to use SQL to search and update a relational database. It steps learners through the key concepts using a music database as an example. First as a flat file database and then as a relational database. Learners are then given their first experience with a Database Management System (DBMS) where they learn to navigate and investigate some of the tools that they offer.
Learning objectives
- Describe a database
- Define database key terms (table, record, field, primary key, foreign key)
- Describe a flat file database
- Describe a relational database
Lesson 122 SQL searches
SQL is introduced into this lesson. Learners use the music database from the last lesson to write their first SQL commands. The activities start with learners retrieving data using SELECT, FROM and WHERE statements. They complete increasingly challenging tasks for different search terms. They then move on to retrieving data from multiple tables.
Learning objectives
- Describe the function of SQL
- Use SQL to retrieve data from a table in a relational database
- Use SQL to retrieve data from more than one table in a relational database
Lesson 123 Insert, update, delete
This lesson continues to build on previous learning where learners were introduced to SQL queries for the first time. In this lesson the learners will understand the purpose of INSERT, UPDATE and DELETE queries. They will have the opportunity to implement these queries using their music database and will be required to draw upon their learning from the last lesson to use SELECT. These queries will be used to help them work out how to solve other problems and to prove that their INSERT, UPDATE and DELETE queries work. The lesson will conclude by giving the learners a Parsons problem to solve based on an INSERT query.
Learning objectives
- Describe the function of different data types.
- Use SQL to insert, update and delete data into a relational database
Lesson 124 Swim challenge part 1
In this lesson the learners will bring together the learning that has taken place prior to this lesson. The main activity that will take this lesson and part of the next lesson is to complete an assignment based around building, interrogating and updating a database to manage swimming lessons. The learners will start the lesson by recapping some key learning points about database relationships. They will then be given time to work through the swim lesson activities before completing the lesson with a set of multiple choice questions.
Learning objectives
- Interrogate and update an existing database
Lesson 125 Swim challenge part 2
In the final lesson of the unit, the learners will continue to put in practice their database and SQL skills by completing the swim challenge exercises they started in the previous lesson. This lesson will also give the learners an opportunity to practice exam style questions by completing a more formal end of unit assessment.
Learning objectives
- Interrogate and update an existing database
In this unit students will gain an understanding of how websites are displayed within a browser using HTML and CSS. Starting with an introduction to how websites are requested and delivered to our computer via the internet and the World Wide Web.
Lesson 126 Introduction to HTML
In this lesson students will gain an understanding of what a website is and how it ends up in the web browser. Students should be able to then create a very simple HTML page and display it in the web browser by the end of the lesson. They should also be able to edit and refresh their page to view what has been changed.
Learning objectives
- Create a simple web page using basic tags
- Describe the purpose of HTML and tags when designing a website
Lesson 127 Images and links
This lesson allows students to extend the basic HTML tags learnt in the previous lesson to include images and interactive hyperlinks. Students will find and insert an image from the internet, followed by creating links to externally hosted websites, whilst also gaining an appreciation for what is meant by the term ‘accessibility’. These activities prepare students for lesson three, where students will plan and make a mini website to bring together their skills before moving onto studying CSS.
Learning objectives
- Describe what is meant by the term ‘accessibility’
- Extend a HTML page to include images <img> and hyperlinks <a href>
Lesson 128 Mini project
This lesson will serve as a recap/consolidation exercise on the first couple of lessons. Students will focus on what makes good website design and create two more pages for their website to link together. To enable students to be able to do this they will work with some example code to create a method of navigation for their pages. They will also learn about and be able to demonstrate the use of online images and locally stored images.
Learning objectives
- Identify the common features of existing websites and the basics of what makes good web design
- Design and create pages for a mini website
- Create hyperlinks between pages stored locally within a folder
- Insert images stored locally within a folder
Lesson 129 Introduction to CSS
This lesson gives you time to introduce CSS to your students. Students will begin to apply styling to the tags they have been studying in previous lessons. The idea of web standards is also discussed and students can pass their code through an HTML validator.
Learning objectives
- Describe the purpose of CSS and why it is needed in addition to HTML
- Experiment with CSS by changing the style of the tags learnt so far in this unit
Lesson 130 DIVs and classes
In this lesson students will extend their knowledge of CSS from the previous lesson to understand how to break their page up using DIVs and apply CSS to these using classes.
Learning objectives
- Describe the purpose of DIV tags
- Apply knowledge of CSS to DIVs within web pages using classes
Lesson 131 Layouts and the CSS box model
This lesson will be the last lesson before the two summative assessment lessons. In this lesson students will develop skills in wireframing a website and learn more about how to position elements using the CSS box model.
Learning objectives
- Explain how to plan a website by developing house style and sketched wireframe
- Apply skills to position items within a page
- Describe the box model in CSS
Lesson 132 Final project
Year 11 Spring Term 2
Students will now have the opportunity to show what they have learnt by making a three-page website, which will be assessed, and they will have some scope for experimentation.
Learning objectives
- Construct a three-page website to showcase the skills learned throughout this unit of study
- Self/peer evaluate the webpage produced using a rubric
Lesson 133 Summative assessment
In this lesson students will have an assessment which will test the knowledge they have gained throughout the unit. They will then have an opportunity to finish off their assessed website and a chance to showcase what they have made.
Learning objectives
- Extend/finish the assessed website
- Showcase the assessed website
- Demonstrate how much has been learnt by taking an end of unit test
This unit will give students an insight into a different programming paradigm. It aims to take them from a rote understanding of programming concepts to a more nuanced understanding of the ways they can choose to write programs. Using a combination of relatable examples (animals, vehicles and books) and practical activities the students will gain an understanding of the concepts of objects and classes.
Lesson 134 Programming paradigms
In this first lesson students will be reminded of the importance of programming conventions and their benefits to both readers and writers of programs. The activities will encourage students to think about the way they write programs. Students will explore the idea of programming paradigms, looking to procedural programming as an example of one they already use. In the last activity you will introduce the topic of this unit, object-oriented programming.
Learning objectives
- Describe the role of conventions in programming
- Recall that there are different paradigms for programming
- Define object-oriented programming
- Identify a class and object as a part of a program
Lesson 135 Classes and objects
During this lesson, students will be introduced to the concepts of classes and objects through a classification exercise to determine the properties shared by all animals. As the lesson progresses, students will learn and apply key terminology, and have the opportunity to create an object class and instantiate that object.
Learning objectives
- Describe the relationship between a class and an object
- Define attributes and methods as a part of a class
- Use a constructor to create objects
- Use a method and access an attribute on an object
- Model a real world problem using object oriented programming conventions
Lesson 136 Creating a class
In this lesson your students will be independently applying the learning they have been doing in the first two lessons of the unit. You will use the Pet class created in lesson two as a worked example for the students to apply in creating a new class. Students will be stepping into the role of a video game programmer, in a fictional game called Monster Quest they will be making a class to represent the monsters in the game.
Learning objectives
- Create a class
- Define the use of a self parameter in object-oriented Python
- Create a method on a class
- Access and modify attributes using getters and setters
Lesson 137 Inheritance
In this lesson your students will discover and define the object-oriented principle of inheritance. They will explore this concept first by relating it back to the Pet example used in the previous lesson, as well as defining key terms such as subclass and superclass. The practical part of this lesson will involve making two new subclasses for the Monster class they created last lesson. One of which you will model and the second they will do independently.
Learning objectives
- Define the principle of inheritance
- Define the terms superclass and subclass
- Select appropriate uses of inheritance
- Create a subclass in a program
Lesson 138 Assessment
In this final lesson of the object-oriented programming unit, students will undertake an assessment of their knowledge of the concepts and key vocabulary covered in the unit. The focus of this assessment will be a library tracker application made using OOP. Students will first explore the program and make notes on the classes used, before editing and adding to the program themselves.
Learning objectives
- Explore a program written using OOP
- Explain the key concepts of OOP