Study Guides
OxfordAQA A-Level Computer Science: Static vs Dynamic Data Structures and Arrays (9645)
Static vs dynamic data structures, and using one- and two-dimensional arrays and lists to solve problems -- the introduction and 3.2.1 of OxfordAQA International AS and A-Level Computer Science (9645).
- Subject
- Computer Science
- Level
- AS LEVEL
- Topic
- Fundamental data structures
- Author
- Marlbridge Academic Team
- Updated
Aligned to OxfordAQA A Level Computer Science (9645), 2024-onwards. Official specification .
This guide covers the introduction to 3.2 Fundamental Data Structures and its first sub-topic, 3.2.1 Arrays and Lists, from OxfordAQA International AS and A-level Computer Science (9645), Version 1.1, International AS exams May/June 2025 onwards, International A-level exams May/June 2026 onwards.
Syllabus coverage
OXFORDAQA INTERNATIONAL AS AND A-LEVEL COMPUTER SCIENCE (9645) — 3.2 FUNDAMENTAL DATA STRUCTURES (INTRODUCTION)
Students should be familiar with the concept of data structures, and be able to distinguish between static and dynamic data structures, compare their uses, and explain the advantages and disadvantages of each.
3.2.1 ARRAYS AND LISTS
Students should be able to use arrays and lists when solving problems, including the use of two-dimensional arrays and lists of lists. The specification notes that Python does not contain built-in support for arrays, but students can use arrays by importing the array module (which currently does not support string elements or multi-dimensional arrays) or the numpy module; in programming exams, it is acceptable to use either lists or arrays to solve a problem unless the question states that one specifically must be used, and students will not be required to use arrays of more than two dimensions in exam questions (though they may do so if they wish).
How to approach it
Start with the static-versus-dynamic distinction, since it frames everything else in 3.2. A static data structure has a fixed size set at creation, which cannot change during a program’s execution — the classic example is a traditional array. A dynamic data structure can grow or shrink while the program runs, adjusting its size to fit the data it holds — Python’s built-in list is the working example students meet immediately in this specification. Be ready to give one advantage and one disadvantage of each: a static structure typically offers faster, more predictable access because its memory layout doesn’t change, but wastes memory if oversized or fails if undersized; a dynamic structure adapts flexibly to varying amounts of data, but that flexibility can bring extra overhead when the structure needs to resize.
For arrays and lists specifically, this specification is explicit about language reality: Python does not have a built-in array type in the way languages like C# or Java do, so students working in Python typically use lists (which behave dynamically) even when a question is conceptually about arrays (which are static). Know which behaviour your own course’s practical language actually gives you, and be ready to explain a two-dimensional array or list-of-lists as a structure indexed by two coordinates — commonly row and column — used to represent tabular or grid-based data.
Worked example: static vs dynamic, applied to a scenario
A question asks candidates to justify whether a static or dynamic data structure is more appropriate for storing daily temperature readings throughout a calendar year (365 or 366 known values), versus storing an unknown, growing list of high scores submitted by players in a game.
Temperature readings:
Choice: static (array)
Justification: the exact number of readings (365 or 366) is known in
advance and fixed once the year is defined, so a
static structure avoids the overhead of resizing and
gives fast, predictable indexed access to any day's
reading
High scores:
Choice: dynamic (list)
Justification: the number of scores is not known in advance and
grows as players submit new scores, so a dynamic
structure that can expand as needed is more
appropriate than a fixed-size structure that would
need to be resized or risk running out of space
Justifying the choice against the specific nature of the data — known and fixed, versus unknown and growing — is exactly what this sub-topic is assessing, more than simply naming “array” or “list” correctly.
Key terms to define precisely
Data structure — an organised way of storing and accessing data suited to a particular task. Static data structure — a data structure whose size is fixed at the point of creation and does not change during program execution. Dynamic data structure — a data structure that can grow or shrink in size while a program is running, allocating or releasing memory as needed. Array — a static, fixed-size, indexed collection of elements of the same data type. List — in Python, a dynamic, indexed collection that can hold elements and change size during execution; distinct from the more restrictive, static array concept even though both are indexed sequences. Two-dimensional array/list of lists — a structure indexed by two coordinates, typically row and column, used to model tabular or grid-based data such as a spreadsheet or a game board. Keeping the words “array” and “list” mapped correctly to “static” and “dynamic” respectively — rather than treating all indexed collections as one interchangeable category — is the specific vocabulary precision this sub-topic rewards.
Common mistakes
Describing arrays and lists as interchangeable terms without acknowledging the static/dynamic distinction the specification explicitly draws between them. Choosing a data structure for a scenario without justifying the choice against whether the data size is known and fixed, or unknown and changing. Assuming exam questions will require arrays of more than two dimensions, when the specification caps required exam content at two dimensions. Forgetting that Python’s own built-in list behaves dynamically even in contexts where the underlying concept being tested is a static array.
Quick revision checklist
- Be able to define static and dynamic data structures and give one advantage and one disadvantage of each.
- Know that Python’s built-in list is dynamic, and that true fixed-size arrays require the array or numpy module.
- Practise justifying a data-structure choice against whether the number of elements is known in advance.
- Be comfortable using two-dimensional arrays or lists of lists, indexed by row and column.
Related resources
Official syllabus
OxfordAQA International AS and A-level Computer Science (9645) specification, Version 1.1 — oxfordaqa.com/9645.
Related resources
-
Practice Questions
OxfordAQA A Level Computer Science: Arrays and Lists — Practice Questions
Original exam-style practice questions with full worked answers on static vs dynamic data structures, arrays and lists, and one- and two-dimensional structures.
Computer Science · OxfordAQA · AS LEVEL
-
Revision Notes
OxfordAQA A Level Computer Science: Arrays and Lists — Revision Notes
Condensed recall notes on static vs dynamic data structures, and one/two-dimensional arrays and lists, for OxfordAQA International A-Level Computer Science (9645), sub-topic 3.2.1.
Computer Science · OxfordAQA · AS LEVEL
-
Practice Questions
A Level Computer Science: Procedural Programming — Practice Questions
Original exam-style practice questions with full worked answers on algorithms, searching, sorting, complexity and modular design.
Computer Science · OxfordAQA · AS LEVEL
Related articles
-
curriculum guides
Choosing subjects at IGCSE and A Level
How subject choices at 14 and 16 affect university options later, and how to keep pathways open without overloading a timetable.
28 July 2026
-
study skills
How to revise for a science examination
Most science revision fails because it rereads notes instead of retrieving them. A practical method for revising physics, chemistry and biology in the weeks before a paper.
14 July 2026
Working through Computer Science? Tutoring covers the same material with a teacher.
Find Learning Support