AQA A Level Computer Science (spec 7517) is one of the most rigorous A Levels available, combining deep theory with practical programming skills. The course is assessed through two written papers and a substantial programming project (the NEA/skeleton code). This page provides free revision resources, interactive tools and tutoring support tailored to every section of the AQA 7517 specification — from data structures and algorithms to functional programming and the theory of computation.
All tools are completely free — no account required. They work alongside your classroom teaching and are designed around the AQA A Level specification.
These questions are in the style of AQA A Level exam questions. Use the hint to check your approach, then visit the Question Bank for hundreds more with mark schemes.
Explain what is meant by Big O notation and state the time complexity of a binary search.
Hint: Big O notation describes how the running time (or space) of an algorithm grows relative to input size n [1]; it describes the worst-case growth rate [1]. Binary search: O(log n) — each comparison halves the search space [1].
Describe how a hash table resolves collisions using chaining.
Hint: When two keys hash to the same index [1], a linked list (chain) is stored at that index [1]; each new collision appends to the list; to search, hash the key and traverse the chain [1].
Write a recursive function in Python that returns the nth Fibonacci number.
Hint: Base cases: fib(0)=0, fib(1)=1 [1]. Recursive case: return fib(n-1) + fib(n-2) [1]. Correct function signature [1]. Correct output demonstrated [1]. Note: no marks for iterative solution.
Explain the purpose of normalisation in database design and describe what first normal form (1NF) requires.
Hint: Normalisation: process of structuring a database to reduce redundancy and improve data integrity [1]. 1NF: each table cell contains a single (atomic) value [1]; each record is unique (primary key exists) [1]; no repeating groups of columns [1].
Using functional programming concepts, explain what a higher-order function is and give an example using map().
Hint: Higher-order function: takes another function as an argument, or returns a function [1+1]. map() applies a given function to every element of a list and returns a new list [1]. Example: map(lambda x: x*2, [1,2,3]) returns [2,4,6] [1].
Want hundreds more practice questions?
The Question Bank has exam-style questions with worked mark schemes — all free.
Gareth is an experienced Computer Science teacher and tutor specialising in AQA A Level and A Level. Sessions cover the topics you find most difficult — from understanding the FDE cycle to debugging your NEA code. Lessons are online via video call with a shared digital workspace.
The NEA (Non-Examined Assessment) is a programming project worth up to 70 marks — around 20% of the total A Level. AQA releases a skeleton code file each year in the summer before the exam year. Students extend this code to build a working program. The project is marked by the teacher and moderated by AQA.
AQA does not specify a language for Paper 1 or Paper 2 — pseudocode or any high-level language is accepted. For the NEA, students typically use Python, Java or C#. Python is most common. The NEA skeleton code is published in multiple languages each year.
Paper 1 (Computer Systems) is 2 hours 30 minutes, worth 100 marks. Paper 2 (Algorithms and Programming) is also 2 hours 30 minutes, worth 100 marks. Both papers together account for approximately 80% of the total A Level; the NEA accounts for the remaining 20%.
Students most commonly struggle with: Big O notation and time complexity, Turing machines and the halting problem, recursion and recursive data structures, graph traversal algorithms (Dijkstra, A*), functional programming paradigms, and the NEA project planning and documentation.
AQA 7517 assesses: stacks, queues, linked lists, binary trees, hash tables, graphs, and heaps. You need to know operations (add, remove, search, traverse) for each, including complexity. These are also directly tested in the Algorithm Archives coding course on this site.
AQA typically releases the skeleton code in July, giving students the full summer and autumn/spring term to work on their NEA. The final submission deadline is usually in May of the exam year. Check AQA's website for the current year's precise release and deadline dates.