{"id":5784,"date":"2022-07-31T14:36:44","date_gmt":"2022-07-31T14:36:44","guid":{"rendered":"https:\/\/computerscienced.co.uk\/site\/?p=5784"},"modified":"2022-08-12T14:45:12","modified_gmt":"2022-08-12T14:45:12","slug":"what-are-parsons-puzzles","status":"publish","type":"post","link":"https:\/\/computerscienced.co.uk\/site\/what-are-parsons-puzzles\/","title":{"rendered":"What are Parson&#8217;s Puzzles?"},"content":{"rendered":"\n<div class=\"wp-block-columns has-border-background-color has-background is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p><strong>Listen to this article<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<figure class=\"wp-block-audio\"><audio controls src=\"https:\/\/computerscienced.co.uk\/site\/wp-content\/uploads\/2022\/08\/18296428_1660314932joint.mp3\" preload=\"none\"><\/audio><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-media-text alignwide is-stacked-on-mobile\" style=\"grid-template-columns:34% auto\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"1108\" height=\"759\" src=\"https:\/\/computerscienced.co.uk\/site\/wp-content\/uploads\/2021\/09\/undraw_right_places_h9n3.svg\" alt=\"\" class=\"wp-image-2597 size-full\"\/><\/figure><div class=\"wp-block-media-text__content\">\n<p>Parsons puzzles, or Parsons problems, are <strong>designed to test students ability to think logically<\/strong> when it comes to programming without having to worry about syntax or writing the code itself as <strong>all the code is provided in blocks or lines of code<\/strong> for them. The blocks or lines of code that a student needs for the program are <strong>not provided in sequence<\/strong>, so the student needs to <strong>fit the blocks of code together in the correct sequence<\/strong> to make the programming complete and function correctly.<\/p>\n<\/div><\/div>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-white ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/computerscienced.co.uk\/site\/what-are-parsons-puzzles\/#What_are_they\" >What are they?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/computerscienced.co.uk\/site\/what-are-parsons-puzzles\/#History_of_Parson_puzzles\" >History of Parson puzzles<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/computerscienced.co.uk\/site\/what-are-parsons-puzzles\/#Adaption_and_flexibility_of_Parson_problems\" >Adaption and flexibility of Parson problems<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/computerscienced.co.uk\/site\/what-are-parsons-puzzles\/#Should_Parson_problems_be_used_to_teach_programming\" >Should Parson problems be used to teach programming?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/computerscienced.co.uk\/site\/what-are-parsons-puzzles\/#Conclusion\" >Conclusion<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"What_are_they\"><\/span>What are they?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Parson puzzles have become<strong> a popular way to teach computer science students programming<\/strong> 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.  <strong>It is especially useful for students who are newer to programming<\/strong> as it reduces the cognitive load on the student.  <\/p>\n\n\n\n<p><strong>Parson problems were first introduced as a web based application<\/strong> where students could drag and drop the lines of code into the correct position (like our versions on the <a href=\"https:\/\/computerscienced.co.uk\/site\/parsons-puzzles\/\" data-type=\"page\" data-id=\"224\">website<\/a>) while others have produced paper based versions where students are given space to write down the code in the correct order.    <\/p>\n\n\n\n<p>In some forms of Parson puzzles (more advanced versions), <strong>extra lines of code are added to the pool of code that a learner can draw from (called distractors)<\/strong> meaning that the learner has to think about what is needed in the program, and what is not.  <\/p>\n\n\n\n<p>Unfortunately, research into distractors from Harms et al, has concluded that<strong> the inclusion of distractors in Parson problems increased the cognitive load on younger learners<\/strong> and decreased the overall learning efficiency <sup class=\"modern-footnotes-footnote \" data-mfn=\"1\" data-mfn-post-scope=\"0000000000000e770000000000000000_5784\"><a href=\"javascript:void(0)\"  role=\"button\" aria-pressed=\"false\" aria-describedby=\"mfn-content-0000000000000e770000000000000000_5784-1\">1<\/a><\/sup><span id=\"mfn-content-0000000000000e770000000000000000_5784-1\" role=\"tooltip\" class=\"modern-footnotes-footnote__note\" tabindex=\"0\" data-mfn=\"1\">Harms, Kyle &amp; Chen, Jason &amp; Kelleher, Caitlin. (2016). Distractors in Parsons Problems Decrease Learning Efficiency for Young Novice Programmers. 241-250. 10.1145\/2960310.2960314.<\/span>.  <strong>Easier versions feature only the code that is needed<\/strong> and is simply a case of the learner putting these lines of code into the correct order.  <\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"History_of_Parson_puzzles\"><\/span>History of Parson puzzles<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>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 <sup class=\"modern-footnotes-footnote \" data-mfn=\"2\" data-mfn-post-scope=\"0000000000000e770000000000000000_5784\"><a href=\"javascript:void(0)\"  role=\"button\" aria-pressed=\"false\" aria-describedby=\"mfn-content-0000000000000e770000000000000000_5784-2\">2<\/a><\/sup><span id=\"mfn-content-0000000000000e770000000000000000_5784-2\" role=\"tooltip\" class=\"modern-footnotes-footnote__note\" tabindex=\"0\" data-mfn=\"2\"><em>Dale Parsons and Patricia Haden. 2006. Parson&#8217;s programming puzzles: a fun and effective learning tool for first programming courses. In Proceedings of the 8th Australasian Conference on Computing Education &#8211; Volume 52 (ACE &#8217;06). Australian Computer Society, Inc., AUS, 157\u2013163.<\/em><\/span>. <\/p>\n\n\n\n<p>The idea behind developing Parson puzzles were to <strong>&#8220;Maximize the engagement&#8221;<\/strong> by making the task puzzle like, <strong>&#8220;Model good code&#8221;<\/strong> by showing well written, complete code fragments, and <strong>&#8220;Provide immediate feedback&#8221;<\/strong> so that learners can see where problems are, and correct them instantly instead of having to wait for direct teacher input.  <\/p>\n\n\n\n<p>Their initial research trialled using web based Parson puzzles for students learning Pascal programming in Otago Polytechnic, New Zealand where <strong>82% of students questioned found the puzzles useful for learning Pascal<\/strong>.  <\/p>\n\n\n\n<p>From this initial development and research, <strong>Parson puzzles have been incorporated into many other programming courses<\/strong> 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.      <\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Adaption_and_flexibility_of_Parson_problems\"><\/span> Adaption and flexibility of Parson problems<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The advantage of Parson problems is that they can be <strong>easily adapted for different ability levels<\/strong>.  An example of this is the <strong>inclusion or exclusion of indentation<\/strong> that needs to be provided by the learner.  For students just learning about programming, <strong>indentation can be tricky and lead to an increase in cognitive load<\/strong>.  In the basic puzzles <a href=\"https:\/\/computerscienced.co.uk\/site\/parsons-puzzles\/\" data-type=\"page\" data-id=\"224\">on our website<\/a>, <strong>students do not need to think about indentation as the code is already indented for them<\/strong>.  However in the Challenge Parson problems that we provide, <strong>students must indent the block of code correctly<\/strong> in order to complete the task.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/computerscienced.co.uk\/site\/wp-content\/uploads\/2022\/07\/parson-simple.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"432\" src=\"https:\/\/computerscienced.co.uk\/site\/wp-content\/uploads\/2022\/07\/parson-simple-1024x432.webp\" alt=\"\" class=\"wp-image-5788\" srcset=\"https:\/\/computerscienced.co.uk\/site\/wp-content\/uploads\/2022\/07\/parson-simple-1024x432.webp 1024w, https:\/\/computerscienced.co.uk\/site\/wp-content\/uploads\/2022\/07\/parson-simple-300x127.webp 300w, https:\/\/computerscienced.co.uk\/site\/wp-content\/uploads\/2022\/07\/parson-simple-768x324.webp 768w, https:\/\/computerscienced.co.uk\/site\/wp-content\/uploads\/2022\/07\/parson-simple-320x135.webp 320w, https:\/\/computerscienced.co.uk\/site\/wp-content\/uploads\/2022\/07\/parson-simple-480x202.webp 480w, https:\/\/computerscienced.co.uk\/site\/wp-content\/uploads\/2022\/07\/parson-simple-800x337.webp 800w, https:\/\/computerscienced.co.uk\/site\/wp-content\/uploads\/2022\/07\/parson-simple-50x21.webp 50w, https:\/\/computerscienced.co.uk\/site\/wp-content\/uploads\/2022\/07\/parson-simple-100x42.webp 100w, https:\/\/computerscienced.co.uk\/site\/wp-content\/uploads\/2022\/07\/parson-simple.webp 1354w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Parson problem simplified &#8211; no indentation required<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/computerscienced.co.uk\/site\/wp-content\/uploads\/2022\/07\/parson-challenge.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"297\" src=\"https:\/\/computerscienced.co.uk\/site\/wp-content\/uploads\/2022\/07\/parson-challenge-1024x297.webp\" alt=\"\" class=\"wp-image-5789\" srcset=\"https:\/\/computerscienced.co.uk\/site\/wp-content\/uploads\/2022\/07\/parson-challenge-1024x297.webp 1024w, https:\/\/computerscienced.co.uk\/site\/wp-content\/uploads\/2022\/07\/parson-challenge-300x87.webp 300w, https:\/\/computerscienced.co.uk\/site\/wp-content\/uploads\/2022\/07\/parson-challenge-768x223.webp 768w, https:\/\/computerscienced.co.uk\/site\/wp-content\/uploads\/2022\/07\/parson-challenge-320x93.webp 320w, https:\/\/computerscienced.co.uk\/site\/wp-content\/uploads\/2022\/07\/parson-challenge-480x139.webp 480w, https:\/\/computerscienced.co.uk\/site\/wp-content\/uploads\/2022\/07\/parson-challenge-800x232.webp 800w, https:\/\/computerscienced.co.uk\/site\/wp-content\/uploads\/2022\/07\/parson-challenge-50x15.webp 50w, https:\/\/computerscienced.co.uk\/site\/wp-content\/uploads\/2022\/07\/parson-challenge-100x29.webp 100w, https:\/\/computerscienced.co.uk\/site\/wp-content\/uploads\/2022\/07\/parson-challenge.webp 1186w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Parson puzzle challenge &#8211; learners must indent the blocks <\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>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.  <\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Should_Parson_problems_be_used_to_teach_programming\"><\/span>Should Parson problems be used to teach programming?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>While Parson puzzles on their own would not be effective to teach programming, <strong>they are a tool that can help students to step back from the syntax and statements<\/strong> and focus on the bigger picture of what the code is actually doing and the sequence it needs to be in to work correctly.  <\/p>\n\n\n\n<p>It also provides <strong>a more engaging way for students to look at the code<\/strong> and ensures that they understand what the individual lines of code are doing. A Parson problem is also <strong>low risk<\/strong>, and allows the students to <strong>experiment with code sequence<\/strong> if they didn&#8217;t get the order correct first time, <strong>without the risk of &#8216;breaking&#8217; the program<\/strong> and getting frustrated due to a wrong statement or piece of syntax.  <\/p>\n\n\n\n<p>However, it should be noted that <strong>students should have a basic background with programming concepts <\/strong>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.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>While it is clear that Parson puzzles fulfil the original intentions for their creation, perhaps <strong>what is less clear is how effective they really are<\/strong>.  Research into Parson puzzles is still ongoing <sup class=\"modern-footnotes-footnote \" data-mfn=\"3\" data-mfn-post-scope=\"0000000000000e770000000000000000_5784\"><a href=\"javascript:void(0)\"  role=\"button\" aria-pressed=\"false\" aria-describedby=\"mfn-content-0000000000000e770000000000000000_5784-3\">3<\/a><\/sup><span id=\"mfn-content-0000000000000e770000000000000000_5784-3\" role=\"tooltip\" class=\"modern-footnotes-footnote__note\" tabindex=\"0\" data-mfn=\"3\">Du, Yuemeng &amp; Luxton-Reilly, Andrew &amp; Denny, Paul. (2020). A Review of Research on Parsons Problems. 195-202. 10.1145\/3373165.3373187.<\/span>, with an emphasis within academia on <strong>quantifiable data as to the effectiveness of Parson problems in helping students to learn programming languages<\/strong>.  <\/p>\n\n\n\n<p>While <strong>effectiveness is not clear at this point in time<\/strong>, they are an <strong>excellent way to engage students<\/strong> and <strong>provide a way to trace algorithms<\/strong>, <strong>discuss statements, syntax and sequence<\/strong> in a slightly different way while <strong>modelling good quality code<\/strong>.<\/p>\n\n\n\n<p>If you are teaching programming, <strong>Parson problems should be a part of your learning toolkit<\/strong> and you can use <a href=\"https:\/\/computerscienced.co.uk\/site\/parsons-puzzles\/\" data-type=\"page\" data-id=\"224\">our FREE online versions<\/a> available in Python and VB.Net as part of your teaching practice.                     <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Listen to this article Parsons puzzles, or Parsons problems, are designed to test students ability to think logically when it&#8230;<\/p>\n","protected":false},"author":1,"featured_media":2597,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"disable_featured_image":true,"footnotes":""},"categories":[41],"tags":[],"class_list":["post-5784","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pedagogy"],"blog_post_layout_featured_media_urls":{"thumbnail":["https:\/\/computerscienced.co.uk\/site\/wp-content\/uploads\/2021\/09\/undraw_right_places_h9n3.svg",150,150,true],"full":["https:\/\/computerscienced.co.uk\/site\/wp-content\/uploads\/2021\/09\/undraw_right_places_h9n3.svg",1108,759,false]},"categories_names":{"41":{"name":"Pedagogy","link":"https:\/\/computerscienced.co.uk\/site\/category\/pedagogy\/"}},"tags_names":[],"comments_number":"0","_links":{"self":[{"href":"https:\/\/computerscienced.co.uk\/site\/wp-json\/wp\/v2\/posts\/5784","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/computerscienced.co.uk\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/computerscienced.co.uk\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/computerscienced.co.uk\/site\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/computerscienced.co.uk\/site\/wp-json\/wp\/v2\/comments?post=5784"}],"version-history":[{"count":7,"href":"https:\/\/computerscienced.co.uk\/site\/wp-json\/wp\/v2\/posts\/5784\/revisions"}],"predecessor-version":[{"id":5903,"href":"https:\/\/computerscienced.co.uk\/site\/wp-json\/wp\/v2\/posts\/5784\/revisions\/5903"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/computerscienced.co.uk\/site\/wp-json\/wp\/v2\/media\/2597"}],"wp:attachment":[{"href":"https:\/\/computerscienced.co.uk\/site\/wp-json\/wp\/v2\/media?parent=5784"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/computerscienced.co.uk\/site\/wp-json\/wp\/v2\/categories?post=5784"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/computerscienced.co.uk\/site\/wp-json\/wp\/v2\/tags?post=5784"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}