| 1.1.1 | Benefits of decomposition and abstraction | F4.4 Decomposition and abstraction |
| 1.1.2 | Benefits of subprograms | F4.1 Writing functions |
| 1.2.1 | Following and writing algorithms | F5.1 What an algorithm is, F5.2 Flowcharts |
| 1.2.2 | Algorithms with variables and data structures | F5.3 Pseudocode and the exam reference language |
| 1.2.3 | Algorithms with arithmetic, relational and logical operators | F2.3 else, elif and Boolean operators |
| 1.2.4 | The output of an algorithm | F2.7 Loop patterns, F5.4 Trace tables |
| 1.2.5 | Types of error | F1.4 Errors: syntax, runtime and logic |
| 1.2.6 | Standard sorting and searching algorithms | F5.5 Linear search, F5.6 Binary search, F5.7 Bubble sort, F5.8 Insertion sort |
| 1.2.7 | Fitness for purpose and efficiency | F5.9 Merge sort and comparing algorithms |
| 1.3.1 | Truth tables | F9.1 Logic gates and truth tables, F9.2 Logic circuits and expressions |
| 2.1.1 | Binary represents data | F8.1 Bits, bytes and units |
| 2.1.2 | Unsigned and two's complement integers | F8.5 Negative numbers: two's complement |
| 2.1.3 | Denary and 8-bit binary | F8.2 Binary and denary, F13.5 Number and data questions |
| 2.1.4 | Binary addition and shifts | F8.4 Binary addition, overflow and shifts |
| 2.1.5 | Overflow | F8.4 Binary addition, overflow and shifts |
| 2.1.6 | Hexadecimal | F8.3 Hexadecimal |
| 2.2.1 | Characters: 7-bit ASCII | F8.6 Characters: ASCII and Unicode |
| 2.2.2 | Bitmap images | F8.7 Images |
| 2.2.3 | Sound | F8.8 Sound |
| 2.2.4 | Limits of binary representation | F8.8 Sound |
| 2.3.1 | Units of storage, in binary multiples | F8.1 Bits, bytes and units |
| 2.3.2 | Compression | F8.9 Compression |
| 3.1.1 | The von Neumann stored program concept | F9.3 Hardware, software and von Neumann, F9.4 The CPU and fetch-execute, F9.6 Memory |
| 3.1.2 | Secondary storage | F9.7 Secondary storage |
| 3.1.3 | Embedded systems | F9.8 Embedded systems: inside BugBot |
| 3.2.1 | Operating systems | F9.9 Operating systems and utilities |
| 3.2.2 | Utility software | F9.9 Operating systems and utilities |
| 3.2.3 | Robust software | F6.1 Defensive design and validation |
| 3.3.1 | Low-level and high-level languages | F6.5 Languages and translators |
| 3.3.2 | Interpreters and compilers | F6.5 Languages and translators |
| 4.1.1 | Why networks | F10.1 What is a network? |
| 4.1.2 | LAN and WAN | F10.1 What is a network? |
| 4.1.3 | How the internet is structured | F10.5 Addresses and packets, F10.6 The internet, DNS and the cloud |
| 4.1.4 | Wired and wireless | F10.2 Network hardware and connections |
| 4.1.5 | Network speeds | F10.3 Network performance |
| 4.1.6 | Protocols | F10.7 Protocols, F10.9 Project: reliable delivery |
| 4.1.7 | The 4-layer TCP/IP model | F10.8 Layers |
| 4.1.8 | Topologies | F10.4 Network topologies |
| 4.2.1 | Network security | F11.4 Network attacks, F11.7 Defending a network, F11.9 Project: secure the robot |
| 5.1.1 | Environmental issues | F12.1 Impacts of technology, F12.5 Technology and the environment, F12.6 The digital divide and accessibility, F12.9 Project: an impact report, F13.6 Long answer questions |
| 5.2.1 | Personal data | F12.2 Personal data and privacy |
| 5.2.2 | AI, machine learning and robotics | F12.7 AI, robots and bias, F12.8 Technology, jobs and daily life |
| 5.2.3 | Intellectual property | F12.3 Computer misuse and the law, F12.4 Copyright and licences |
| 5.3.1 | Threats: malware and social engineering | F11.1 Why cyber security, F11.2 Malware, F11.3 Social engineering |
| 5.3.2 | Protecting digital systems | F11.6 Encryption, F11.8 Writing secure programs |
| 6.1.1 | Decomposition and abstraction in code | F4.4 Decomposition and abstraction |
| 6.1.2 | Read, write, analyse and refine programs | F6.4 Debugging logic errors |
| 6.1.3 | Algorithms into code | F13.9 Project: the revision robot |
| 6.1.4 | Readable code | F1.5 Comments and readable code |
| 6.1.5 | Finding and correcting errors | F6.4 Debugging logic errors, F6.6 The IDE |
| 6.1.6 | Test data and evaluation | F6.3 Testing and test data |
| 6.2.1 | Structural components of programs | F2.1 Blocks and indentation |
| 6.2.2 | Sequence, selection, repetition and iteration | F1.1 What a program is, F2.4 Nested selection and match, F2.5 Count-controlled loops: for, F2.6 Condition-controlled loops: while, F3.4 Iterating over a list |
| 6.3.1 | Primitive and structured data types | F1.8 Data types and casting, F3.3 Lists: one-dimensional arrays, F3.5 Two-dimensional arrays, F3.6 Records |
| 6.3.2 | Variables and constants | F1.6 Variables, constants and assignment |
| 6.3.3 | String manipulation | F3.1 String handling, F3.2 Character codes and conversion |
| 6.4.1 | Responding to user input | F1.2 Output: print, F1.7 Input from the user |
| 6.4.2 | Reading and writing CSV files | F7.1 Reading and writing files |
| 6.4.3 | Validation | F6.1 Defensive design and validation |
| 6.4.4 | Authentication | F6.2 Authentication, F11.5 Passwords and authentication |
| 6.5.1 | Arithmetic operators | F1.9 Arithmetic operators |
| 6.5.2 | Relational operators | F2.2 Selection: if |
| 6.5.3 | Logical operators | F2.3 else, elif and Boolean operators |
| 6.6.1 | Built-in, library and user-devised subprograms | F1.3 Calling functions, F3.7 Random numbers, F4.5 Libraries and your own modules |
| 6.6.2 | Writing functions and procedures | F4.1 Writing functions, F4.2 Parameters and return values |
| 6.6.3 | Local and global variables | F4.3 Local and global variables |