Homeschool Guide: These lesson plans are a guide for parents. Content may contain errors — always cross-reference with official exam board specifications.
data structures
FoundationHigherAll Boards
4 detailed 50-minute lessons with teaching scripts, worked examples, parent guides, and assessment criteria.
Lesson Overview
Total Lessons: 4 Tier: Foundation and Higher Duration: 50 minutes per lesson (200 minutes total) Exam Boards: AQA, Edexcel, OCR, Eduqas, CCEA
Key vocab to pre-teach: Data structures, A 1D array, A 2D array
Basic skills: reading the summary notes and answering the practice questions there
Materials & Equipment
Exercise book, coloured pens
Ruler
Printed revision notes (link below)
Internet for videos (see Resources)
Lesson 1: Introduction: data structures
Duration: 50 minutes
Starter Activity (5 minutes)
Quick Recall
Write down everything you already know about data structures. Then check against the key terms: Data structures, A 1D array, A 2D array. Use a mini-whiteboard or paper.
Main Content (35 minutes)
Parent/Teacher Guide: Before lesson: Read the script below. Pre-teach key vocab: Data structures, A 1D array, A 2D array. If stuck: Re-read the revision notes (link above), then break the content into smaller steps. Extension: See the Stretch & Challenge ideas in Lesson 4.
Teaching Script (35 mins): Mins 0-5 - Hook: "Today: data structures. By the end you will be able to answer exam questions on it unaided. It connects to the rest of Computer Science because the ideas here recur across the spec." Mins 5-20 - Direct Instruction: Work through the core ideas below one at a time; after each, ask your student to explain it back in their own words. Mins 20-30 - Guided Practice: Model the worked example together, then let your student attempt the first practice question with guidance. Mins 30-35 - Independent Practice: 2-3 practice questions from Lesson 3 below, with immediate feedback.
First Look
Start with the revision notes summary, then attempt: Write pseudo-code to declare an array of 5 temperatures and output the third temperature.
Plenary (5 minutes)
Check Out
Your student states one thing they learned and one question they still have about data structures.
Lesson 2: Core Concepts: data structures
Duration: 50 minutes
Starter Activity (5 minutes)
Review Previous Lesson
Quick recap: write 3 key points from Lesson 1 on data structures. Check them against the notes below.
Main Content (35 minutes)
Data structures: are ways of organising and storing data so it can be accessed and modified efficiently. At GCSE, you need to know about arrays (1D and 2D) and records.
A 1D array: is an indexed collection of items of the same data type stored under one name. Each item is called an element and is accessed using its index (position number). Arrays are zero-indexed in most languages - the first element is at index 0.
A 2D array: is an array of arrays - a grid with rows and columns. Each element is accessed using two indices: the row index and the column index. Think of it like a table or spreadsheet.
A record: is a data structure that groups related fields of different data types under one name. Each field has a name and can hold a different type of data. Records are ideal for representing real-world entities.
GCSE Computer Science Exam Tips: Arrays: same type, accessed by index. Records: different types, accessed by field name. Always state the size when declaring an array. For 2D arrays, use two indices [row][column]. Know the difference between arrays (same type, indexed) and records (different types, named fields). When asked to choose, consider whether the data is the same type (array) or mixed types (record).
Term
Meaning
Example
1D Array
A list of items of the same type, accessed by index
Storing a list of scores, names, or temperatures
2D Array
A grid of items in rows and columns, accessed by two indices
Storing a seating plan, grid, or spreadsheet
Record
A collection of named fields of different types
Storing related data about one entity (e.g. a student)
Access method
By index number
By field name
Data types
All elements same type
Each field can be different type
When to use
List of similar items
Related data about one thing
Example
List of scores [85, 92, 78]
Student {name, age, grade}
Accessing index 5 in a 5-element array
Indices go from 0 to 4 for length 5
Use LENGTH(array) - 1 for the last index
Practice (10 minutes)
Q: Write pseudo-code to declare an array of 5 temperatures and output the third temperature.
Answer: temps ← [18.5, 20.3, 22.1, 19.8, 21.0] OUTPUT temps[2] // Outputs 22.1 (third element, index 2)
Plenary (5 minutes)
Explain Back
Your student teaches the key points back to you without looking. Fill any gaps immediately.
Lesson 3: Application: data structures
Duration: 50 minutes
Starter Activity (5 minutes)
Quick Recall
Recall the key terms: Data structures, A 1D array, A 2D array. Define each in one sentence.
Main Content (35 minutes)
Parent/Teacher Guide: Let your student attempt each question alone first, then compare with the model answer. Award method marks for correct working even if the final answer is wrong.
Q1: Write pseudo-code to declare an array of 5 temperatures and output the third temperature.
Answer: temps ← [18.5, 20.3, 22.1, 19.8, 21.0] OUTPUT temps[2] // Outputs 22.1 (third element, index 2)
Q2: Write pseudo-code that finds the sum of all elements in the array [10, 20, 30, 40, 50].
Answer: numbers ← [10, 20, 30, 40, 50] total ← 0 FOR i ← 0 TO 4 total ← total + numbers[i] NEXT i OUTPUT total // 150
Q3: A 2D array represents a 3x3 tic-tac-toe board. How would you access the centre square?
Answer: The centre square is at row 1, column 1: board[1][1]
Q4: Define a record called Car with fields for make (string), model (string), year (integer), and price (real).
Answer: TYPE Car make AS STRING model AS STRING year AS INTEGER price AS REAL ENDTYPE
Q5: Write pseudo-code that iterates through an array of names and outputs only the names that start with "A".
Answer: names ← ["Alice", "Bob", "Amy", "Charlie", "Anna"] FOR i ← 0 TO 4 IF SUBSTRING(names[i], 0, 1) = "A" THEN OUTPUT names[i] ENDIF NEXT i
Plenary (5 minutes)
Error Review
Review any questions answered incorrectly. Identify whether the error was knowledge, method, or reading the question.
Lesson 4: Exam Practice: data structures
Duration: 50 minutes
Starter Activity (5 minutes)
Command Words
Review what these command words require: state (one point), describe (say what happens), explain (say why), compare (both sides), evaluate (judgement).
Main Content (35 minutes)
Extended Answer
Extended question: Full-Mark Response A program needs to store the names and test scores of 5 students. Explain why a record is more suitable than two separate arrays, and write pseudo-code to declare and use this data structure. [5 marks] <div class="
Using two separate arrays (one for names, one for scores) keeps related data in separate structures, making it harder to keep data together when sorting or passing to subroutines. A record groups related fields of different types into one unit. TYPE Student name : STRING score : INTEGER ENDTYPE declare students : ARRAY[1:5] OF Student students[1].name ← 'Alice' students[1].score ← 87 students[2].name ← 'Bob' students[2].score ← 72 This keeps each student's name and score together as a single unit, making the data easier to manage, sort, and pass to subroutines.
Exam Tips: Arrays are zero-indexed - the first element is at index 0 | For 2D arrays, always use grid[row][column] order | Use FOR loops to iterate through arrays - loop from 0 to LENGTH-1 | Records use dot notation: recordName.fieldName | You can have arrays of records for storing multiple entities | Remember: arrays hold one data type, records can hold multiple types
Common Errors: ✗ Thinking arrays and records are the same thing ✓ An array stores multiple values of the SAME data type accessed by index; a record stores related values of DIFFERENT data types accessed by field name. ✗ Confusing 0-based and 1-based indexing ✓ Most programming languages use 0-based indexing (first element is index 0). Some pseudo-code uses 1-based. Always check the exam board convention. ✗ Forgetting that arrays have a fixed size once declared ✓ In most GCSE-level languages, arrays have a fixed size declared at creation. You cannot add or remove elements beyond the declared size. ✗ Believing a 2D array is a completely different concept from a 1D array ✓ A 2D array is an array of arrays — e
Stretch & Challenge (Grade 8-9):
Synoptic links: explain how data structures connects to another Computer Science topic you have studied
Real-world: research one real-world use or example of data structures
Critical: "What are the limitations of the models used in data structures?"
Plenary (5 minutes)
Assessment Criteria
Got it: Confident explanation + correct worked examples
Getting there: Main points OK, needs support with detail
Not yet: Confused on key concepts - re-run Lesson 2
Homework & Consolidation
Consolidation: Re-answer any Lesson 3 practice questions answered incorrectly (20 mins)
Retrieval: Write flashcards for the key terms: Data structures, A 1D array, A 2D array (10 mins)
Exam practice: One past-paper question on data structures from the board websites (15 mins)
Extension: Explain data structures to someone else in your own words (10 mins)