First proposed by Dale Parsons and Patricia Haden, Parsons problems offer a simpler alternative to writing code by providing scrambled code blocks that must be placed in the correct order to solve a problem. 2D Parsons problems extend this by requiring the correct indentation after definitions, selections and iterations.
Parsons problems help students because they do not need to focus on syntax. Instead they can focus on problem solving, sequencing and logical thinking, thereby reducing cognitive load.
In this scheme 2D Parsons problems are used as part of the scaffolding process. If students are struggling to write a program, they have syntax guides to help them, but sometimes that is not enough. They need help with sequencing instructions too. Each subprogram is presented with a flowchart to aid this, and for students that need even more help they can use a Parsons problem in addition to the flowchart to achieve a working solution. This more methodical approach of combining a flowchart with a Parsons problem will yield greater gains for those students needing more support.
For most programs that only have one ot two subprograms, the complete program is shown in the Parsons problem. Students will need to decide which code lines belong to each part of the program by using the flowcharts. The more complex programs requiring multiple subprograms have been broken down into a number of smaller Parsons problems.
Where there are multiple solutions to the order of the lines of code, where possible these lines have been grouped together to ensure there is one solution. It’s not always possible without making the code trivial.
Example Parsons problem:
Code lines that should be indented need to be moved to the right in the solution to show the indentation required. Indentation is achieved by dragging the code line to the left/right in the yellow solution area.
As the code for the complete solution is contained in the Parsons problem, students should be encouraged to use this as a last resort. If you are scoring students on the completion of their programs, score half points if they needed a flowchart and quarter points if they needed a Parsons to solve the program.
You may be concerned that having a Parsons problem for every program means that students can easily see the answers. You need not worry, arranging the code using the correct indentation is not as easy as it looks, especially as the programs get longer. This is one reason why for most programs, the complete program is shown instead of just the code for one subprogram.
If students are orienteering towards using Parsons problems they are not being lazy, they are demonstrating a lack of confidence with writing code.