Most chosen general qualifications exam board in England.

  • About AQA

  • Centre Services

  • Join Us

  • Contact Us

AQA
  • Subjects
  • Qualifications
  • Professional Development
  • Exams Admin
  • Services
  • Search
  • Subjects

  • Qualifications

  • Professional Development

  • Exams Admin

  • Services

  • About AQA

  • Centre Services

  • Join Us

  • Contact Us

  • Log in

Subjects

  • Accounting

  • Art and Design

  • Biology

  • Business

  • Chemistry

  • Computer Science

  • Dance

  • Design and Technology

  • Drama

  • Economics

  • English

  • Food preparation and Nutrition

  • French

  • Geography

  • German

  • History

  • Law

  • Mathematics

  • Media Studies

  • Music

  • Physical Education

  • Physics

  • Politics

  • Psychology

  • Religious Studies

  • Science

  • Sociology

  • Spanish

  • All subjects

GCSEs

  • Biology (8461)

  • Chemistry (8462)

  • Combined Science: Trilogy (8464)

  • English Language (8700)

  • English Literature (8702)

  • Geography (8035)

  • History (8145)

  • Mathematics (8300)

  • See all GCSEs

AS and A-levels

  • Biology (7402)

  • Business (7138)

  • Chemistry (7405)

  • Geography (7037)

  • History (7042)

  • Physics (7408)

  • Psychology (7182)

  • Sociology (7192)

  • See all AS and A-Levels

Other qualifications

  • Applied Generals

  • AQA Certificate Mathematics

  • Entry Level Certificates

  • Project Qualifications

  • Unit Award Scheme

  • All qualifications

Our training

  • Course finder

  • About our training

  • Online training

  • Face-to-face training

  • In-school training

  • Inside assessment

Courses by theme

  • Preparing for exams

  • Exams officers

  • Getting started

  • Unit Award Scheme

Courses by subject

  • English

  • Mathematics

  • Science

  • Languages

  • Design and Technology

  • Physical Education

  • Geography

  • History

  • All professional development

Dates

  • Dates and timetables

  • Key dates

Non-exam assessment (NEA)

  • NEA, coursework and controlled assessment

  • Deadlines for non-exam assessment

  • Record forms

  • Submit marks

Exams

  • Entries

  • Entry fees

  • Exams guidance

  • Question papers and stationery

  • Access arrangements

  • Special consideration

Results

  • Results days

  • Results slips

  • Grade boundaries

  • Results statistics

  • Post-results services

  • Exam certificates

  • All Exams Admin

Assessment Services

  • Centre Services

  • Associate Extranet

  • Become an associate

Products

  • All About Maths

  • Alpha Plus

  • Data Insights

  • Exampro

  • Project Q

  • Stride Maths

  • Testbase

  • Unit Award Scheme

News and Insights

  • AQI research and insight

  • News

  • Inside Exams Podcast

  • Exam Officer Podcast

  1. Home
  2. Subjects
  3. Computer Science
  4. A-level Computer Science

A-level Computer Science7517

SpecificationPlanning resourcesTeaching resourcesAssessment resourcesKey dates
1.0 Introduction
2.0 Specification at a glance
4.0 Subject content – A-level
4.1 Fundamentals of programming
4.2 Fundamentals of data structures
4.3 Fundamentals of algorithms
4.4 Theory of computation
4.5 Fundamentals of data representation
4.6 Fundamentals of computer systems
4.7 Fundamentals of computer organisation and architecture
4.8 Consequences of uses of computing
4.9 Fundamentals of communication and networking
4.10 Fundamentals of databases
4.11 Big Data
4.12 Fundamentals of functional programming
4.13 Systematic approach to problem solving
4.14 Non-exam assessment - the computing practical project
5.0 Scheme of assessment
6.0 Non-exam assessment administration
7.0 General administration
AS and A-level Computer Science Specification Specifications for first teaching in 2015

AS and A-level Computer Science Specification Specifications for first teaching in 2015

21 Jan 2019

PDF | 1.31 MB

4.2 Fundamentals of data structures

4.2.1 Data structures and abstract data types

4.2.1.1 Data structures

Content

Additional information

Be familiar with the concept of data structures.

It may be helpful to set the concept of a data structure in various contexts that students may already be familiar with. It may also be helpful to suggest/demonstrate how data structures could be used in a practical setting.

4.2.1.2 Single- and multi-dimensional arrays (or equivalent)

Content

Additional information

Use arrays (or equivalent) in the design of solutions to simple problems.

A one-dimensional array is a useful way of representing a vector. A two-dimensional array is a useful way of representing a matrix. More generally, an n -dimensional array is a set of elements with the same data type that are indexed by a tuple of n integers, where a tuple is an ordered list of elements.

4.2.1.3 Fields, records and files

Content

Additional information

Be able to read/write from/to a text file.

 

Be able to read/write data from/to a binary (non-text) file.

 

4.2.1.4 Abstract data types/data structures

Content

Additional information

Be familiar with the concept and uses of a:

  • queue
  • stack
  • graph
  • tree
  • hash table
  • dictionary
  • vector.

Be able to use these abstract data types and their equivalent data structures in simple contexts.

Students should also be familiar with methods for representing them when a programming language does not support these structures as built-in types.

Be able to distinguish between static and dynamic structures and compare their uses, as well as explaining the advantages and disadvantages of each.

 

Describe the creation and maintenance of data within:

  • queues (linear, circular, priority)
  • stacks
  • hash tables.
 

4.2.2 Queues

4.2.2.1 Queues

Content

Additional information

Be able to describe and apply the following to linear queues, circular queues and priority queues:

  • add an item
  • remove an item
  • test for an empty queue
  • test for a full queue.
 

4.2.3 Stacks

4.2.3.1 Stacks

Content

Additional information

Be able to describe and apply the following operations:

  • push
  • pop
  • peek or top
  • test for empty stack
  • test for stack full.

Peek or top returns the value of the top element without removing it.

4.2.4 Graphs

4.2.4.1 Graphs

Content

Additional information

Be aware of a graph as a data structure used to represent more complex relationships.

 

Be familiar with typical uses for graphs.

 

Be able to explain the terms:

  • graph
  • weighted graph
  • vertex/node
  • edge/arc
  • undirected graph
  • directed graph.
 

Know how an adjacency matrix and an adjacency list may be used to represent a graph.

 

Be able to compare the use of adjacency matrices and adjacency lists.

 

4.2.5 Trees

4.2.5.1 Trees (including binary trees)

Content

Additional information

Know that a tree is a connected, undirected graph with no cycles.

Note that a tree does not have to have a root.

Know that a rooted tree is a tree in which one vertex has been designated as the root. A rooted tree has parent-child relationships between nodes. The root is the only node with no parent and all other nodes are descendants of the root.

 

Know that a binary tree is a rooted tree in which each node has at most two children.

A common application of a binary tree is as a binary search tree.

Be familiar with typical uses for rooted trees.

 

4.2.6 Hash tables

4.2.6.1 Hash tables

Content

Additional information

Be familiar with the concept of a hash table and its uses.

A hash table is a data structure that creates a mapping between keys and values.

Be able to apply simple hashing algorithms.

 

Know what is meant by a collision and how collisions are handled using rehashing.

A collision occurs when two key values compute the same hash.

4.2.7 Dictionaries

4.2.7.1 Dictionaries

Content

Additional information

Be familiar with the concept of a dictionary.

A collection of key-value pairs in which the value is accessed via the associated key.

Be familiar with simple applications of dictionaries, for example information retrieval, and have experience of using a dictionary data structure in a programming language.

Information retrieval:

For example, the document 'The green, green grass grows' would be represented by the dictionary:

{‘grass’ : 1, ‘green’ : 2, ‘grows’ : 1, ‘the’ : 1} ignoring letter case.

4.2.8 Vectors

4.2.8.1 Vectors

Content

Additional information

Be familiar with the concept of a vector and the following notations for specifying a vector:

  • [2.0, 3.14159, -1.0, 2.718281828]
  • 4-vector over ℝ written as ℝ4
  • function interpretation
    • 0 ↦ 2.0
    • 1 ↦ 3.14159
    • 2 ↦ -1.0
    • 3 ↦ 2.718281828
    • ↦ means maps to

That all the entries must be drawn from the same field, eg ℝ.

A vector can be represented as a list of numbers, as a function and as a way of representing a geometric point in space.

A dictionary is a useful way of representing a vector if a vector is viewed as a function.

f : S → ℝ

the set S = {0,1,2,3} and the co-domain, ℝ, the set of Reals

For example, in Python the 4-vector example could be represented as a dictionary as follows:

{0:2.0, 1:3.14159, 2:-1.0, 3:2.718281828}

Dictionary representation of a vector.

See above.

List representation of a vector.

For example, in Python, a 2-vector over ℝ would be written as [2.0,3.0].

1-D array representation of a vector.

For example in VB.Net, a 4-vector over ℝ would be written as Dim example(3) As Single.

Visualising a vector as an arrow.

For example a 2-vector [2.0, 3.0] over ℝ can be represented by an arrow with its tail at the origin and its head at (2.0, 3.0).

Vector addition and scalar-vector multiplication.

Know that vector addition achieves translation and scalar-vector multiplication achieves scaling.

Convex combination of two vectors, u and v.

Is an expression of the form α u + β v where α, β ≥ 0 and α + β = 1

Dot or scalar product of two vectors.

The dot product of two vectors, u and v,

u = [ u 1 , …., u n ] and v = [ v 1 , ….., v n ] is

u ∙ v = u 1 v 1 + u 2 v 2 + …… + u n v n

Applications of dot product.

Finding the angle between two vectors.

4.1 Fundamentals of programming
4.3 Fundamentals of algorithms
AQA
  • Become an examiner
  • Switch to AQA
  • Contact Us
  • Join us
  • Terms and conditions
  • Accessibility
  • Modern slavery statement
  • Privacy notice
  • Cookie notice
  • X
  • LinkedIn
  • Youtube

©AQA 2025 | Company number: 03644723 | Registered office: Devas Street, Manchester, M15 6EX | AQA is not responsible for the content of external sites

AQA Education has obtained an injunction preventing interference with public examinations. This notice is to alert you to the injunction, so that you are aware of it and can make submissions about it if you wish to do so.