AQA A-Level Computer Science Paper 2, June 2025: Question 1
8 marks · Medium difficulty · Short Answer
Identify software classifications in a hierarchy diagram, describe functions of an operating system, and describe advantages of high-level programming languages.
Practise this questionQuestion
Question text
01.1 Figure 1 shows the classification of various types of software and some examples of
these types.
Figure 1
Complete Table 1 by naming the correct types of software that should be placed at
positions 1 to 4 in Figure 1.
[2 marks]
Table 1
Number Correct label
01.2 One function of the operating system is to allocate I/O devices to competing
processes.
Describe two other functions of an operating system.
[2 marks]
Function 1
Function 2
01.3 Software can be developed using a low-level language or a high-level language.
Describe the advantages of writing programs using a high-level language.
[4 marks]
Mark scheme
Show the mark scheme
Total
Qu Pt Marking guidance
marks
01 1 Marks are AO1 (knowledge) 2
0 marks: 1 or fewer rows correct
1 mark: 2 or 3 rows correct
2 marks: 4 rows correct
If the same label is used multiple times mark as correct in the row that it is
correct in, if any.
Number Correct label
Application (software)
A. applications as BOD NE. apps
2 Utilities / utility (software)
3 Libraries / library programs
4 Interpreter
Total
Qu Pt Marking guidance
marks
01 2 Marks are AO1 (knowledge) 2
To allocate processors/cores to processes // schedule processes // decide which
process to carry out when // manage the execution of multiple processes //
allocating ‘time slices’ to processes;
NE. processor management
NE. multitasking without further explanation
To allocate memory/RAM to processes // to determine what areas of memory are
used for what purpose // moving data into and out of RAM / to a paging file for
virtual memory;
NE. memory management
To hide the complexities of the hardware from the user;
A. provision of virtual machine
NE. user interface
NE. hide complexities of computer
To handle interrupts // to call appropriate interrupt handler (A. ISR) when an
interrupt occurs;
Automatic installation of drivers for new I/O devices;
NE. manages I/O devices
R. allocation of I/O devices to processes
– A-LEVEL COMPUTER SCIENCE – –
6 To allocate space on a storage device to files // organising files into directories //
determines where on a device to save a file // managing file allocation table //
recognising storage devices when they are connected;
A. defragmentation of disks
NE. file management
NE. saving a file
NE. manage storage devices
Installation of new software // automatic / managing updating of software;
NE. application management
Manage power consumption / use of battery;
A. examples of this eg controlling clock speed, brightness of screen
Authenticating users // managing file permissions // preventing processes
accessing memory/resources not allocated to them // provision of sandbox //
maintaining logs;
A. login with username and password (or alternative described system such as
credentials, biometrics)
NE. security management
Students must describe – phrases such as ‘processor management’,
‘allocating memory’ etc are not enough.
Accept ‘programs’ or ‘tasks’ for ‘processes’ throughout
– A-LEVEL COMPUTER SCIENCE – –
Max 2
Total
Qu Pt Marking guidance
marks
01 3 Marks are AO1 (understanding) 4
Program code is easier to understand/maintain/debug;
A. easier to read/write as BOD
Faster development time // programmers can be more productive // one line of
HLL code can do the same job as many lines of assembly language;
Facilitates collaborative working;
Programs are (more) portable (to other hardware platforms) // programs are
(more) machine-independent;
Availability of flow control structures; A. example(s) eg loops, selection
Built-in support for data structures; A. example(s) eg arrays, records
Language can be problem-oriented;
Support for different paradigms; A. examples eg functional programming
Improved features for supporting modularity; A. ability to use subroutines, classes
NE. implied support of modularity by use of libraries
Availability of libraries of (wider range of) pre-defined functions // availability of
built-in functions;
Max 4
How to answer it
Classification of Software, OS Roles & High-Level Languages
This question evaluates foundational knowledge from Topic 4.5 (Software and Software Development):
- Taxonomy of software: Distinguishing application vs system software, utilities, libraries, and translators (assemblers, compilers, interpreters).
- Roles of the Operating System: Explaining exact operational mechanisms (processor scheduling, memory allocation, hiding hardware complexities) rather than generic headings.
- Programming paradigms: Evaluating the practical and structural benefits of high-level languages (HLLs) over low-level languages (assembly and machine code).
Software Hierarchy Classification (Figure 1)
Completing Table 1 to identify missing categories in the software taxonomy tree
✅ Correct Labels
| Position | Correct Label |
|---|---|
| 1 | Application (software) / Applications |
| 2 | Utility software / Utilities / Utility |
| 3 | Libraries / Library programs |
| 4 | Interpreter |
• 4 correct = 2 marks
• 2 or 3 correct = 1 mark
• 0 or 1 correct = 0 marks
💡 Key Knowledge
- Software Tree Split: Top tier divides into Application Software (carries out user-oriented tasks) and System Software (manages and operates computer hardware).
- System Software: Composed of Operating Systems, Utility Programs (system maintenance tasks like compression, anti-virus), Library Programs (pre-compiled routines), and Translators.
- The 3 Translators: Assembler (assembly to machine code), Compiler (source code to machine code in one go), and Interpreter (translates and executes line by line).
❌ Common Errors & Lost Marks
- Informal terms: Writing apps for position 1 is strictly marked as Not Enough (NE). Use the formal academic term: Application software.
- Mixing up levels: Confusing Translators with Utilities (e.g. putting "Compilers" under utility programs).
🧠 Exam Technique
Trace the tree branches: Look at the children nodes to deduce the parent!
• Children are Word Processor and Photo Editor → Parent must be Application Software.
• Siblings under Translators are Assembler and Compiler → The missing 3rd translator is Interpreter.
Functions of an Operating System
Describing two distinct functions other than allocating I/O devices
✅ Any Two Distinct Descriptions (1 mark each)
- Processor scheduling: Allocates processor time/cores to competing processes using time-slices to decide which process executes and when.
- Memory management: Allocates RAM/primary memory to active processes and manages moving inactive data/pages between RAM and virtual memory/paging file.
- Hardware abstraction / Virtual Machine: Hides the physical complexities of hardware components from applications and users.
- Interrupt handling: Detects hardware/software interrupts and invokes the appropriate Interrupt Service Routine (ISR).
- File / Secondary Storage management: Allocates space on storage devices for files, maintains directory structures, and manages the file allocation table (FAT/file system).
- User authentication & security: Manages access rights and permissions, authenticates user credentials (passwords/biometrics), and isolates processes into sandboxes so they cannot access unauthorised memory.
❌ Examiner Pitfalls — Where Students Failed
- Giving vague 2-word labels: The question asks to describe. Simply writing "Memory management" , "Processor management" , or "File management" earned 0 marks. You must state what the OS actually does (e.g. allocating RAM to processes).
- Repeating the prompt: Repeating "Allocates I/O devices" or "Manages I/O devices" is rejected as it is already given in the question stem.
- Vague interface statements: Stating merely "Provides a user interface" or "Hides complexities of computer" is Not Enough.
🧠 Exam Technique: The "Action + Resource" Formula
Always use the structure: [Verb / Action] + [Hardware / System Resource] + [Purpose].
Example: "Allocates (action) time slices of the CPU (resource) to competing processes (purpose)." This guarantees full marks.
Advantages of High-Level Languages (HLL)
Describing advantages of writing programs in a high-level language over low-level languages
✅ Any 4 Valid Points (1 mark each, Max 4)
- Readability & Maintenance: Code is much easier to understand, maintain, read, and debug because it uses English-like keywords and mathematical syntax.
- Portability (Machine Independence): Source code is portable across different processor architectures (different instruction sets) since compiler/interpreter handles machine translation.
- Higher Productivity: Faster development time; one statement in an HLL often equates to many lines of low-level assembly/machine code.
- Control & Data Structures: Availability of structured flow control (such as while loops, if-else branching) and complex built-in data structures (such as arrays, records, lists, dictionaries).
- Modularity & Abstraction: Built-in support for modular code via functions, procedures, subroutines, and object-oriented classes.
- Rich Standard Libraries: Access to extensive built-in libraries and pre-tested functions, reducing the need to reinvent low-level algorithms.
- Problem-Oriented & Multi-Paradigm: Allows programmer to focus on solving the logic of the problem rather than managing hardware registers and memory addresses.
❌ Common Misconceptions
- "HLL runs faster": INCORRECT! Low-level languages typically execute faster and require less memory overhead because they map 1:1 to machine architecture. HLL code is faster to write, not faster to run.
- "No translation needed": INCORRECT! HLL requires a compiler or interpreter to run, whereas machine code runs directly.
- Vague answers: Just writing "It is easier" without qualifying what is easier (e.g. easier to read, write, debug, maintain) loses marks.
🧠 Exam Technique: Structure Your 4 Marks
For a 4-mark descriptive question, write 4 distinct, well-developed sentences covering different aspects:
- Human perspective: Easier to read/debug due to English-like syntax.
- Hardware perspective: Portable/machine-independent (runs on different CPUs without rewriting).
- Productivity: One line of HLL replaces multiple assembly instructions, speeding up development.
- Language features: Offers high-level control structures (loops/selection) and built-in complex data structures.
Topics
4.6 Fundamentals of computer systems · 4.6.1 Hardware and software · 4.6.2 Classification of programming languages · 4.6.3 Types of program translator
Question and mark scheme from the AQA A-Level Computer Science examination, Paper 2, June 2025. QuestionVault is an independent revision resource; questions remain the copyright of the awarding body.