Types of Errors (AQA GCSE Computer Science): Revision Note

Exam code: 8525

James Woodhouse

Written by: James Woodhouse

Reviewed by: Lucy Kirkham

Updated on

  • Designing algorithms is a skill that must be developed and when designing algorithms, mistakes will be made

  • There are two main types of errors that when designing algorithms a programmer must be able to identify & fix, they are:

    • Syntax errors

    • Logic errors

Syntax & Logic Errors

What is a syntax error?

  • A syntax error is an error that breaks the grammatical rules of a programming language and stops it from running

  • Examples of syntax errors are:

    • Typos and spelling errors 

    • Missing or extra brackets or quotes

    • Misplaced or missing semicolons

    • Invalid variable or function names

    • Incorrect use of operators

    • Incorrectly nested loops & blocks of code

Examples

Syntax Errors

Corrected

age = input("Enter age)

favNum == input("Enter favourite number")

print age + favNum)

print (age x favNum)

age = input("Enter age") # Missing "

favNum = input("Enter favourite number")


# Only one equal sign

print (age + favNum) # Missing bracket

print (age * favNum) # Multiply symbol is *

num1 = imput("Enter the first number")

num2 = input(Enter the second number)

if num1 > num2 then

print(num1 + " is larger")

elseif num2 > num1 then

  Print(num2 + " is larger")

else

  print("The numbers are the same")

endif

num1 = input("Enter the first number")

# Misspelt word 

num2 = input("Enter the second number")

# Missing quotes

if num1 > num2 then

  print(num1 + " is larger") # Block

not indented

elseif num2 > num1 then

  print(num2 + " is larger") # Lowercase p

else

  print("The numbers are the same")

endif

What is a logic error?

  • A logic error is where incorrect code is used that causes the program to run, but produces an incorrect output or result

  • Logic errors can be difficult to identify by the person who wrote the program, so one method of finding them is to use 'Trace Tables'

  • Examples of logic errors are:

    • Incorrect use of operators  (< and >)

    • Logical operator confusion (AND for OR)

    • Looping one extra time

    • Indexing arrays incorrectly (arrays indexing starts from 0)

    • Using variables before they are assigned

    • Infinite loops

Example

  • An algorithm is written to take as input the number of miles travelled. The algorithm works out how much this will cost, with each mile costing £0.30 in petrol. If this is greater than £10.00 then it is reduced by 10%.

Logic errors

Corrected

miles = input("Enter the number of miles)

 cost = 0.3

 if cost = 10 then

cost = cost * 0.1

 endif

 print(cost)

miles = input("Enter the number of miles")

cost = miles * 0.3

if cost > 10 then

cost = cost * 0.9

endif

print(cost)

Commentary

  • The cost was set to 0.3 (30p) instead of correctly calculating the cost of the trip by applying the formula, miles * 0.3

  • The cost should only be reduced if the cost is greater than 10, in the original algorithm it only checked if the cost was equal to 10

  • To calculate a discount of 10%, either calculate what 10% is and subtract it from the original or multiply the full cost by 0.9. In the original algorithm it calculates what 10% is and sets the cost to equal it.

Identify & Categorise Errors

How can you identify and categorise errors?

  • As a result of a syntax error breaking the rules of the programming language, the program will not execute

  • These are easily identifiable as the IDE will provide information about what the error is

    • This is done to help the programmer be able to fix the issue

  • To help practise this skill, a selection of program screenshots will be used

The errors

  • In the code below, there is a program which allows the user to enter how many items they wish to add to a shopping list

  • The code then allows the user to

    • Enter their chosen number of items into a list

    • Output the list to the screen

  • The code contains 3 syntax errors, highlighted with blue boxes

MN6hXX4I_screenshot-2024-02-28-at-09-16-13

Error 1

  • Line 3: Missing a second bracket at the end of integer input

    • The error message below is what the IDE provided to help the programmer identify the error

    • A top tip when programming is to look at the line of code above the one given in the error message

      • For example, this error message claims line 6 is the issue, however, the code above line 6 (line 3) is the line that contains the error

screenshot-2024-02-28-at-09-17-20

Error 2

  • Line 6: Missing a colon at the end of a for loop, while loop or if statement

    • As mentioned earlier, the error message identifies the line after the actual error

    • The error is on line 6, however, the syntax error message identifies the line below it

      • Always check the line above for any potential errors

screenshot-2024-02-28-at-09-18-48

Error 3

  • Line 7: Using == which is used for a comparison instead of a single = to declare a variable

    • This would return the same error as above, this time the user would more easily be able to identify the issue as it is on line 7

screenshot-2024-02-28-at-09-18-48

The fix

  • Once all fixes are in place, the code should appear as follows and the program should execute as intended

screenshot-2024-02-28-at-09-15-41
screenshot-2024-02-28-at-09-17-50

Identifying logic errors

  • Logic errors can be more challenging to locate compared to syntax errors

  • This is because the program will still run but will not produce the expected output that the programmer intended

  • The most obvious areas to check for logic errors are:

    • Logical operators (<, >, ==, !=)

    • Boolean operators (AND, OR, NOT)

    • Division by 0

  • To help demonstrate this skill, another snippet of program code is used

r883LnnA_screenshot-2024-02-28-at-09-51-14
  • In this example, the incorrect Boolean operator has been used, OR instead of AND

  • The result means the else clause in the if statement would never be caught

screenshot-2024-02-28-at-09-51-20
  • At first glance, entering normal test data such as 14, the program works as intended

  • Entering erroneous data or boundary test data which is outside of the range would result in the error

    • When entering the age of 21, it still outputs that the user is in secondary school

screenshot-2024-02-28-at-09-51-35
  • By changing the OR to AND, this corrects the logic error

screenshot-2024-02-28-at-09-51-48
screenshot-2024-02-28-at-09-52-00

Worked Example

Nine players take part in a competition, their scores are stored in an array. The array is named scores and the index represents the player

Array scores

Index

0

1

2

3

4

5

6

7

8

Score

7

9

2

11

8

4

13

10

5


The following program counts the total score of all the players

for x = 1 to 8

total = 0

total = total + scores[x]

next x

print(total)

When tested, the program is found to contain two logic errors.

Describe how the program can be refined to remove these logic errors [2]

How to answer this question

  • A common logic error if an algorithm contains a loop is checking it loops the correct amount of times, how many times should this algorithm loop?

Answer

  • For loop changed to include 0

  • total = 0 moved to before loop starts

Guidance

  • Moving total outside the loop is not enough, it could be moved after the loop which would still be a logic error)

  • Corrected code accepted

total = 0

for x = 0 to 8

total = total + scores[x]

next x

print(total)

You've read 0 of your 5 free revision notes this week

Unlock more, it's free!

Join the 100,000+ Students that ❤️ Save My Exams

the (exam) results speak for themselves:

Did this page help you?

James Woodhouse

Author: James Woodhouse

Expertise: Computer Science & English Subject Lead

James graduated from the University of Sunderland with a degree in ICT and Computing education. He has over 14 years of experience both teaching and leading in Computer Science, specialising in teaching GCSE and A-level. James has held various leadership roles, including Head of Computer Science and coordinator positions for Key Stage 3 and Key Stage 4. James has a keen interest in networking security and technologies aimed at preventing security breaches.

Lucy Kirkham

Reviewer: Lucy Kirkham

Expertise: Head of STEM

Lucy has been a passionate Maths teacher for over 12 years, teaching maths across the UK and abroad helping to engage, interest and develop confidence in the subject at all levels.Working as a Head of Department and then Director of Maths, Lucy has advised schools and academy trusts in both Scotland and the East Midlands, where her role was to support and coach teachers to improve Maths teaching for all.