| 1.1 | Data structures | A3.1 Arrays, records and tuples, 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.9 Project: mission control, A4.1 Graphs, A4.2 Adjacency matrix and adjacency list, A4.5 Trees, A4.6 Binary search trees, A4.7 Tree traversals, A4.8 Project: plan the route |
| 1.2 | Logical operations | A8.1 Logic gates and notation, A8.2 Circuits, expressions and truth tables, 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 |
| 1.3 | Algorithms and programs | A2.2 Recursion, A2.3 Recursion versus iteration, A2.9 Computational methods, A2.10 Project: out of the dead end, A5.1 Comparing algorithms, A5.2 Big O notation, A5.3 Linear and binary search, A5.4 Bubble sort and insertion sort, A5.5 Merge sort, A5.6 Quick sort, A5.7 Dijkstra's shortest path algorithm, A5.9 Project: plan the route, then drive it |
| 1.4 | Principles of programming | A1.1 Data types and programming constructs, A1.2 Operations, strings and random numbers, A1.4 Subroutines, parameters and passing by reference, A1.6 Programming paradigms and procedural 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, A13.1 The functional paradigm, A13.3 First-class objects and higher-order functions, A13.4 Partial application and composition, A13.5 Map, filter and fold, A13.6 List processing, A13.7 Functional programming and big data, A13.8 Project: the way out |
| 1.5 | Systems 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 |
| 1.6 | System design | A14.4 System design, A14.9 Project: the delivery robot |
| 1.7 | Software engineering | A14.5 Testing strategies, A14.6 Software engineering tools and version control, A14.9 Project: the delivery robot |
| 1.8 | Program construction | A1.5 Scope, lifetime and debugging in an IDE, A1.10 Project: the behaviour controller, A6.5 Backus-Naur Form and syntax diagrams, A10.7 Programming languages and translators, A10.8 Stages of compilation, linkers and loaders, 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 |
| 2.1 | Hardware and communication | A9.1 Hardware, software and the stored program, A9.2 The processor and its registers, A9.3 The fetch-decode-execute cycle in detail, A9.4 Instruction sets and addressing modes, A9.8 Performance, pipelining and parallel processors, A9.9 Input, output and storage, A9.10 Project: a processor of your own, A12.2 Topologies and wireless networks |
| 2.2 | Data transmission | A12.1 Communication methods, A12.3 How the Internet works, A12.4 The TCP/IP stack and protocols, A12.10 Project: a reliable link |
| 2.3 | Data representation and data types | A7.1 Number sets, bases and units, A7.2 Binary arithmetic and signed integers, A7.3 Fixed point and floating point, A7.4 Errors, range and precision, A7.5 Bitwise operations and characters, A7.7 Analogue, digital and graphics, A7.8 Sound and MIDI, A7.10 Project: a secure sensor packet |
| 2.4 | Organisation and structure of data | A3.8 Fields, records and file organisation, A11.2 Relational databases and keys, A11.8 Capturing, managing and exchanging data |
| 2.5 | Databases and distributed systems | A11.1 Data models and entity relationships, A11.2 Relational databases and keys, A11.3 Normalisation to third normal form, A11.4 SQL: defining tables and joining them, A11.5 SQL: changing data and referential integrity, A11.6 Transactions and ACID, A11.7 Client server databases and concurrent access, A11.9 Big data, A11.10 Project: the run database, A12.8 Client server, REST and thin clients |
| 2.6 | The operating system | 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 |
| 2.7 | The need for different types of software systems and their attributes | A10.1 Classifying software, A10.6 Types of operating system and virtual machines |
| 2.8 | Data security and integrity processes | A7.6 Error checking and correction, A7.10 Project: a secure sensor packet |