Skip to topic
    ← Back to course topics

    Fundamentals of algorithms — AQA GCSE Computer Science

    Test yourself on Fundamentals of algorithms with AQA GCSE practice questions.

    Start free

    7 days Premium · Then free forever · No card, no charge

    Fundamentals of algorithms explained

    This topic introduces the fundamental concepts of algorithms, focusing on the systematic approach to problem-solving.

    Read the full explanation

    It covers the essential techniques of decomposition and abstraction, alongside the representation of algorithms using flowcharts, pseudocode, and program code.

    Read the Fundamentals of algorithms study guideFull revision notes for AQA GCSE Computer Science

    What to demonstrate

    1. Definition of an algorithm as a sequence of steps to complete a task
    2. Distinction between an algorithm and a computer program
    3. Definition and application of decomposition to break down problems
    Show all 7 objectives
    1. Definition and application of abstraction to remove unnecessary detail
    2. Correct use of AQA standard pseudocode
    3. Identification of inputs, processing, and outputs within an algorithm
    4. Use of trace tables to determine the purpose and logic of an algorithm

    Fundamentals of algorithms exam tips

    Topic Overview

    Fundamentals of algorithms is the bedrock of computer science, covering how to design step-by-step solutions to problems. This topic introduces the concept of an algorithm as a precise, unambiguous set of instructions that can be followed to complete a task or solve a problem. You'll learn about key building blocks like sequence, selection, and iteration, and how to represent algorithms using pseudocode and flowcharts. Understanding algorithms is essential because they form the logic behind every program you'll write, and they help you think computationally—breaking down complex problems into manageable steps.

    In the AQA GCSE specification, this topic is assessed both in written exams and through the non-exam assessment (NEA). You'll need to be able to design, interpret, and correct algorithms, as well as trace their execution to determine outputs. The skills you develop here—logical reasoning, problem decomposition, and systematic thinking—are transferable to many other areas of computing, including programming, data structures, and even network protocols. Mastering algorithms early gives you a strong foundation for the rest of the course.

    Algorithms are everywhere in the real world: from search engines using sorting algorithms to GPS systems using shortest-path algorithms. By studying this topic, you'll understand how computers process data and make decisions. You'll also learn to evaluate algorithm efficiency, which is crucial for writing code that runs quickly and uses memory wisely. This topic isn't just about passing exams—it's about becoming a better problem solver in the digital age.

    Key Concepts
    • →Decomposition: Breaking a complex problem into smaller, more manageable sub-problems, each of which can be solved independently.
    • →Abstraction: Removing unnecessary details to focus on the essential features of a problem, making it easier to design an algorithm.
    • →Algorithmic thinking: The ability to define clear steps to solve a problem, using sequence (order of steps), selection (making decisions with IF/ELSE), and iteration (repeating steps with loops).
    • →Representation: Using pseudocode (a simplified programming language) and flowcharts (diagrams with standard symbols) to design and communicate algorithms.
    • →Efficiency: Considering how many steps an algorithm takes (time complexity) and how much memory it uses (space complexity), often measured in terms of input size.
    Marking Points
    • Definition of an algorithm as a sequence of steps to complete a task
    • Distinction between an algorithm and a computer program
    • Definition and application of decomposition to break down problems
    • Definition and application of abstraction to remove unnecessary detail
    • Correct use of AQA standard pseudocode
    • Identification of inputs, processing, and outputs within an algorithm
    • Use of trace tables to determine the purpose and logic of an algorithm
    Examiner Tips
    • 💡Always check the required format for the response (e.g., pseudocode, flowchart, or program code) as specified in the question
    • 💡When using trace tables, ensure every variable change is recorded step-by-step to avoid logic errors
    • 💡Practice identifying inputs, processes, and outputs in real-world scenarios to build intuition
    • 💡Use the official AQA pseudocode guide for all written responses
    • 💡When tracing algorithms, always create a trace table with columns for each variable and the output. Update values step by step—this helps avoid mistakes and shows the examiner your method.
    • 💡For algorithm design questions, use clear, unambiguous language. If using pseudocode, stick to the AQA pseudocode guide (e.g., use 'INPUT', 'OUTPUT', 'IF...THEN...ELSE', 'WHILE...DO'). Avoid vague terms like 'repeat until done'.
    • 💡Always check your algorithm with a simple test case (e.g., small numbers or a short list) to verify it works. This catches logical errors and demonstrates thoroughness.
    Common Mistakes
    • Confusing an algorithm with a computer program
    • Failing to identify all inputs, processing steps, or outputs in a given algorithm
    • Incorrectly applying trace tables, leading to errors in determining the algorithm's purpose
    • Using non-standard or ambiguous pseudocode syntax
    • Misconception: An algorithm must be written in a programming language. Correction: Algorithms are language-independent; they can be expressed in plain English, pseudocode, or flowcharts. The key is precision, not syntax.
    • Misconception: A flowchart is the same as a program. Correction: A flowchart is a visual representation of an algorithm's logic, not executable code. It helps you plan before coding.
    • Misconception: Selection (IF statements) can only have two outcomes. Correction: Selection can handle multiple conditions using ELSE IF or nested IFs, allowing for complex decision-making.
    Frequently Asked Questions
    What is the difference between an algorithm and a program?
    An algorithm is a step-by-step plan for solving a problem, written in a language-independent way (e.g., pseudocode or a flowchart). A program is an algorithm that has been translated into a specific programming language (like Python) so that a computer can execute it. In short: an algorithm is the idea; a program is the implementation.
    How do I trace an algorithm in an exam?
    Use a trace table. Draw a table with a column for each variable and a column for output. Go through the algorithm line by line, updating the table as you go. For each step, write the new value of any variable that changes, and note any output. This systematic approach helps you avoid errors and shows the examiner your working.
    What is the difference between a while loop and a for loop?
    A 'for' loop is used when you know in advance how many times you want to repeat a block of code (e.g., 'FOR i FROM 1 TO 10'). A 'while' loop is used when you want to repeat until a condition is met, and you may not know the number of repetitions in advance (e.g., 'WHILE x > 0'). Both are forms of iteration, but they are suited to different scenarios.
    Do I need to memorise specific algorithms like bubble sort for the exam?
    Yes, for AQA GCSE you need to know standard algorithms including linear search, binary search, bubble sort, and merge sort. You should be able to describe how they work, trace them, and state their advantages/disadvantages. However, the exam may also ask you to design your own algorithm for a novel problem, so focus on understanding the logic rather than rote memorisation.
    What is meant by 'efficiency' of an algorithm?
    Efficiency refers to how many steps an algorithm takes (time complexity) and how much memory it uses (space complexity) as the input size grows. For example, a linear search checks each item one by one, so its time increases linearly with input size. A binary search is faster but requires the data to be sorted. In exams, you might be asked to compare algorithms based on efficiency, so understand terms like 'linear time' and 'logarithmic time'.
    How do I write pseudocode for the AQA exam?
    Use the AQA pseudocode guide (available on their website). Key rules: use 'INPUT' and 'OUTPUT' for input/output, 'IF...THEN...ELSE' for selection, 'WHILE...DO' and 'FOR...TO...NEXT' for iteration, and 'RETURN' for functions. Indent blocks clearly. Don't worry about exact punctuation, but be consistent. Practice writing pseudocode for simple problems like finding the maximum of three numbers.