<p>I would use it to introduce them to working on large projects, that incorporate many parts.</p>

<p>Parsons Problems force the students to think how separate code segments bond and interact. They would have to think about getting those parts to work together. This teaches them the mindset of working on large projects. It can be used to teach them proper structure of projects: Every part of the project is stored in a separate package, and Parsons Problems are convenient to teach them that.</p>

<p>You could give them a repository of code segments, that can only be changed a bit, and they need to use some or all of those segments in order to create a program of your choosing (e.g. a simple chat with gui, hangman with gui or other programs that have more than one part). </p>

<p>Additionally, making it into a group-project would teach them how to work together and divide the work on the different parts between the group members.</p>

CC BY-SA 3.0
2017-05-31T06:28:35.547Z
2017-05-31T06:28:35.547Z
ItamarG3
<p>I just started playing with these. What I have been doing is writing some code and testing it and then moving things around before giving the projects to my students to rearrange. So far I have just played with loops and decision structures. I'm using Visual Basic and C# with different classes.</p>

CC BY-SA 3.0
2018-03-04T19:41:32.780Z
2018-03-04T19:41:32.780Z
Alfred Thompson
<p>I used a Parsons problem to teach functions. I used Google Slides to put different colored text boxes on one slide and gave the students instructions to arrange the text boxes in the proper order. A screenshot of what the activity looked like is below:</p>

<p><a href="https://i.sstatic.net/aZB6H.png" rel="noreferrer"><img src="https://i.sstatic.net/aZB6H.png" alt="Screenshot of Parsons problem"></a></p>

<p>I wanted students to have experience with the ordering of function calls in C. There are technically two correct ways to approach this, but because I specify the requirement to use each block, there's only solution here:</p>

<p><a href="https://i.sstatic.net/EftpX.png" rel="noreferrer"><img src="https://i.sstatic.net/EftpX.png" alt="Solution to Parsons problem"></a></p>

<p>Seeing how information gets passed from function to function and how to lay out the structure was helpful for students. Focusing on those skills outside of/separate from the syntax helped because students only had to worry about one thing at a time.</p>

<p>As I look ahead to next year, I want to do more of these problems, especially when teaching loops and sorting algorithms. They are quick and simple to make and differentiate instruction effectively. In the context of AP CSP, they provide great practice for the AP Exam which includes a number of code samples to read and understand.</p>

CC BY-SA 3.0
2017-07-19T16:35:03.763Z
I don't think I've seen a multi-function Parsons problem before. That could be a really cool category though--- then students have to think about what functionality goes in which function.
nova
CC BY-SA 3.0
2017-05-31T14:50:41.610Z
2017-05-31T14:50:41.610Z
Peter
<p>I think Parsons problems offer a low-cognitive load way to offer practice for just about any code-writing topic. I think they are especially good when students start learning a certain code pattern, and would be overwhelmed by too many details.</p>

<p>Ebooks written on the <a href="http://runestoneinteractive.org/about.html" rel="nofollow noreferrer">Runestone platform</a> can have Parsons problems embedded in them. Teachers can choose to <a href="http://runestoneinteractive.org/customcourse.html" rel="nofollow noreferrer">use and potentially adapt</a> one of <a href="http://runestoneinteractive.org/library.html" rel="nofollow noreferrer">many existing ebooks</a>, or <a href="http://runestoneinteractive.org/build/html/index.html" rel="nofollow noreferrer">write their own from scratch</a>. Multiple ebooks contain Parsons problems you could use directly or adapt:</p>

<ul>
<li>The <a href="http://interactivepython.org/runestone/static/JavaReview/index.html" rel="nofollow noreferrer">AP CS A ebook</a>, using Java (<a href="http://interactivepython.org/runestone/static/JavaReview/ArrayBasics/ArrayParsonsPractice.html" rel="nofollow noreferrer">Example</a>)</li>
<li>The <a href="http://interactivepython.org/runestone/static/StudentCSP/index.html" rel="nofollow noreferrer">AP CSP ebook</a>, using Python  (<a href="http://interactivepython.org/runestone/static/StudentCSP/CSPWhileAndForLoops/whileCount.html" rel="nofollow noreferrer">Example</a> (scroll down a bit))</li>
<li><a href="http://interactivepython.org/runestone/static/thinkcspy/index.html" rel="nofollow noreferrer">How to Think Like a Computer Scientist</a>, using Python (<a href="http://interactivepython.org/runestone/static/thinkcspy/PythonTurtle/OurFirstTurtleProgram.html" rel="nofollow noreferrer">Example</a> (scroll down a bit))</li>
</ul>

<p>Here's an example of the look and feel of these problems:
<a href="https://i.sstatic.net/qaQMo.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/qaQMo.png" alt="Parsons problem example"></a>
(Note that this problem provides indentation information, but others on Runestone do not, allowing students to choose their own indentation -- this is known as a <a href="http://www.jite.org/documents/Vol10/JITEv10IIPp119-132Ihantola944.pdf" rel="nofollow noreferrer">2D Parsons problem</a>)</p>

<p>Recent development is in the process of adding cool new features to these Parsons problems within Runesone<a href="http://dl.acm.org/citation.cfm?id=2960342&amp;CFID=961977804&amp;CFTOKEN=52327789" rel="nofollow noreferrer"> [reference]</a>, like </p>

<ul>
<li><em>paired distractors</em>  - a tile that works is paired with a similar tile that doesn't work, and students must choose between them</li>
<li><em>dynamic adaptation</em> - the difficulty of the problem changes based on the user's performance</li>
<li><em>accessibility</em> - Parsons problems can be completed with the keyboard only, helping those who can't use a mouse </li>
</ul>

CC BY-SA 3.0
2017-07-19T11:50:27.883Z
2017-07-19T12:13:35.397Z
2017-07-19T12:13:35.397Z
nova
<p>We use Parsons puzzles when teaching robotics:
<a href="https://i.sstatic.net/xYy7p.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/xYy7p.png" alt="Parsons puzzles for Thymio robot"></a>
The student has to select which of the three event blocks on the right causes the behavior specified in the question.
This example is for the Thymio robot with the VPL programming environment but similar puzzles could be developed in any block environments.</p>

CC BY-SA 3.0
2017-06-08T09:21:28.027Z
You could expand this answer to explain why the approach is well-suited to robotics.
Sean Houlihane
CC BY-SA 3.0
2017-06-08T07:54:51.680Z
2017-06-08T07:54:51.680Z
Moti
<p>I first heard of Parsons Problems thanks to <a href="http://csteachingtips.org/tip/use-parsons-problems-quizzes-and-tests-assess-student-understanding-code" rel="noreferrer">CS Teaching Tips</a>. They define these problems as follows:</p>

<blockquote>
  <p>"Parsons problems are problems where students build programs from
  ordering small chunks of provided code."</p>
</blockquote>

<p>An example can be found <a href="http://runestoneinteractive.org/LearningAtScale/parsons.html" rel="noreferrer">here</a>.</p>

<p>When I research these, I see very little in terms of classroom resources. I find a handful of articles discussing them but not many examples of them in practice. On the surface, these problems -- emphasizing logic and structure separate from syntax -- could be a great activity at varying levels of experience and ability.</p>

<p>What skills or concepts have you used (or would you use) Parsons Problems to teach/reinforce?</p>

CC BY-SA 3.0
2017-07-03T02:01:37.763Z
If possible, please reference the handful of articles you refer to or a review of lit. If a user finds this question in a search, the links are very useful to them.
Bennett Brown
CC BY-SA 3.0
2017-07-19T12:41:37.690Z
Marvelous. Of course any drag-and-drop editor can be adapted to this. Scratch, for example. But you can also seek higher level "chunks" than single statements.
Buffy
<lesson-ideas>
Effectiveness of Parsons Problems
# Effectiveness of Parsons Problems

(Asked by: username_0 on 2017-05-30)

I first heard of Parsons Problems thanks to [CS Teaching Tips](http://csteachingtips.org/tip/use-parsons-problems-quizzes-and-tests-assess-student-understanding-code). They define these problems as follows:

> "Parsons problems are problems where students build programs from
> ordering small chunks of provided code."

An example can be found [here](http://runestoneinteractive.org/LearningAtScale/parsons.html).

When I research these, I see very little in terms of classroom resources. I find a handful of articles discussing them but not many examples of them in practice. On the surface, these problems -- emphasizing logic and structure separate from syntax -- could be a great activity at varying levels of experience and ability.

What skills or concepts have you used (or would you use) Parsons Problems to teach/reinforce?

**Tags:** lesson-ideas

> **Comments:**
> **username_1**: If possible, please reference the handful of articles you refer to or a review of lit. If a user finds this question in a search, the links are very useful to them.  
> **username_2**: Marvelous. Of course any drag-and-drop editor can be adapted to this. Scratch, for example. But you can also seek higher level "chunks" than single statements.  

---

## 5 answers

### Answer by username_0 on 2017-05-31. Score: 5

I used a Parsons problem to teach functions. I used Google Slides to put different colored text boxes on one slide and gave the students instructions to arrange the text boxes in the proper order. A screenshot of what the activity looked like is below:

[![Screenshot of Parsons problem](https://i.sstatic.net/aZB6H.png)](https://i.sstatic.net/aZB6H.png)

I wanted students to have experience with the ordering of function calls in C. There are technically two correct ways to approach this, but because I specify the requirement to use each block, there's only solution here:

[![Solution to Parsons problem](https://i.sstatic.net/EftpX.png)](https://i.sstatic.net/EftpX.png)

Seeing how information gets passed from function to function and how to lay out the structure was helpful for students. Focusing on those skills outside of/separate from the syntax helped because students only had to worry about one thing at a time.

As I look ahead to next year, I want to do more of these problems, especially when teaching loops and sorting algorithms. They are quick and simple to make and differentiate instruction effectively. In the context of AP CSP, they provide great practice for the AP Exam which includes a number of code samples to read and understand.

> **Comments:**
> **username_5**: I don't think I've seen a multi-function Parsons problem before. That could be a really cool category though--- then students have to think about what functionality goes in which function.  

---

### Answer by username_5 on 2017-07-19. Score: 4

I think Parsons problems offer a low-cognitive load way to offer practice for just about any code-writing topic. I think they are especially good when students start learning a certain code pattern, and would be overwhelmed by too many details.

Ebooks written on the [Runestone platform](http://runestoneinteractive.org/about.html) can have Parsons problems embedded in them. Teachers can choose to [use and potentially adapt](http://runestoneinteractive.org/customcourse.html) one of [many existing ebooks](http://runestoneinteractive.org/library.html), or [write their own from scratch](http://runestoneinteractive.org/build/html/index.html). Multiple ebooks contain Parsons problems you could use directly or adapt:

* The [AP CS A ebook](http://interactivepython.org/runestone/static/JavaReview/index.html), using Java ([Example](http://interactivepython.org/runestone/static/JavaReview/ArrayBasics/ArrayParsonsPractice.html))
* The [AP CSP ebook](http://interactivepython.org/runestone/static/StudentCSP/index.html), using Python ([Example](http://interactivepython.org/runestone/static/StudentCSP/CSPWhileAndForLoops/whileCount.html) (scroll down a bit))
* [How to Think Like a Computer Scientist](http://interactivepython.org/runestone/static/thinkcspy/index.html), using Python ([Example](http://interactivepython.org/runestone/static/thinkcspy/PythonTurtle/OurFirstTurtleProgram.html) (scroll down a bit))

Here's an example of the look and feel of these problems:
[![Parsons problem example](https://i.sstatic.net/qaQMo.png)](https://i.sstatic.net/qaQMo.png)
(Note that this problem provides indentation information, but others on Runestone do not, allowing students to choose their own indentation -- this is known as a [2D Parsons problem](http://www.jite.org/documents/Vol10/JITEv10IIPp119-132Ihantola944.pdf))

Recent development is in the process of adding cool new features to these Parsons problems within Runesone [[reference]](http://dl.acm.org/citation.cfm?id=2960342&CFID=961977804&CFTOKEN=52327789), like

* *paired distractors* - a tile that works is paired with a similar tile that doesn't work, and students must choose between them
* *dynamic adaptation* - the difficulty of the problem changes based on the user's performance
* *accessibility* - Parsons problems can be completed with the keyboard only, helping those who can't use a mouse


---

### Answer by username_6 on 2017-06-08. Score: 2

We use Parsons puzzles when teaching robotics:
[![Parsons puzzles for Thymio robot](https://i.sstatic.net/xYy7p.png)](https://i.sstatic.net/xYy7p.png)
The student has to select which of the three event blocks on the right causes the behavior specified in the question.
This example is for the Thymio robot with the VPL programming environment but similar puzzles could be developed in any block environments.

> **Comments:**
> **username_7**: You could expand this answer to explain why the approach is well-suited to robotics.  

---

### Answer by username_3 on 2017-05-31. Score: 1

I would use it to introduce them to working on large projects, that incorporate many parts.

Parsons Problems force the students to think how separate code segments bond and interact. They would have to think about getting those parts to work together. This teaches them the mindset of working on large projects. It can be used to teach them proper structure of projects: Every part of the project is stored in a separate package, and Parsons Problems are convenient to teach them that.

You could give them a repository of code segments, that can only be changed a bit, and they need to use some or all of those segments in order to create a program of your choosing (e.g. a simple chat with gui, hangman with gui or other programs that have more than one part).

Additionally, making it into a group-project would teach them how to work together and divide the work on the different parts between the group members.


---

### Answer by username_4 on 2018-03-04. Score: 0

I just started playing with these. What I have been doing is writing some code and testing it and then moving things around before giving the projects to my students to rearrange. So far I have just played with loops and decision structures. I'm using Visual Basic and C# with different classes.


---

