AQA A-level Computer Science (7517)

Every section of the specification, and the BugBot lesson that covers it. 151 of 151 sections have a lesson.

Start in the simulator
RefSpecification sectionLessons
4.1.1.1Data typesA1.1 Data types and programming constructs
4.1.1.2Programming conceptsA1.1 Data types and programming constructs, A1.10 Project: the behaviour controller
4.1.1.3Arithmetic operations in a programming languageA1.2 Operations, strings and random numbers
4.1.1.4Relational operations in a programming languageA1.2 Operations, strings and random numbers
4.1.1.5Boolean operations in a programming languageA1.2 Operations, strings and random numbers
4.1.1.6Constants and variables in a programming languageA1.1 Data types and programming constructs, A1.10 Project: the behaviour controller
4.1.1.7String-handling operations in a programming languageA1.2 Operations, strings and random numbers
4.1.1.8Random number generation in a programming languageA1.2 Operations, strings and random numbers
4.1.1.9Exception handlingA1.3 Exception handling, A1.10 Project: the behaviour controller
4.1.1.10Subroutines (procedures/functions)A1.4 Subroutines, parameters and passing by reference, A1.10 Project: the behaviour controller
4.1.1.11Parameters of subroutinesA1.4 Subroutines, parameters and passing by reference, A1.10 Project: the behaviour controller
4.1.1.12Returning a value/values from a subroutineA1.4 Subroutines, parameters and passing by reference
4.1.1.13Local variables in subroutinesA1.5 Scope, lifetime and debugging in an IDE, A1.10 Project: the behaviour controller
4.1.1.14Global variables in a programming languageA1.5 Scope, lifetime and debugging in an IDE
4.1.1.15Role of stack frames in subroutine callsA2.1 Stack frames and the call stack, A2.3 Recursion versus iteration, A2.10 Project: out of the dead end
4.1.1.16Recursive techniquesA2.2 Recursion, A2.3 Recursion versus iteration, A2.10 Project: out of the dead end
4.1.2.1Programming paradigmsA1.6 Programming paradigms and procedural programming, A1.10 Project: the behaviour controller
4.1.2.2Procedural-oriented programmingA1.6 Programming paradigms and procedural programming
4.1.2.3Object-oriented programmingA1.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.1Data structuresA3.1 Arrays, records and tuples, A3.9 Project: mission control
4.2.1.2Single- and multi-dimensional arrays (or equivalent)A3.1 Arrays, records and tuples
4.2.1.3Fields, records and filesA3.1 Arrays, records and tuples, A3.8 Fields, records and file organisation
4.2.1.4Abstract data types/data structuresA3.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.1QueuesA3.3 Queues: linear, circular and priority
4.2.3.1StacksA3.2 Abstract data types and stacks
4.2.4.1GraphsA4.1 Graphs, A4.2 Adjacency matrix and adjacency list, A4.8 Project: plan the route
4.2.5.1Trees (including binary trees)A4.5 Trees, A4.6 Binary search trees, A4.8 Project: plan the route
4.2.6.1Hash tablesA3.5 Hash tables
4.2.7.1DictionariesA3.6 Dictionaries
4.2.8.1VectorsA3.7 Vectors
4.3.1.1Simple graph-traversal algorithmsA4.3 Depth-first traversal, A4.4 Breadth-first traversal, A4.8 Project: plan the route
4.3.2.1Simple tree-traversal algorithmsA4.7 Tree traversals
4.3.3.1Reverse Polish - infix transformationsA6.6 Reverse Polish notation
4.3.4.1Linear searchA5.3 Linear and binary search
4.3.4.2Binary searchA5.3 Linear and binary search
4.3.4.3Binary tree searchA4.6 Binary search trees
4.3.5.1Bubble sortA5.4 Bubble sort and insertion sort
4.3.5.2Merge sortA5.5 Merge sort
4.3.6.1Dijkstra's shortest path algorithmA5.7 Dijkstra's shortest path algorithm, A5.9 Project: plan the route, then drive it
4.4.1.1Problem-solvingA2.7 Thinking ahead and thinking logically, A2.9 Computational methods
4.4.1.2Following and writing algorithmsA2.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.3AbstractionA2.4 Abstraction and models, A2.10 Project: out of the dead end
4.4.1.4Information hidingA2.5 Procedural, functional and data abstraction
4.4.1.5Procedural abstractionA2.5 Procedural, functional and data abstraction
4.4.1.6Functional abstractionA2.5 Procedural, functional and data abstraction
4.4.1.7Data abstractionA2.5 Procedural, functional and data abstraction
4.4.1.8Problem abstraction/reductionA2.4 Abstraction and models, A2.9 Computational methods
4.4.1.9DecompositionA2.6 Decomposition, composition and automation, A2.10 Project: out of the dead end
4.4.1.10CompositionA2.6 Decomposition, composition and automation
4.4.1.11AutomationA2.6 Decomposition, composition and automation, A2.10 Project: out of the dead end
4.4.2.1Finite state machines (FSMs) with and without outputA6.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.2Maths for regular expressionsA6.3 Sets, A6.10 Project: the mission robot
4.4.2.3Regular expressionsA6.4 Regular expressions and regular languages
4.4.2.4Regular languageA6.4 Regular expressions and regular languages, A6.10 Project: the mission robot
4.4.3.1Backus-Naur Form (BNF)/syntax diagramsA6.5 Backus-Naur Form and syntax diagrams, A6.10 Project: the mission robot
4.4.4.1Comparing algorithmsA5.1 Comparing algorithms, A5.2 Big O notation, A5.9 Project: plan the route, then drive it
4.4.4.2Maths for understanding Big-0 notationA5.1 Comparing algorithms
4.4.4.3Order of complexityA5.2 Big O notation, A5.9 Project: plan the route, then drive it, A15.7 Calculation and theory questions
4.4.4.4Limits of computationA6.7 Limits of computation: tractable and intractable problems
4.4.4.5Classification of algorithmic problemsA6.7 Limits of computation: tractable and intractable problems, A6.10 Project: the mission robot
4.4.4.6Computable and non-computable problemsA6.8 Computable problems and the Halting problem
4.4.4.7Halting problemA6.8 Computable problems and the Halting problem, A6.10 Project: the mission robot
4.4.5.1Turing machineA6.9 Turing machines
4.5.1.1Natural numbersA7.1 Number sets, bases and units
4.5.1.2Integer numbersA7.1 Number sets, bases and units
4.5.1.3Rational numbersA7.1 Number sets, bases and units
4.5.1.4Irrational numbersA7.1 Number sets, bases and units
4.5.1.5Real numbersA7.1 Number sets, bases and units
4.5.1.6Ordinal numbersA7.1 Number sets, bases and units
4.5.1.7Counting and measurementA7.1 Number sets, bases and units
4.5.2.1Number baseA7.1 Number sets, bases and units, A7.2 Binary arithmetic and signed integers
4.5.3.1Bits and bytesA7.1 Number sets, bases and units
4.5.3.2UnitsA7.1 Number sets, bases and units
4.5.4.1Unsigned binaryA7.2 Binary arithmetic and signed integers
4.5.4.2Unsigned binary arithmeticA7.2 Binary arithmetic and signed integers
4.5.4.3Signed binary using two's complementA7.2 Binary arithmetic and signed integers, A15.7 Calculation and theory questions
4.5.4.4Numbers with a fractional partA7.3 Fixed point and floating point, A7.10 Project: a secure sensor packet
4.5.4.5Rounding errorsA7.4 Errors, range and precision
4.5.4.6Absolute and relative errorsA7.4 Errors, range and precision
4.5.4.7Range and precisionA7.4 Errors, range and precision, A7.10 Project: a secure sensor packet
4.5.4.8Normalisation of floating point formA7.3 Fixed point and floating point, A15.7 Calculation and theory questions
4.5.4.9Underflow and overflowA7.4 Errors, range and precision
4.5.5.1Character form of a decimal digitA7.5 Bitwise operations and characters
4.5.5.2ASCII and UnicodeA7.5 Bitwise operations and characters
4.5.5.3Error checking and correctionA7.6 Error checking and correction, A7.10 Project: a secure sensor packet
4.5.6.1Bit patterns, images, sound and other dataA7.7 Analogue, digital and graphics
4.5.6.2Analogue and digitalA7.7 Analogue, digital and graphics
4.5.6.3Analogue/digital conversionA7.7 Analogue, digital and graphics
4.5.6.4Bitmapped graphicsA7.7 Analogue, digital and graphics
4.5.6.5Vector graphicsA7.7 Analogue, digital and graphics
4.5.6.6Vector graphics versus bitmapped graphicsA7.7 Analogue, digital and graphics
4.5.6.7Digital representation of soundA7.8 Sound and MIDI
4.5.6.8Musical Instrument Digital Interface (MIDI)A7.8 Sound and MIDI
4.5.6.9Data compressionA7.9 Compression, encryption and hashing
4.5.6.10EncryptionA7.9 Compression, encryption and hashing, A7.10 Project: a secure sensor packet
4.6.1.1Relationship between hardware and softwareA9.1 Hardware, software and the stored program
4.6.1.2Classification of softwareA10.1 Classifying software
4.6.1.3System softwareA10.1 Classifying software, A10.8 Stages of compilation, linkers and loaders
4.6.1.4Role 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.1Classification of programming languagesA10.7 Programming languages and translators
4.6.3.1Types of program translatorA10.6 Types of operating system and virtual machines, A10.7 Programming languages and translators
4.6.4.1Logic gatesA8.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.1Using Boolean algebraA8.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.1Internal hardware components of a computerA9.1 Hardware, software and the stored program, A9.10 Project: a processor of your own
4.7.2.1The meaning of the stored program conceptA9.1 Hardware, software and the stored program
4.7.3.1The processor and its componentsA9.2 The processor and its registers
4.7.3.2The Fetch-Execute cycle and the role of registers within itA9.3 The fetch-decode-execute cycle in detail, A9.10 Project: a processor of your own
4.7.3.3The processor instruction setA9.4 Instruction sets and addressing modes
4.7.3.4Addressing modesA9.4 Instruction sets and addressing modes
4.7.3.5Machine-code/assembly language operationsA9.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.6InterruptsA9.7 Interrupts
4.7.3.7Factors affecting processor performanceA9.8 Performance, pipelining and parallel processors
4.7.4.1Input and output devicesA9.9 Input, output and storage
4.7.4.2Secondary storage devicesA9.9 Input, output and storage
4.8.1Individual (moral), social (ethical), legal and cultural issues and opportunitiesA14.7 Computing legislation, A14.8 Moral, ethical, social and cultural issues
4.9.1.1Communication methodsA12.1 Communication methods
4.9.1.2Communication basicsA12.1 Communication methods
4.9.2.1Network topologyA12.2 Topologies and wireless networks
4.9.2.2Types of networking between hostsA12.8 Client server, REST and thin clients
4.9.2.3Wireless networkingA12.2 Topologies and wireless networks
4.9.3.1The Internet and how it worksA12.3 How the Internet works, A12.10 Project: a reliable link
4.9.3.2Internet securityA12.7 Internet security
4.9.4.1TCP/IPA12.4 The TCP/IP stack and protocols, A12.10 Project: a reliable link
4.9.4.2Standard application layer protocolsA12.4 The TCP/IP stack and protocols
4.9.4.3IP address structureA12.5 IP addresses and subnets
4.9.4.4Subnet maskingA12.5 IP addresses and subnets
4.9.4.5IP standardsA12.5 IP addresses and subnets
4.9.4.6Public and private IP addressesA12.5 IP addresses and subnets
4.9.4.7Dynamic Host Configuration Protocol (DHCP)A12.6 DHCP, NAT and port forwarding
4.9.4.8Network Address Translation (NAT)A12.6 DHCP, NAT and port forwarding
4.9.4.9Port forwardingA12.6 DHCP, NAT and port forwarding
4.9.4.10Client server modelA11.8 Capturing, managing and exchanging data, A12.8 Client server, REST and thin clients
4.9.4.11Thin- versus thick-client computingA12.8 Client server, REST and thin clients
4.10.1Conceptual data models and entity relationship modellingA11.1 Data models and entity relationships, A11.10 Project: the run database
4.10.2Relational databasesA11.2 Relational databases and keys, A11.5 SQL: changing data and referential integrity
4.10.3Database design and normalisation techniquesA11.3 Normalisation to third normal form, A11.10 Project: the run database
4.10.4Structured 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.5Client server databasesA11.6 Transactions and ACID, A11.7 Client server databases and concurrent access
4.11.1Big DataA11.9 Big data, A13.7 Functional programming and big data
4.12.1.1Function typeA13.2 Function types and function application, A13.8 Project: the way out
4.12.1.2First-class objectA13.3 First-class objects and higher-order functions, A13.8 Project: the way out
4.12.1.3Function applicationA13.2 Function types and function application, A13.8 Project: the way out
4.12.1.4Partial function applicationA13.4 Partial application and composition, A13.8 Project: the way out
4.12.1.5Composition of functionsA13.4 Partial application and composition, A13.8 Project: the way out
4.12.2.1Functional language programsA13.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.1List processingA13.6 List processing, A13.8 Project: the way out
4.13.1.1AnalysisA14.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.2DesignA14.2 Development methodologies, A14.4 System design, A14.9 Project: the delivery robot
4.13.1.3ImplementationA14.2 Development methodologies, A14.6 Software engineering tools and version control, A14.9 Project: the delivery robot
4.13.1.4TestingA14.5 Testing strategies, A14.9 Project: the delivery robot
4.13.1.5EvaluationA14.1 The systems lifecycle and feasibility, A14.9 Project: the delivery robot