Revision Notes
OxfordAQA IGCSE Computer Science: Data Structures, Subroutines and Translators — Revision Notes
Condensed recall notes on arrays, records, files, strings, random numbers, subroutines, validation and translators for OxfordAQA IGCSE 9210, 3.2.6-3.2.13.
- Subject
- Computer Science
- Level
- IGCSE
- Topic
- Programming
- Author
- Marlbridge Academic Team
- Updated
- Reviewed by
- Harris Khan (what this means)
Aligned to OxfordAQA IGCSE Computer Science (9210), For teaching from September 2017, exams from May/June 2019. Official specification .
Syllabus page (what it covers and how it is assessed): OxfordAQA IGCSE Computer Science.
Syllabus points this page covers
9210
- 3.2.6 Data structures
- 3.2.7 Input/output and file handling
- 3.2.8 String handling operations in a programming language
- 3.2.9 Random number generation in a programming language
- 3.2.10 Subroutines (procedures and functions)
- 3.2.11 Structured programming
- 3.2.12 Robust and secure programming
- 3.2.13 Classification of programming languages and translators
Found an error? Report a correction.
Need help with this topic? Request a free trial class for IGCSE Computer Science (9210).
Condensed for the final weeks. These notes cover sections 3.2.6 to 3.2.13 of Topic 2 Programming in OxfordAQA International GCSE Computer Science (9210). For the full explanation, use the Data Structures, Subroutines and Translators study guide; for 3.2.1–3.2.5 use the Programming Fundamentals revision notes.
Key definitions
| Term | Definition |
|---|---|
| Data structure | An organised way of storing related data under one name |
| Array | Fixed number of items of the same data type, reached by index (1-D or 2-D only for 9210) |
| Record | A group of fields of possibly different data types describing one item |
| Subroutine | A named, out-of-line block of code that runs when called by name |
| Parameter | A value passed into a subroutine (OxfordAQA uses this word for both sides of the call) |
| Return value | Data passed back out of a function to the calling routine |
| Local variable | A variable that exists only inside its subroutine |
| Validation | Checking input is reasonable before it is used |
| Authentication | Checking the identity of a user, e.g. username and password |
| Machine code | Binary instructions a processor executes; specific to a processor family |
| Assembly language | Mnemonics with a 1:1 correspondence to machine code |
Data structures (3.2.6)
- 1-D array = a list (marks of 30 students). 2-D array = a table (
marks[student][test]). - Record = one item with mixed fields (title: string, pages: integer, price: real).
- Array of records = a table of items, e.g. every book in a library.
- Python lists are an accepted alternative to arrays.
Input/output and files (3.2.7)
- Keyboard input arrives as text: convert before calculating.
- Text file pattern: open → read or write → close.
- Read inside a loop that stops at the end of the file.
String handling (3.2.8)
Know all of: length, position, substring, concatenation, character → code, code → character, and the four conversions string → integer, string → real, integer → string, real → string.
Worked example: build a username from the first three letters of “Mensah” and the number 7.
part <- substring of "Mensah" (first 3 characters) -> "Men"
user <- part + INT_TO_STRING(7) -> "Men7"
The integer must be converted to a string before concatenation.
Random numbers (3.2.9)
Use them (dice rolls, random quiz questions, guessing games). How pseudo-random numbers are produced is not required.
Subroutines and structured programming (3.2.10–3.2.11)
Advantages of subroutines — any three, each with its reason:
- Written once, called many times → shorter programs.
- Tested separately → errors found and fixed more easily.
- Fixed in one place → every call benefits.
- Shared between programmers → faster team development.
- Named clearly → main program easier to read.
Structured approach = modularised program + clear, documented interfaces (parameters, return values) + local variables. Advantages: easier to understand, test, maintain and reuse.
Robust and secure programming (3.2.12)
Specification examples of validation: minimum length, not empty, number in range.
| Test data | Rating must be 1–10 |
|---|---|
| Normal | 4, 7 |
| Boundary | 1, 10 (and 0, 11 just outside) |
| Erroneous | -3, 50, “ten” |
Authentication at this level compares plain-text username and password; no encryption needed.
Languages and translators (3.2.13)
| Low-level | High-level | |
|---|---|---|
| Examples | Machine code, assembly language | Python, C#, Visual Basic |
| Portable? | No — tied to one processor family | Yes, once translated for each platform |
| Ease of use | Hard to write and debug | Closer to English, easier to write and debug |
| Strength | Direct hardware control, fast, compact code | Faster development |
| Translator | Input | Key fact |
|---|---|---|
| Compiler | High-level | Whole program → machine code before running; standalone executable |
| Interpreter | High-level | One statement at a time; does not generate machine code directly |
| Assembler | Assembly | Each line → one machine code instruction |
When to use: interpreter while developing and testing; compiler to distribute a finished program; assembler for assembly-language code such as embedded systems.
Exam traps
- Calling a mixed-type structure an array — it is a record.
- Concatenating a number with a string without converting it.
- Boundary data that only lists the valid end values.
- Saying an interpreter produces an executable file.
- Listing advantages of subroutines without the reason that earns the mark.
Self-test
- State one difference between an array and a record.
- Name the four string conversion operations in 9210.
- Give two advantages of using subroutines.
- Give normal, boundary and erroneous test data for an age from 11 to 18.
- Explain why each line of assembly language becomes one machine code instruction.
Answers: 1. An array holds items of one data type; a record holds fields that can be different types. 2. String to integer, string to real, integer to string, real to string. 3. Code can be reused by calling it many times; each subroutine can be tested separately. 4. Normal 14; boundary 11 and 18 (and 10, 19 just outside); erroneous 25 or “twelve”. 5. Assembly language has a 1:1 correspondence with machine code: each mnemonic stands for one processor instruction.
Frequently asked questions
What sections of OxfordAQA 9210 do these programming revision notes cover? They cover sections 3.2.6 to 3.2.13 of Topic 2 Programming in OxfordAQA International GCSE Computer Science 9210: data structures, input/output and files, string handling, random numbers, subroutines, robust and secure programming, and languages and translators.
What validation checks are given as examples in the 9210 specification? The specification’s examples of validation are minimum length, not empty, and number in range. Validation checks that input is reasonable before it is used.
Do you need to know how random numbers are generated for 9210? No. You need to be able to use random numbers, for example for dice rolls or guessing games, but how pseudo-random numbers are produced is not required.
When should you use a compiler, an interpreter or an assembler? An interpreter suits developing and testing, a compiler suits distributing a finished program, and an assembler is used to translate assembly language, with each line becoming one machine code instruction.
Why must a number be converted before concatenating it with a string? Concatenation joins strings, so an integer must be converted to a string first. Concatenating a number with a string without converting it is a common exam trap.
Official syllabus
OxfordAQA International GCSE Computer Science (9210) specification, version 3.3 — oxfordaqa.com.
Get free revision emails (optional)
Occasional emails with practice questions, worked explanations and links to free resources for the qualification and subjects you choose. No spam, and you can unsubscribe from any email. The free tools on this site never need an email.
Related resources
-
Study guides
OxfordAQA IGCSE Computer Science: Programming Fundamentals (9210)
Guide to OxfordAQA International GCSE Computer Science 9210 sections 3.2.1 to 3.2.5: data types, the three constructs, and arithmetic and logic operators.
Computer Science · OxfordAQA · IGCSE
Read guide -
Study guides
OxfordAQA IGCSE Computer Science: Data Structures, Subroutines and Translators (9210)
Arrays and records, file handling, string operations, random numbers, subroutines, validation and authentication, and translators for OxfordAQA IGCSE 9210.
Computer Science · OxfordAQA · IGCSE
Read guide -
Practice questions
OxfordAQA IGCSE Computer Science: Programming Fundamentals — Practice Questions (9210)
Original practice questions with worked answers on data types, programming constructs and arithmetic, relational and Boolean operators for OxfordAQA IGCSE 9210.
Computer Science · OxfordAQA · IGCSE
Try questions
Related articles
-
teaching
A Level tuition in Dubai: Cambridge or Pearson Edexcel International A Level?
Schools in Dubai and Abu Dhabi teach either Cambridge International AS & A Level or Pearson Edexcel International A Level. How the two are structured, why it matters for tuition, and how online classes from Lahore work.
9 October 2026
-
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
Studying this with a teacher
Working through Computer Science IGCSE?
This page is free and stays free. If you would rather be taught it, Marlbridge runs Computer Science classes one-to-one and in small groups of up to 15, online in your own time zone. The first trial class is free. WhatsApp replies within an hour (8am–11pm Pakistan time, every day); email the same day.
OxfordAQA Computer Science teachers at Marlbridge