# AQA A Level Computer Science Teaching Resources & Lesson Plans

AQA A Level Computer Science mapping file. Download our comprehensive teaching resources and use the mapping table to align to the AQA examination board. Updated and aligned to the new 2020 specification.

AQA specification

GCSE Document Reference

4.1

Fundamentals of programming

4.1.1

Programming

Data types

Programming concepts

Arithmetic operations in a programming language

Relational operations in a programming language

Boolean operations in a programming language

Constants and variables in a programming language

String-handling operations in a programming language

Random number generation in a programming language

Exception handling

Subroutines (procedures/functions)

Parameters of subroutines

Returning a value/values from a subroutine

Local variables in subroutines

Global variables in a programming language

Role of stack frames in subroutine calls

Recursive techniques

Cell

4.1.2

Cell

Procedural-oriented programming

Object-oriented programming

Cell

4.2

Fundamentals of data structures

4.2.1

Data structures and abstract data types

Data structures

Single- and multi-dimensional arrays (or equivalent)

Fields, records and files

Abstract data types/data structures

4.2.2

Queues

4.2.3

Stacks

4.2.4

Graphs

4.2.5

Trees

4.2.6

4.2.7

Hash tables

Dictionaries

4.2.8

Vectors

4.3

Fundamentals of algorithms

4.3.1

Graph traversal

4.3.2

Tree traversal

4.3.3

Simple tree-traversal algorithms

Reverse Polish

4.3.4

Searching algorithms

Linear search

Binary search

Binary tree search

Cell

4.3.5

Sorting algorithms

Bubble sort

Merge sort

4.3.6

Optimisation algorithms

Dijkstraâ€™s shortest path algorithm

4.4

Theory of computation

Cell
Cell

4.4.1

Abstraction and automation

Cell
Cell
Cell

Problem solving

Following and writing algorithms

Abstraction

Information hiding

Procedural abstraction

Functional abstraction

Data abstraction

Problem abstraction/reduction

Decomposition

Composition

Automation

4.4.2

Regular languages

Cell
Cell
Cell

Finite state machines (FSMs) with and without output

Cell
Cell

Maths for regular expressions

Cell
Cell

Regular expressions

Regular language

Cell

4.4.3

Context-free languages

Backus-Naur Form (BNF)/syntax diagrams

Cell

4.4.4

Classification of algorithms

Cell
Cell
Cell

Comparing algorithms

Maths for understanding Big-0 notation

Order of complexity

Limits of computation

Classification of algorithmic problems

Cell
Cell

Computable and non-computable problems

Halting problem

Cell
Cell

4.4.5

A model of computation

Cell
Cell
Cell

Turing machine

Cell

4.5

Fundamentals of data representation

Cell
Cell

4.5.1

Number systems

Cell
Cell
Cell

Natural numbers

Integer numbers

Rational numbers

Irrational numbers

Real numbers

Ordinal numbers

Counting and measurement

Cell

4.5.2

Number bases

Cell
Cell

Number base

Cell

4.5.3

Units of information

Cell
Cell
Cell

Units

Cell

4.5.4

Binary number system
Cell
Cell
Cell

Unsigned binary

Unsigned binary arithmetic

Signed binary using twoâ€™s complement

Cell
Cell

Numbers with a fractional part

Rounding errors

Absolute and relative errors

Range and precision

Normalisation of floating point form

Underflow and overflow

Cell

4.5.5

Information coding systems

Cell
Cell
Cell

Character form of a decimal digit

ASCII and Unicode

Cell
Cell

Error checking and correction

Cell

4.5.6

Representing images, sound and other data

Cell
Cell
Cell

Bit patterns, images, sound and other data

Analogue and digital

Analogue/digital conversion

Bitmapped graphics

Vector graphics

Vector graphics versus bitmapped graphics

Digital representation of sound

Cell
Cell

Musical Instrument Digital Interface (MIDI)

Data compression

Encryption

Cell

4.6

Fundamentals of computer systems

Cell
Cell

4.6.1

Hardware and software

Cell
Cell
Cell

Relationship between hardware and software

Classification of software

System software

Role of an operating system (OS)

Cell

4.6.2

Classification of programming languages

Cell
Cell
Cell

Classification of programming languages

4.6.3

Types of program translator

Cell
Cell
Cell

Types of program translator

Cell

4.6.4

Logic gates

Cell
Cell
Cell

Logic gates

Cell

4.6.5

Boolean algebra

Cell
Cell
Cell

Using Boolean algebra

Cell

4.7

Fundamentals of computer organisation and architecture

Cell
Cell

4.7.1

Internal hardware components of a computer

Cell
Cell

4.7.2

4.7.3

The stored program concept

Structure and role of the processor and its components

The processor and its components

The Fetch-Execute cycle and the role of registers within it

Machine-code/assembly language operations

Interrupts

Cell
Cell

Factors affecting processor performance

Cell

4.7.4

External hardware devices

Cell
Cell
Cell

Input and output devices

Cell
Cell

Secondary storage devices

Cell

4.8

Consequences of uses of computing

Cell
Cell

4.8.1

Individual (moral), social (ethical), legal and cultural issues and opportunities

Cell

4.9

Communication

Cell
Cell

4.9.1

Communication

Cell
Cell
Cell

Communication methods

Communication basics

Cell

4.9.2

Networking

Cell
Cell
Cell

Network topology

Cell
Cell

Types of networking between hosts

Cell
Cell

Wireless networking

Cell

4.9.3

The Internet

Cell
Cell
Cell

The Internet and how it works

Cell
Cell

Internet security

Cell

4.9.4

The Transmission Control Protocol/Internet Protocol (TCP/IP) protocol

Cell
Cell
Cell

TCP/IP

Standard application layer protocols

IP standards

Public and private IP addresses

Dynamic Host Configuration Protocol (DHCP)

Network Address Translation (NAT)

Port forwarding

Cell
Cell

Client server model

Standard application layer protocols

Cell

4.10

Fundamentals of databases

Cell
Cell
Cell

Conceptual data models and entity relationship modelling

Cell
Cell

Relational databases

Database design and normalisation techniques

Cell
Cell

Structured Query Language (SQL)

Cell
Cell

Client server databases

Cell

4.11

Big data

Cell
Cell
Cell

Big data

Cell

4.12

Fundamentals of functional programming

Cell
Cell

4.12.1

Cell
Cell

4.12.2

First-class object

Function application

Partial function application

Composition of functions

Writing functional programs

Cell

4.12.3

Lists in functional programming

Cell

4.13

Systematic approach to problem solving

Cell
Cell

4.13.1

Aspects of software development

Cell
Cell
Cell

Analysis

Design

Implementation

Testing

Evaluation

Cell