Paper 1 Topic 1: Computational Thinking

Basic knowledge and understanding of the programming concept, theory part

1.1.1 Understand what an algorithm is, what algorithms are used for and be able to interpret algorithms (flowcharts, pseudocode, written descriptions, program code).

Syllabus Statement

An algorithm is a set of step-by-step instructions designed to perform a task or solve a problem.

Flowchart symbols :

! decision diamond: could be while loop, or if/elif statements

1.1.2 Understand how to create an algorithm to solve a particular problem, making use of programming constructs (sequence, selection, iteration) and using appropriate conventions (flowchart, pseudocode, written description, draft program code).

Syllabus statement

You should be able to design an algorithm to solve a specific problem using:

  • Sequence – steps in order.

  • Selection – decisions (e.g. if, else).

  • Iteration – repetition (e.g. for, while loops).

1.1.3 Understand the purpose of a given algorithm and how an algorithm works.

Syllabus statement

You should be able to:

  • Describe what an algorithm does (its goal).

  • Explain how it works — step by step.

  • Identify inputs, processes, and outputs.

1.1.4 Understand how to determine the correct output of an algorithm for a given set of data.

Syllabus statement

You should be able to:

  • Trace an algorithm for a given set of inputs.

  • Work out the expected output (sometimes using a trace table to keep track of variables).

1.1.5 Understand how to identify and correct errors in algorithms, including using trace tables.

Syllabus statement

You should be able to:

  • Spot logical errors (the algorithm works but gives wrong results).

Definition:Errors which cause incorrect or unwanted behaviours such as using the wrong arithmetic operator or mixing up variable names.

  • Spot syntax errors (in code form, prevents running).

Definition:Errors in the rules of the programming language such as a missing ':', misspelled words and missing or incorrect indentation.

  • Spot runtime errors (program crashes and does not run)

Definition: Errors which cause a program to crash such as dividing by 0 or 'index out of range'.

  • Use trace tables to simulate execution and debug the algorithm.

1.1.6 Understand how to code an algorithm in a high-level language.

Syllabus statement

You should be able to:

  • Translate pseudocode or a flowchart into a high-level language (like Python).

  • Ensure that the algorithm’s behaviour remains the same when implemented in code.

1.1.7 Understand how the choice of algorithm is influenced by the data structures and data values that need to be manipulated.

Syllabus statement

You should understand:

  • Different algorithms work better with certain data types or data structures.

    • Example: Binary search only works on sorted lists.

    • Example: Some sorting algorithms perform better on linked lists than arrays.

1.1.8 Understand how standard algorithms work (bubble sort, merge sort, linear search, binary search).

Syllabus statement

You should know how these algorithms work and when to use them:

  • Bubble sort – repeatedly swaps adjacent items if in the wrong order.

  • Merge sort – splits list into halves, sorts each half, then merges them.

  • Linear search – checks each item in a list until the target is found.

  • Binary search – repeatedly halves a sorted list to find a target value.

1.1.9 Be able to evaluate the fitness for purpose of algorithms in meeting specified requirements efficiently, using logical reasoning and test data.

Syllabus statement

You should be able to:

  • Compare algorithms for efficiency (speed, memory use).

  • Use test data and logical reasoning to judge whether an algorithm meets requirements.

  • Identify the best algorithm for a particular problem.