What are Parson’s Puzzles?
Teacher,
Cat enthusiast
- The 2022 End of Year Website Update - 01/01/2023
- Celebrating Ada Lovelace day - 10/10/2022
- Website update 5/9/22 - 05/09/2022
Listen to this article
Parsons puzzles, or Parsons problems, are designed to test students ability to think logically when it comes to programming without having to worry about syntax or writing the code itself as all the code is provided in blocks or lines of code for them. The blocks or lines of code that a student needs for the program are not provided in sequence, so the student needs to fit the blocks of code together in the correct sequence to make the programming complete and function correctly.
Table of Contents
ToggleWhat are they?
Parson puzzles have become a popular way to teach computer science students programming as it allows students to think about the sequencing of code rather than get bogged down with trying to remember the correct syntax and commands. It is especially useful for students who are newer to programming as it reduces the cognitive load on the student.
Parson problems were first introduced as a web based application where students could drag and drop the lines of code into the correct position (like our versions on the website) while others have produced paper based versions where students are given space to write down the code in the correct order.
In some forms of Parson puzzles (more advanced versions), extra lines of code are added to the pool of code that a learner can draw from (called distractors) meaning that the learner has to think about what is needed in the program, and what is not.
Unfortunately, research into distractors from Harms et al, has concluded that the inclusion of distractors in Parson problems increased the cognitive load on younger learners and decreased the overall learning efficiency 1Harms, Kyle & Chen, Jason & Kelleher, Caitlin. (2016). Distractors in Parsons Problems Decrease Learning Efficiency for Young Novice Programmers. 241-250. 10.1145/2960310.2960314.. Easier versions feature only the code that is needed and is simply a case of the learner putting these lines of code into the correct order.
History of Parson puzzles
While the idea of sorting objects, numbers and words into a structured order is certainly not new, the concept of using this for programming task assessment was first introduced in 2006 by Dale Parsons and Patricia Haden 2Dale Parsons and Patricia Haden. 2006. Parson’s programming puzzles: a fun and effective learning tool for first programming courses. In Proceedings of the 8th Australasian Conference on Computing Education – Volume 52 (ACE ’06). Australian Computer Society, Inc., AUS, 157–163..
The idea behind developing Parson puzzles were to “Maximize the engagement” by making the task puzzle like, “Model good code” by showing well written, complete code fragments, and “Provide immediate feedback” so that learners can see where problems are, and correct them instantly instead of having to wait for direct teacher input.
Their initial research trialled using web based Parson puzzles for students learning Pascal programming in Otago Polytechnic, New Zealand where 82% of students questioned found the puzzles useful for learning Pascal.
From this initial development and research, Parson puzzles have been incorporated into many other programming courses around the world and recently academia has started to produce more research into the effectiveness of Parson problems in the learning of programming languages, something which was not quantified in the initial implementation.
Adaption and flexibility of Parson problems
The advantage of Parson problems is that they can be easily adapted for different ability levels. An example of this is the inclusion or exclusion of indentation that needs to be provided by the learner. For students just learning about programming, indentation can be tricky and lead to an increase in cognitive load. In the basic puzzles on our website, students do not need to think about indentation as the code is already indented for them. However in the Challenge Parson problems that we provide, students must indent the block of code correctly in order to complete the task.
This flexibility allows students who have had previous programming experience to be challenged while those who are new to programming are provided with the same task but with a lower cognitive load.
Should Parson problems be used to teach programming?
While Parson puzzles on their own would not be effective to teach programming, they are a tool that can help students to step back from the syntax and statements and focus on the bigger picture of what the code is actually doing and the sequence it needs to be in to work correctly.
It also provides a more engaging way for students to look at the code and ensures that they understand what the individual lines of code are doing. A Parson problem is also low risk, and allows the students to experiment with code sequence if they didn’t get the order correct first time, without the risk of ‘breaking’ the program and getting frustrated due to a wrong statement or piece of syntax.
However, it should be noted that students should have a basic background with programming concepts and be familiar with what the lines of code do before being introduced to a Parson puzzle. With no concept of programming or what the lines of code do, the learner will simply be guessing at the order and this will not help them in their learning journey.
Conclusion
While it is clear that Parson puzzles fulfil the original intentions for their creation, perhaps what is less clear is how effective they really are. Research into Parson puzzles is still ongoing 3Du, Yuemeng & Luxton-Reilly, Andrew & Denny, Paul. (2020). A Review of Research on Parsons Problems. 195-202. 10.1145/3373165.3373187., with an emphasis within academia on quantifiable data as to the effectiveness of Parson problems in helping students to learn programming languages.
While effectiveness is not clear at this point in time, they are an excellent way to engage students and provide a way to trace algorithms, discuss statements, syntax and sequence in a slightly different way while modelling good quality code.
If you are teaching programming, Parson problems should be a part of your learning toolkit and you can use our FREE online versions available in Python and VB.Net as part of your teaching practice.