AQA A-Level Computer Science Paper 1, June 2025
Every question from AQA A-Level Computer Science Paper 1, June 2025 (7517): 12 questions, 99 marks, each with its mark scheme and topic.
- Question 1 11 marks
Explain principles of hash tables and their operations, compare linear and binary search complexities, and evaluate tractability and passes for sorting algorithms.
4.2 Fundamentals of data structures · 4.3 Fundamentals of algorithms · 4.4 Theory of computation · 4.2.6 Hash tables · 4.3.4 Searching algorithms · 4.3.5 Sorting algorithms · 4.4.4 Classification of algorithms
- Question 2 2 marks
Define the term decomposition.
4.4 Theory of computation · 4.4.1 Abstraction and automation
- Question 3 12 marks
State the purpose of Dijkstra's algorithm, explain why a graph is not a tree, complete an adjacency matrix, describe a recursive base case, and trace a depth-first pathfinding algorithm.
4.1 Fundamentals of programming · 4.2 Fundamentals of data structures · 4.3 Fundamentals of algorithms · 4.4 Theory of computation · 4.1.1 Programming · 4.2.4 Graphs · 4.2.5 Trees · 4.3.6 Optimisation algorithms · 4.4.1 Abstraction and automation
- Question 4 13 marks
Write a program that uses a transposition cipher to encrypt a user-entered string into a specified number of columns, ignoring non-alphabetic characters, and provide test evidence.
4.1 Fundamentals of programming · 4.2 Fundamentals of data structures · 4.13 Systematic approach to problem solving · 4.1.1 Programming · 4.2.1 Data structures and abstract data types · 4.13.1 Aspects of software development
- Question 5 5 marks
Describe two advantages of Reverse Polish Notation (RPN), explain the concept of a dictionary data structure, and identify the data structure represented by an operators list.
4.2 Fundamentals of data structures · 4.3 Fundamentals of algorithms · 4.2.1 Data structures and abstract data types · 4.2.3 Stacks · 4.2.7 Dictionaries · 4.3.3 Reverse Polish
- Question 6 14 marks
Complete a state transition table for an FSM, analyse differences between alternative FSM diagrams, answer theoretical questions on regular expressions and sets, and write BNF production rules for arithmetic expressions.
4.4 Theory of computation · 4.4.2 Regular languages · 4.4.3 Context-free languages
- Question 7 3 marks
Explain limitations and behavior of the EvaluateRPN subroutine, including identifying an expression causing evaluation failure and explaining the role of its final selection structure.
4.1 Fundamentals of programming · 4.3 Fundamentals of algorithms · 4.4 Theory of computation · 4.1.1 Programming · 4.3.3 Reverse Polish · 4.4.1 Abstraction and automation
- Question 8 1 mark
State the identifier for a variable in the Skeleton Program that could represent a vector.
4.2 Fundamentals of data structures · 4.2.8 Vectors
- Question 9 5 marks
Modify the PlayGame subroutine to reduce the player's score when numbers appear in penalty positions in the list of targets, and provide test evidence.
4.1 Fundamentals of programming · 4.2 Fundamentals of data structures · 4.1.1 Programming · 4.2.1 Data structures and abstract data types
- Question 10 7 marks
Modify the Skeleton Program subroutines CheckIfUserInputValid, ConvertToRPN, and EvaluateRPN to support right-associative exponentiation.
4.1 Fundamentals of programming · 4.3 Fundamentals of algorithms · 4.4 Theory of computation · 4.1.1 Programming · 4.3.3 Reverse Polish · 4.4.2 Regular languages
- Question 11 12 marks
Modify the Skeleton Program by writing a new subroutine DisplayTargetMultiples to identify and display values appearing more than once in the Targets list, updating DisplayState to call it, and providing a test screenshot.
4.1 Fundamentals of programming · 4.2 Fundamentals of data structures · 4.1.1 Programming · 4.2.1 Data structures and abstract data types
- Question 12 14 marks
Implement a new subroutine CanGetATargetUsingThreeNumbers to determine if a target value can be made from three available numbers, amend DisplayState to show the result, provide test output, and calculate the total number of valid three-number expressions.
4.1 Fundamentals of programming · 4.4 Theory of computation · 4.13 Systematic approach to problem solving · 4.1.1 Programming · 4.4.1 Abstraction and automation · 4.4.4 Classification of algorithms · 4.13.1 Aspects of software development