You are viewing a free preview of this lesson.
Subscribe to unlock all 4 lessons in this course and every other course on LearningBro.
This lesson provides a comprehensive map of the AQA A-Level Computer Science specification (7517), showing exactly what each section covers, which paper tests it, how frequently each topic appears in past papers, and a structured revision checklist to ensure you have covered everything. Use this as your master reference for revision planning.
The AQA specification is divided into 12 sections (4.1–4.12). Understanding which sections are tested on which paper is essential for targeted revision.
| Section | Topic | Paper 1 | Paper 2 | Priority |
|---|---|---|---|---|
| 4.1 | Fundamentals of programming | Yes | Yes | Very High |
| 4.2 | Fundamentals of data structures | Yes | Yes | Very High |
| 4.3 | Fundamentals of algorithms | Yes | Yes | Very High |
| 4.4 | Theory of computation | Yes | Yes | High |
| 4.5 | Fundamentals of data representation | Yes | Yes | High |
| 4.6 | Fundamentals of computer systems | Yes | Yes | Medium-High |
| 4.7 | Fundamentals of computer organisation and architecture | Yes | Yes | Medium-High |
| 4.8 | Consequences of uses of computing | No | Yes | Medium |
| 4.9 | Fundamentals of communication and networking | No | Yes | Medium-High |
| 4.10 | Fundamentals of databases | No | Yes | Medium-High |
| 4.11 | Big Data | No | Yes | Medium |
| 4.12 | Fundamentals of functional programming | No | Yes | Medium-High |
Key Point: Sections 4.1–4.7 are tested on BOTH papers. Sections 4.8–4.12 are tested on Paper 2 ONLY. This means that if you are strong in programming and algorithms (4.1–4.3), you have a major advantage on both papers.
This is the largest and most important section of the specification. It covers all aspects of programming that you are expected to know and be able to implement.
| Sub-Topic | Key Content | Exam Focus |
|---|---|---|
| Data types | Integer, real/float, Boolean, character, string, date/time, pointer/reference | Know the purpose and range of each type; when to use each |
| Programming concepts | Variable declaration, assignment, iteration (for, while, repeat), selection (if, case), nesting | Write code using all of these constructs fluently |
| Arithmetic operations | +, -, *, /, DIV (integer division), MOD (modulus), exponentiation | Know the difference between DIV and / ; MOD is frequently tested |
| Relational operations | =, <>, <, >, <=, >= | Used in conditions for selection and iteration |
| Boolean operations | AND, OR, NOT, XOR | Truth tables, Boolean expressions, simplification |
| Constants and variables | Difference between constants and variables; when to use each | Explain why constants improve maintainability and prevent accidental changes |
| String handling | Length, substring, concatenation, character codes, conversion | Write string processing functions from scratch |
| Exception handling | Try-catch/try-except, raising exceptions, custom exceptions | Know how to handle runtime errors gracefully |
| Subroutines | Functions (return a value) vs procedures (do not), parameters (by value vs by reference), local vs global scope | Write functions and procedures; explain parameter passing mechanisms |
| Recursion | Base case, recursive case, call stack, stack overflow, comparison with iteration | Trace recursive code; convert between iterative and recursive solutions |
| Object-oriented programming | Classes, objects, instantiation, encapsulation, inheritance, polymorphism, overriding, aggregation, composition, association | Write class definitions; explain OOP principles; draw class diagrams |
| File handling | Open, read, write, append, close; text files; binary files; CSV processing | Write code to read from and write to files |
| Topic | Can Define | Can Explain | Can Code | Practised Exam Qs |
|---|---|---|---|---|
| Data types and type casting | [ ] | [ ] | [ ] | [ ] |
| Selection (if/else/case) | [ ] | [ ] | [ ] | [ ] |
| Iteration (for/while/repeat) | [ ] | [ ] | [ ] | [ ] |
| Arithmetic (DIV, MOD) | [ ] | [ ] | [ ] | [ ] |
| Boolean operations | [ ] | [ ] | [ ] | [ ] |
| String handling | [ ] | [ ] | [ ] | [ ] |
| Exception handling | [ ] | [ ] | [ ] | [ ] |
| Subroutines and parameters | [ ] | [ ] | [ ] | [ ] |
| Recursion | [ ] | [ ] | [ ] | [ ] |
| OOP (all principles) | [ ] | [ ] | [ ] | [ ] |
| File handling | [ ] | [ ] | [ ] | [ ] |
| Sub-Topic | Key Content | Exam Focus |
|---|---|---|
| Arrays | 1D and 2D arrays, indexing, traversal | Implement operations on arrays |
| Records | Composite data types with named fields | Define and use records/structs |
| Stacks | LIFO structure; push, pop, peek, isEmpty | Implement stack operations; explain use cases (expression evaluation, backtracking, call stack) |
| Queues | FIFO structure; enqueue, dequeue; linear and circular variants; priority queues | Implement queue operations; explain circular queue mechanics |
| Linked lists | Dynamic structure with nodes and pointers; singly and doubly linked | Implement insert, delete, traverse; compare with arrays |
| Trees | Binary trees, binary search trees; in-order, pre-order, post-order traversal | Traverse trees; insert/search BST; draw trees from traversal sequences |
| Hash tables | Hash functions, collision resolution (linear probing, chaining), load factor | Explain hashing; calculate hash values; handle collisions |
| Dictionaries | Key-value pairs, access by key | Implement dictionary operations |
| Vectors | Mathematical vectors, vector operations, representation as lists/arrays or as functions | Perform vector addition, scalar multiplication; represent vectors as dictionaries |
| Topic | Can Define | Can Explain | Can Code | Practised Exam Qs |
|---|---|---|---|---|
| Arrays (1D and 2D) | [ ] | [ ] | [ ] | [ ] |
| Records | [ ] | [ ] | [ ] | [ ] |
| Stacks (push, pop, peek) | [ ] | [ ] | [ ] | [ ] |
| Queues (enqueue, dequeue, circular) | [ ] | [ ] | [ ] | [ ] |
| Linked lists (insert, delete, traverse) | [ ] | [ ] | [ ] | [ ] |
| Binary trees and BSTs | [ ] | [ ] | [ ] | [ ] |
| Hash tables and collision resolution | [ ] | [ ] | [ ] | [ ] |
| Dictionaries | [ ] | [ ] | [ ] | [ ] |
| Vectors | [ ] | [ ] | [ ] | [ ] |
| Sub-Topic | Key Content | Exam Focus |
|---|---|---|
| Graph traversals | Breadth-first search (BFS), depth-first search (DFS) | Trace BFS/DFS on a given graph; compare the two approaches |
| Tree traversals | In-order, pre-order, post-order | Write the traversal output for a given tree |
| Dijkstra's algorithm | Shortest path in a weighted graph | Trace Dijkstra's on a small graph; show the distance table at each step |
| Searching | Linear search, binary search | Implement both; compare time complexity; know when binary search is applicable |
| Sorting | Bubble sort, merge sort | Trace both algorithms; compare time and space complexity; implement in code |
| Optimisation | Understanding of tractable and intractable problems | Know examples of each; explain why some problems are computationally hard |
| Topic | Can Define | Can Trace | Can Code | Practised Exam Qs |
|---|---|---|---|---|
| BFS and DFS | [ ] | [ ] | [ ] | [ ] |
| Tree traversals (in/pre/post) | [ ] | [ ] | [ ] | [ ] |
| Dijkstra's algorithm | [ ] | [ ] | [ ] | [ ] |
| Linear search | [ ] | [ ] | [ ] | [ ] |
| Binary search | [ ] | [ ] | [ ] | [ ] |
| Bubble sort | [ ] | [ ] | [ ] | [ ] |
| Merge sort | [ ] | [ ] | [ ] | [ ] |
| Sub-Topic | Key Content | Exam Focus |
|---|---|---|
| Abstraction and automation | Representational abstraction, abstraction by generalisation, information hiding, procedural abstraction | Define and give examples of each type |
| Finite state machines (FSMs) | Mealy machines, Moore machines, state transition diagrams, state transition tables | Draw and interpret FSMs; determine whether an input string is accepted |
| Regular expressions | Pattern matching syntax, metacharacters | Write regular expressions for given patterns; determine what strings match |
| Context-free languages | Backus-Naur Form (BNF), syntax diagrams | Write BNF for simple languages; interpret syntax diagrams |
| Turing machines | Universal Turing machine, Church-Turing thesis | Explain the concept of a Turing machine; describe its components |
| Classification of algorithms | Time complexity, Big O notation, tractable vs intractable, computable vs non-computable | Classify algorithms by time complexity; explain the halting problem |
| Halting problem | Proof that it is undecidable | Explain why no algorithm can determine whether any arbitrary program halts |
| Topic | Can Define | Can Explain | Can Apply | Practised Exam Qs |
|---|---|---|---|---|
| Abstraction types | [ ] | [ ] | [ ] | [ ] |
| Finite state machines | [ ] | [ ] | [ ] | [ ] |
| Regular expressions | [ ] | [ ] | [ ] | [ ] |
| BNF and syntax diagrams | [ ] | [ ] | [ ] | [ ] |
| Turing machines | [ ] | [ ] | [ ] | [ ] |
| Big O notation | [ ] | [ ] | [ ] | [ ] |
| Halting problem | [ ] | [ ] | [ ] | [ ] |
| Sub-Topic | Key Content | Exam Focus |
|---|---|---|
| Number systems | Binary, denary, hexadecimal; conversion between systems | Perform conversions fluently and quickly |
| Binary arithmetic | Addition, subtraction (two's complement), multiplication, overflow | Perform binary arithmetic; identify overflow |
| Floating-point representation | Mantissa, exponent, normalisation, precision vs range trade-off | Convert between denary and floating-point; normalise |
| Bit manipulation | Shifts (logical and arithmetic), masks, AND/OR/XOR operations | Apply bit operations; explain their uses |
| Character encoding | ASCII, Unicode (UTF-8, UTF-16, UTF-32) | Explain differences; calculate storage requirements |
| Analogue/digital conversion | Sampling, sampling rate, bit depth, Nyquist theorem | Calculate file sizes; explain quality trade-offs |
| Compression | Lossy vs lossless, RLE, Huffman coding, dictionary-based | Compare approaches; calculate compressed sizes |
| Topic | Can Define | Can Calculate | Can Explain | Practised Exam Qs |
|---|---|---|---|---|
| Number base conversions | [ ] | [ ] | [ ] | [ ] |
| Binary arithmetic | [ ] | [ ] | [ ] | [ ] |
| Floating-point representation | [ ] | [ ] | [ ] | [ ] |
| Bit manipulation | [ ] | [ ] | [ ] | [ ] |
| Character encoding | [ ] | [ ] | [ ] | [ ] |
| Analogue/digital conversion | [ ] | [ ] | [ ] | [ ] |
| Compression algorithms | [ ] | [ ] | [ ] | [ ] |
| Sub-Topic | Key Content | Exam Focus |
|---|---|---|
| Hardware and software | Relationship between hardware and software; system software vs application software | Define and distinguish categories |
| Classification of languages | Low-level (machine code, assembly), high-level; advantages/disadvantages of each | Compare language levels; explain when each is appropriate |
| Translators | Compilers, interpreters, assemblers; stages of compilation (lexical analysis, syntax analysis, code generation, optimisation) | Explain each translator type; describe compilation stages |
| Boolean algebra | Laws (De Morgan's, commutative, associative, distributive), simplification, Karnaugh maps | Simplify Boolean expressions; draw logic circuits |
| Logic gates | AND, OR, NOT, NAND, NOR, XOR; truth tables; circuit diagrams | Draw and interpret logic circuits; construct truth tables |
| Topic | Can Define | Can Explain | Can Apply | Practised Exam Qs |
|---|---|---|---|---|
| Hardware vs software | [ ] | [ ] | [ ] | [ ] |
| Language classification | [ ] | [ ] | [ ] | [ ] |
| Compilers and interpreters | [ ] | [ ] | [ ] | [ ] |
| Stages of compilation | [ ] | [ ] | [ ] | [ ] |
| Boolean algebra and simplification | [ ] | [ ] | [ ] | [ ] |
| Logic gates and circuits | [ ] | [ ] | [ ] | [ ] |
| Sub-Topic | Key Content | Exam Focus |
|---|---|---|
| Von Neumann architecture | Stored program concept, fetch-decode-execute cycle, buses (address, data, control) | Describe the FDE cycle; explain the role of each bus |
| Harvard architecture | Separate instruction and data memory; comparison with Von Neumann | Compare both architectures; explain when Harvard is used |
| Registers | PC, MAR, MDR, CIR, ACC, status register | State the purpose of each register |
| Instruction set | Machine code format (opcode, operand), addressing modes (immediate, direct, indirect, indexed) | Interpret machine code instructions; explain addressing modes |
| Assembly language | Mnemonics, labels, directives; relationship to machine code | Read and write simple assembly programs |
| I/O and interrupts | Interrupt handling, interrupt service routines, vectored interrupts, priorities | Explain the interrupt handling process |
| Processors | CISC vs RISC, pipelining, parallel processing, multi-core | Compare CISC and RISC; explain pipelining benefits and hazards |
| GPUs | GPU structure, parallel processing, use in general-purpose computing (GPGPU) | Explain why GPUs are suited to parallel tasks |
Subscribe to continue reading
Get full access to this lesson and all 4 lessons in this course.