A trace table is a technique used to test an algorithm and predict step by step how the computer will run the algorithm. It can be used to understand or predict what an algorithm is doing and to identify potential logic errors (when the program compiles but does not produce the expected output).
The animation below demonstrate the use of a trace table used to track the values of variables as they change while the program is running. 
Using a trace table to test an algorithm is called dry run testing.
Your Task
Check the following algorithms and complete their trace tables. (Click on any cells of these tables to add content)
Algorithm #1: While Loop
i = 0 j = 10 WHILE i < j i = i + 1 j = j - 1 END WHILE OUTPUT(i) OUTPUT(j)
Trace Table
| Line Number | i | j | i < j | OUTPUT | |
|---|---|---|---|---|---|
| 1 | 0 | ||||
| 2 | 10 | ||||
| 4 | True | ||||
| 5 | 1 | ||||
| 6 | 9 | ||||
| 4 | True | ||||
| … |
Algorithm #2: Factorial
number = 5 factorial = number WHILE number>2 number = number - 1 factorial = factorial * number END WHILE OUTPUT(factorial)
Trace Table
| Line Number | number | factorial | number > 2 | OUTPUT | |
|---|---|---|---|---|---|
| 1 | 5 | ||||
| 2 | 5 | ||||
| … |
Algorithm #3: Fizz-Buzz Sequence
FOR i FROM 1 TO 20
IF i MOD 3 == 0 AND i MOD 5 == 0 THEN
OUTPUT "Fizz-Buzz"
ELSE IF i MOD 3 == 0 THEN
OUTPUT "Fizz"
ELSE IF i MOD 5 == 0 THEN
OUTPUT "Buzz"
ELSE
OUTPUT i
END IF
NEXT i
OUTPUT("The End")
Trace Table
| Line Number | i | i MOD 3 == 0 | i MOD 5 == 0 | OUTPUT | |
|---|---|---|---|---|---|
| 1 | 1 | ||||
| 2 | False | False | |||
| 4 | False | ||||
| 6 | False | ||||
| 8 | |||||
| 9 | 1 | ||||
| 1 | 2 | ||||
| … |
Algorithm #4: Max Function
FUNCTION max(a, b)
IF a>b THEN
RETURN a
ELSE
RETURN b
END IF
END FUNCTION
number1 = 7
number2 = 12
number3 = max(number1, number2)
OUTPUT(number3)
Trace Table
| Line Number | number1 | number2 | number3 | a | b | a>b | RETURN | OUTPUT | |
|---|---|---|---|---|---|---|---|---|---|
| 9 | 7 | ||||||||
| 10 | 12 | ||||||||
| 11 | 7 | 12 | |||||||
| 1 | 7 | 12 | |||||||
| … |


























