‘Bugs’ in computing terms, refer to errors in algorithms and code. Therefore, ‘debugging’ refers to the process of finding and fixing the bugs.
Debugging within computing and the curriculum shouldn’t be seen as an error but more so as a learning opportunity and a way to promote characteristics of learning such as perseverance and problem solving skills.
There are a number of ways in which pupils can approach debugging, however it simple terms debugging consists of (Barefoot Computing):
- Plan and predict what should happen or what you want to happen (e.g. The ‘sprite should move across the screen and grow within Scratch).
- Test it to find out what actually happens (e.g. Press the green flag button within Scratch).
- Decipher the mistake/where something has not gone to plan (e.g. The ‘sprite’ did not grow, why?).
- Debug (fix) it (e.g. recode the script within Scratch).
Then this basic process is repeated until it goes to plan. This assists children in their knowledge of programming as well as developing their computational thinking skills.
Debugging within the National Curriculum:
KS1: pupils are taught to create and debug simple programs.
KS2: pupils learn to use logical reasoning to detect and correct errors in algorithms and programs. Logical reasoning is important as pupils should be able to explain why their program didn’t work, and why their fix worked. Additionally, pupils need to become self reliant in their computing and debugging, they are not likely to learn and persevere if help is always readily available from other pupils or adults. Pupils also learn to design, write and debug programs that accomplish specific goals. This can easily be modelled by the teacher creating ‘failed’ codes and in which the pupils must debug in order to achieve a specific goal or similarly, it can be done by peer assessing or creating problems for a partner to debug using their logical reasoning skills.
Rubber-ducking – a strategy to help debug:
I read about a strategy to help students debug on a blog post titled Debugging and the growth mindset. The technique was called rubber ducking. Each child is given a rubber duck within computing lessons. If their program goes wrong, the child should explain to their rubber duck what their program was meant to do, and what it actually does. By articulating their plan and results, children reflect on what they have inputted and often spot the mistake and fix the bug whilst explaining. I would use this within my computing lessons, as personally I often talk myself through problems and it really helps in spotting where the issue has risen from and how to fix it. I think it is a great strategy that helps children to realise that randomly changing aspects of the code and programming might not always fix the bug. Logical reasoning is key to computing.
The blog post Debugging and the growth mindset details many other additional techniques to help children develop as debuggers and how to take advantage of the cross curricular links debugging can offer.