Section 1 of 0
In Progress

Programming methodologies (Paired programming / Parsons problems)

10th March 2020

One of the challenges, especially when moving from block-based languages, like Scratch, to text-based languages, such as Python, is that students can easily get frustrated with syntax errors. Two methods that help reduce this frustration are ‘Parsons problems’ and ‘Paired Programming’. 

Parsons Problems

Parsons problems are programming puzzles where a working solution to a problem has been broken up into blocks of code and jumbled up. Students are given the mixed-up code and challenged to re-assemble the code in the correct order. Some Parsons problems, often referred to as two-dimensional Parsons problems, also require the code blocks to be indented correctly. Parsons problems can also contain extra lines of code, called distractors, which are not needed for the code to work. Although primarily used with text-based languages, Parsons problems can also be used with block-based languages too! The idea behind parson problems is to allow students to focus on the core concepts such as flow of control, conditionals and loops, without the frustration of syntax errors.

Practical example.

Parsons problem (jumbled up code)
Code for drawing a square in Scratch
Parsons solution
Code for drawing a square in Scratch
Parsons ProblemParsons solution

Paired Programming

Paired programming, as the name suggests, sees students working in pairs with one taking the role of the driver (inputs the code into the computer), and the other assuming the role of navigator (reading out instructions and checking each line of code as it is typed in.)

Pairing students up makes sense for a number of reasons, even more so when learning how to code! Research shows that paired programming can improve overall confidence, produce less errors and increase engagement compared to learning to code individually. In fact, it is a practice that is widely used in industry by professional programmers.

Top Tips:

1. Pair carefully – Whilst, at first, it may seem beneficial to pair up higher-achieving students with lower ability, I find this can have negative effects as, often, one student may be feel they being held back or another taking over completely. Experience shows that pairing students of similar ability seems to produce the best outcomes.

2. Switch roles regularly – Ensure that all the students get a fair share of being both driver and navigator. I find that setting a timer / alarm for 5-minute intervals helps manage the students time effectively and keeps them engaged!