Types of Errors (AQA GCSE Computer Science)

Revision Note

James Woodhouse

Expertise

Computer Science

  • 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 0 free revision notes

Get unlimited access

to absolutely everything:

  • Downloadable PDFs
  • Unlimited Revision Notes
  • Topic Questions
  • Past Papers
  • Model Answers
  • Videos (Maths and Science)

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

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.