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.
- 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 .
Condensed for the final weeks. For the full explanation, use the Arrays and Lists study guide.
Static vs dynamic
| Static | Dynamic | |
|---|---|---|
| Size | Fixed at creation | Grows/shrinks during execution |
| Example | Traditional array | Python’s built-in list |
| Advantage | Fast, predictable access | Adapts flexibly to varying data |
| Disadvantage | Wastes memory if oversized, fails if undersized | Extra overhead when resizing |
Python has no built-in array type — students typically use lists (dynamic) even for conceptually static-array questions, unless using the array module (no strings, no multi-dimensional) or numpy.
Worked example: choosing a structure
Storing daily temperature readings for a year (365/366 known values) vs an unknown, growing list of game high scores.
Temperatures: STATIC (array) -- exact count known and fixed in
advance, so a static structure avoids resizing
overhead and gives fast, predictable indexed access
High scores: DYNAMIC (list) -- count unknown and growing, so a
structure that expands as needed is appropriate
Justifying the choice against whether the data size is known and fixed, or unknown and growing is what this sub-topic assesses — more than naming “array” or “list” correctly.
Two-dimensional structures
A 2D array/list of lists is indexed by two coordinates (typically row, column) — used for tabular or grid-based data (a spreadsheet, a game board). Exam questions will not require more than two dimensions.
Worked example: describing a 2D structure
A program needs to store the seating arrangement of a small cinema with 6 rows and 10 seats per row, where each seat is either booked or free.
Structure: a two-dimensional array/list of lists, 6 rows x 10
columns
Indexing: seating[row][seat] -- e.g. seating[2][5] accesses row
index 2, seat index 5 (using zero-based indexing, this
is the 3rd row, 6th seat)
Content: each element holds a boolean or simple value representing
booked/free status for that specific seat
Being explicit about how the two coordinates map onto the real-world scenario (row = physical row, column = seat number within the row) is what distinguishes a strong answer from one that only states “use a 2D array” without describing the indexing scheme.
Why the static/dynamic distinction frames the rest of 3.2
This sub-topic’s static-versus-dynamic framing recurs across every later data structure in Fundamental Data Structures (stacks, queues, trees, hash tables) covered elsewhere in 3.2 – each later structure is itself built as either a static or dynamic implementation, and being able to say which, and why that choice suits the structure’s typical use case, is a skill introduced here and reused throughout the rest of the topic. Treat the advantages and disadvantages named in this sub-topic (predictable access vs resizing overhead) as a template applied again to every subsequent data structure, not content specific to arrays and lists alone.
Key terms
Data structure — an organised way of storing and accessing data suited to a task. Static data structure — fixed size at creation, unchanged during execution. Dynamic data structure — can grow/shrink while the program runs. Array — a static, fixed-size, indexed collection of same-type elements. List (Python) — a dynamic, indexed collection.
Programming-exam flexibility
In programming exam questions, it is acceptable to use either lists or arrays to solve a problem unless the question specifically states which must be used – so don’t assume a question phrased around “array” requires the array/numpy module in Python specifically if lists would solve the problem equally well and no data type is mandated.
Common mistakes
- Describing arrays and lists as interchangeable without acknowledging the static/dynamic distinction.
- Choosing a data structure without justifying the choice against whether the size is known/fixed or unknown/changing.
- Assuming exam questions require more than two dimensions.
- Forgetting Python’s list behaves dynamically even when the underlying concept tested is a static array.
Quick self-test
- Give one advantage and one disadvantage of a static data structure.
- Why does Python typically use lists even for conceptually “array” problems?
- A scenario has a known, fixed number of elements. Which structure type is more appropriate?
- What are the two coordinates typically used to index a 2D array?
- What is the maximum number of dimensions required in this specification’s exam questions?
- Describe how you would index a specific seat in a 6-row, 10-seats-per-row cinema layout stored as a 2D structure.
Answers: 1. Advantage: fast, predictable access since memory layout doesn’t change. Disadvantage: wastes memory if oversized, or fails if undersized. 2. Because Python has no built-in fixed-size array type; its built-in list behaves dynamically, so it is used even when a question is conceptually about a static array. 3. A static structure (array), since the fixed size avoids resizing overhead and gives fast indexed access. 4. Row and column. 5. Two dimensions. 6. seating[row][seat], e.g. seating[2][5] for row index 2, seat index 5, using zero-based indexing so this is physically the 3rd row and 6th seat.
Vocabulary precision matters
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 in written exam answers, even when your practical programming work uses Python lists throughout.
Related resources
Official syllabus
OxfordAQA International AS and A-level Computer Science (9645) specification, Version 1.1 — oxfordaqa.com/9645.
Related resources
-
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).
Computer Science · OxfordAQA · AS LEVEL
-
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
-
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