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.

Original question paper

  1. 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

  2. Question 2 2 marks

    Define the term decomposition.

    4.4 Theory of computation · 4.4.1 Abstraction and automation

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

More AQA A-Level Computer Science papers