| 4.1.1.1 | Data types | A1.1 Data types and programming constructs |
| 4.1.1.2 | Programming concepts | A1.1 Data types and programming constructs, A1.10 Project: the behaviour controller |
| 4.1.1.3 | Arithmetic operations in a programming language | A1.2 Operations, strings and random numbers |
| 4.1.1.4 | Relational operations in a programming language | A1.2 Operations, strings and random numbers |
| 4.1.1.5 | Boolean operations in a programming language | A1.2 Operations, strings and random numbers |
| 4.1.1.6 | Constants and variables in a programming language | A1.1 Data types and programming constructs, A1.10 Project: the behaviour controller |
| 4.1.1.7 | String-handling operations in a programming language | A1.2 Operations, strings and random numbers |
| 4.1.1.8 | Random number generation in a programming language | A1.2 Operations, strings and random numbers |
| 4.1.1.9 | Exception handling | A1.3 Exception handling, A1.10 Project: the behaviour controller |
| 4.1.1.10 | Subroutines (procedures/functions) | A1.4 Subroutines, parameters and passing by reference, A1.10 Project: the behaviour controller |
| 4.1.1.11 | Parameters of subroutines | A1.4 Subroutines, parameters and passing by reference, A1.10 Project: the behaviour controller |
| 4.1.1.12 | Returning a value/values from a subroutine | A1.4 Subroutines, parameters and passing by reference |
| 4.1.1.13 | Local variables in subroutines | A1.5 Scope, lifetime and debugging in an IDE, A1.10 Project: the behaviour controller |
| 4.1.1.14 | Global variables in a programming language | A1.5 Scope, lifetime and debugging in an IDE |
| 4.1.1.15 | Role of stack frames in subroutine calls | A2.1 Stack frames and the call stack, A2.3 Recursion versus iteration, A2.10 Project: out of the dead end |
| 4.1.1.16 | Recursive techniques | A2.2 Recursion, A2.3 Recursion versus iteration, A2.10 Project: out of the dead end |
| 4.1.2.1 | Programming paradigms | A1.6 Programming paradigms and procedural programming, A1.10 Project: the behaviour controller |
| 4.1.2.2 | Procedural-oriented programming | A1.6 Programming paradigms and procedural programming |
| 4.1.2.3 | Object-oriented programming | A1.7 Classes and objects, A1.8 Inheritance, polymorphism and overriding, A1.9 Aggregation, composition and class diagrams, A1.10 Project: the behaviour controller |
| 4.2.1.1 | Data structures | A3.1 Arrays, records and tuples, A3.9 Project: mission control |
| 4.2.1.2 | Single- and multi-dimensional arrays (or equivalent) | A3.1 Arrays, records and tuples |
| 4.2.1.3 | Fields, records and files | A3.1 Arrays, records and tuples, A3.8 Fields, records and file organisation |
| 4.2.1.4 | Abstract data types/data structures | A3.2 Abstract data types and stacks, A3.3 Queues: linear, circular and priority, A3.4 Linked lists, A3.5 Hash tables, A3.6 Dictionaries, A3.7 Vectors, A3.9 Project: mission control |
| 4.2.2.1 | Queues | A3.3 Queues: linear, circular and priority |
| 4.2.3.1 | Stacks | A3.2 Abstract data types and stacks |
| 4.2.4.1 | Graphs | A4.1 Graphs, A4.2 Adjacency matrix and adjacency list, A4.8 Project: plan the route |
| 4.2.5.1 | Trees (including binary trees) | A4.5 Trees, A4.6 Binary search trees, A4.8 Project: plan the route |
| 4.2.6.1 | Hash tables | A3.5 Hash tables |
| 4.2.7.1 | Dictionaries | A3.6 Dictionaries |
| 4.2.8.1 | Vectors | A3.7 Vectors |
| 4.3.1.1 | Simple graph-traversal algorithms | A4.3 Depth-first traversal, A4.4 Breadth-first traversal, A4.8 Project: plan the route |
| 4.3.2.1 | Simple tree-traversal algorithms | A4.7 Tree traversals |
| 4.3.3.1 | Reverse Polish - infix transformations | A6.6 Reverse Polish notation |
| 4.3.4.1 | Linear search | A5.3 Linear and binary search |
| 4.3.4.2 | Binary search | A5.3 Linear and binary search |
| 4.3.4.3 | Binary tree search | A4.6 Binary search trees |
| 4.3.5.1 | Bubble sort | A5.4 Bubble sort and insertion sort |
| 4.3.5.2 | Merge sort | A5.5 Merge sort |
| 4.3.6.1 | Dijkstra's shortest path algorithm | A5.7 Dijkstra's shortest path algorithm, A5.9 Project: plan the route, then drive it |
| 4.4.1.1 | Problem-solving | A2.7 Thinking ahead and thinking logically, A2.9 Computational methods |
| 4.4.1.2 | Following and writing algorithms | A2.7 Thinking ahead and thinking logically, A15.1 How your A level is assessed, A15.2 Command words and levels of response, A15.3 Trace tables and hand-tracing, A15.4 Pseudocode in the exam languages, A15.5 Writing algorithms and code in the exam, A15.6 Pre-release material and skeleton programs, A15.7 Calculation and theory questions, A15.8 A revision plan and mixed practice |
| 4.4.1.3 | Abstraction | A2.4 Abstraction and models, A2.10 Project: out of the dead end |
| 4.4.1.4 | Information hiding | A2.5 Procedural, functional and data abstraction |
| 4.4.1.5 | Procedural abstraction | A2.5 Procedural, functional and data abstraction |
| 4.4.1.6 | Functional abstraction | A2.5 Procedural, functional and data abstraction |
| 4.4.1.7 | Data abstraction | A2.5 Procedural, functional and data abstraction |
| 4.4.1.8 | Problem abstraction/reduction | A2.4 Abstraction and models, A2.9 Computational methods |
| 4.4.1.9 | Decomposition | A2.6 Decomposition, composition and automation, A2.10 Project: out of the dead end |
| 4.4.1.10 | Composition | A2.6 Decomposition, composition and automation |
| 4.4.1.11 | Automation | A2.6 Decomposition, composition and automation, A2.10 Project: out of the dead end |
| 4.4.2.1 | Finite state machines (FSMs) with and without output | A6.1 Finite state machines, A6.2 Mealy machines: FSMs with output, A6.10 Project: the mission robot, A15.7 Calculation and theory questions |
| 4.4.2.2 | Maths for regular expressions | A6.3 Sets, A6.10 Project: the mission robot |
| 4.4.2.3 | Regular expressions | A6.4 Regular expressions and regular languages |
| 4.4.2.4 | Regular language | A6.4 Regular expressions and regular languages, A6.10 Project: the mission robot |
| 4.4.3.1 | Backus-Naur Form (BNF)/syntax diagrams | A6.5 Backus-Naur Form and syntax diagrams, A6.10 Project: the mission robot |
| 4.4.4.1 | Comparing algorithms | A5.1 Comparing algorithms, A5.2 Big O notation, A5.9 Project: plan the route, then drive it |
| 4.4.4.2 | Maths for understanding Big-0 notation | A5.1 Comparing algorithms |
| 4.4.4.3 | Order of complexity | A5.2 Big O notation, A5.9 Project: plan the route, then drive it, A15.7 Calculation and theory questions |
| 4.4.4.4 | Limits of computation | A6.7 Limits of computation: tractable and intractable problems |
| 4.4.4.5 | Classification of algorithmic problems | A6.7 Limits of computation: tractable and intractable problems, A6.10 Project: the mission robot |
| 4.4.4.6 | Computable and non-computable problems | A6.8 Computable problems and the Halting problem |
| 4.4.4.7 | Halting problem | A6.8 Computable problems and the Halting problem, A6.10 Project: the mission robot |
| 4.4.5.1 | Turing machine | A6.9 Turing machines |
| 4.5.1.1 | Natural numbers | A7.1 Number sets, bases and units |
| 4.5.1.2 | Integer numbers | A7.1 Number sets, bases and units |
| 4.5.1.3 | Rational numbers | A7.1 Number sets, bases and units |
| 4.5.1.4 | Irrational numbers | A7.1 Number sets, bases and units |
| 4.5.1.5 | Real numbers | A7.1 Number sets, bases and units |
| 4.5.1.6 | Ordinal numbers | A7.1 Number sets, bases and units |
| 4.5.1.7 | Counting and measurement | A7.1 Number sets, bases and units |
| 4.5.2.1 | Number base | A7.1 Number sets, bases and units, A7.2 Binary arithmetic and signed integers |
| 4.5.3.1 | Bits and bytes | A7.1 Number sets, bases and units |
| 4.5.3.2 | Units | A7.1 Number sets, bases and units |
| 4.5.4.1 | Unsigned binary | A7.2 Binary arithmetic and signed integers |
| 4.5.4.2 | Unsigned binary arithmetic | A7.2 Binary arithmetic and signed integers |
| 4.5.4.3 | Signed binary using two's complement | A7.2 Binary arithmetic and signed integers, A15.7 Calculation and theory questions |
| 4.5.4.4 | Numbers with a fractional part | A7.3 Fixed point and floating point, A7.10 Project: a secure sensor packet |
| 4.5.4.5 | Rounding errors | A7.4 Errors, range and precision |
| 4.5.4.6 | Absolute and relative errors | A7.4 Errors, range and precision |
| 4.5.4.7 | Range and precision | A7.4 Errors, range and precision, A7.10 Project: a secure sensor packet |
| 4.5.4.8 | Normalisation of floating point form | A7.3 Fixed point and floating point, A15.7 Calculation and theory questions |
| 4.5.4.9 | Underflow and overflow | A7.4 Errors, range and precision |
| 4.5.5.1 | Character form of a decimal digit | A7.5 Bitwise operations and characters |
| 4.5.5.2 | ASCII and Unicode | A7.5 Bitwise operations and characters |
| 4.5.5.3 | Error checking and correction | A7.6 Error checking and correction, A7.10 Project: a secure sensor packet |
| 4.5.6.1 | Bit patterns, images, sound and other data | A7.7 Analogue, digital and graphics |
| 4.5.6.2 | Analogue and digital | A7.7 Analogue, digital and graphics |
| 4.5.6.3 | Analogue/digital conversion | A7.7 Analogue, digital and graphics |
| 4.5.6.4 | Bitmapped graphics | A7.7 Analogue, digital and graphics |
| 4.5.6.5 | Vector graphics | A7.7 Analogue, digital and graphics |
| 4.5.6.6 | Vector graphics versus bitmapped graphics | A7.7 Analogue, digital and graphics |
| 4.5.6.7 | Digital representation of sound | A7.8 Sound and MIDI |
| 4.5.6.8 | Musical Instrument Digital Interface (MIDI) | A7.8 Sound and MIDI |
| 4.5.6.9 | Data compression | A7.9 Compression, encryption and hashing |
| 4.5.6.10 | Encryption | A7.9 Compression, encryption and hashing, A7.10 Project: a secure sensor packet |
| 4.6.1.1 | Relationship between hardware and software | A9.1 Hardware, software and the stored program |
| 4.6.1.2 | Classification of software | A10.1 Classifying software |
| 4.6.1.3 | System software | A10.1 Classifying software, A10.8 Stages of compilation, linkers and loaders |
| 4.6.1.4 | Role of an operating system (OS) | A10.2 The operating system, BIOS and device drivers, A10.3 Memory management: paging, segmentation and virtual memory, A10.4 Interrupts, A10.5 Scheduling algorithms, A10.9 Project: a tiny robot operating system |
| 4.6.2.1 | Classification of programming languages | A10.7 Programming languages and translators |
| 4.6.3.1 | Types of program translator | A10.6 Types of operating system and virtual machines, A10.7 Programming languages and translators |
| 4.6.4.1 | Logic gates | A8.1 Logic gates and notation, A8.2 Circuits, expressions and truth tables, A8.7 Half adders and full adders, A8.8 D-type flip-flops and clocks, A8.9 Project: the robot's safety logic |
| 4.6.5.1 | Using Boolean algebra | A8.3 Boolean identities and laws, A8.4 De Morgan's laws, A8.5 Simplifying expressions, A8.6 Karnaugh maps, A8.9 Project: the robot's safety logic |
| 4.7.1.1 | Internal hardware components of a computer | A9.1 Hardware, software and the stored program, A9.10 Project: a processor of your own |
| 4.7.2.1 | The meaning of the stored program concept | A9.1 Hardware, software and the stored program |
| 4.7.3.1 | The processor and its components | A9.2 The processor and its registers |
| 4.7.3.2 | The Fetch-Execute cycle and the role of registers within it | A9.3 The fetch-decode-execute cycle in detail, A9.10 Project: a processor of your own |
| 4.7.3.3 | The processor instruction set | A9.4 Instruction sets and addressing modes |
| 4.7.3.4 | Addressing modes | A9.4 Instruction sets and addressing modes |
| 4.7.3.5 | Machine-code/assembly language operations | A9.5 Assembly language: the Little Man Computer, A9.6 AQA assembly language and bitwise operations, A9.10 Project: a processor of your own |
| 4.7.3.6 | Interrupts | A9.7 Interrupts |
| 4.7.3.7 | Factors affecting processor performance | A9.8 Performance, pipelining and parallel processors |
| 4.7.4.1 | Input and output devices | A9.9 Input, output and storage |
| 4.7.4.2 | Secondary storage devices | A9.9 Input, output and storage |
| 4.8.1 | Individual (moral), social (ethical), legal and cultural issues and opportunities | A14.7 Computing legislation, A14.8 Moral, ethical, social and cultural issues |
| 4.9.1.1 | Communication methods | A12.1 Communication methods |
| 4.9.1.2 | Communication basics | A12.1 Communication methods |
| 4.9.2.1 | Network topology | A12.2 Topologies and wireless networks |
| 4.9.2.2 | Types of networking between hosts | A12.8 Client server, REST and thin clients |
| 4.9.2.3 | Wireless networking | A12.2 Topologies and wireless networks |
| 4.9.3.1 | The Internet and how it works | A12.3 How the Internet works, A12.10 Project: a reliable link |
| 4.9.3.2 | Internet security | A12.7 Internet security |
| 4.9.4.1 | TCP/IP | A12.4 The TCP/IP stack and protocols, A12.10 Project: a reliable link |
| 4.9.4.2 | Standard application layer protocols | A12.4 The TCP/IP stack and protocols |
| 4.9.4.3 | IP address structure | A12.5 IP addresses and subnets |
| 4.9.4.4 | Subnet masking | A12.5 IP addresses and subnets |
| 4.9.4.5 | IP standards | A12.5 IP addresses and subnets |
| 4.9.4.6 | Public and private IP addresses | A12.5 IP addresses and subnets |
| 4.9.4.7 | Dynamic Host Configuration Protocol (DHCP) | A12.6 DHCP, NAT and port forwarding |
| 4.9.4.8 | Network Address Translation (NAT) | A12.6 DHCP, NAT and port forwarding |
| 4.9.4.9 | Port forwarding | A12.6 DHCP, NAT and port forwarding |
| 4.9.4.10 | Client server model | A11.8 Capturing, managing and exchanging data, A12.8 Client server, REST and thin clients |
| 4.9.4.11 | Thin- versus thick-client computing | A12.8 Client server, REST and thin clients |
| 4.10.1 | Conceptual data models and entity relationship modelling | A11.1 Data models and entity relationships, A11.10 Project: the run database |
| 4.10.2 | Relational databases | A11.2 Relational databases and keys, A11.5 SQL: changing data and referential integrity |
| 4.10.3 | Database design and normalisation techniques | A11.3 Normalisation to third normal form, A11.10 Project: the run database |
| 4.10.4 | Structured Query Language (SQL) | A11.4 SQL: defining tables and joining them, A11.5 SQL: changing data and referential integrity, A11.10 Project: the run database |
| 4.10.5 | Client server databases | A11.6 Transactions and ACID, A11.7 Client server databases and concurrent access |
| 4.11.1 | Big Data | A11.9 Big data, A13.7 Functional programming and big data |
| 4.12.1.1 | Function type | A13.2 Function types and function application, A13.8 Project: the way out |
| 4.12.1.2 | First-class object | A13.3 First-class objects and higher-order functions, A13.8 Project: the way out |
| 4.12.1.3 | Function application | A13.2 Function types and function application, A13.8 Project: the way out |
| 4.12.1.4 | Partial function application | A13.4 Partial application and composition, A13.8 Project: the way out |
| 4.12.1.5 | Composition of functions | A13.4 Partial application and composition, A13.8 Project: the way out |
| 4.12.2.1 | Functional language programs | A13.1 The functional paradigm, A13.3 First-class objects and higher-order functions, A13.5 Map, filter and fold, A13.8 Project: the way out |
| 4.12.3.1 | List processing | A13.6 List processing, A13.8 Project: the way out |
| 4.13.1.1 | Analysis | A14.1 The systems lifecycle and feasibility, A14.2 Development methodologies, A14.3 Analysis: requirements and success criteria, A14.9 Project: the delivery robot |
| 4.13.1.2 | Design | A14.2 Development methodologies, A14.4 System design, A14.9 Project: the delivery robot |
| 4.13.1.3 | Implementation | A14.2 Development methodologies, A14.6 Software engineering tools and version control, A14.9 Project: the delivery robot |
| 4.13.1.4 | Testing | A14.5 Testing strategies, A14.9 Project: the delivery robot |
| 4.13.1.5 | Evaluation | A14.1 The systems lifecycle and feasibility, A14.9 Project: the delivery robot |