A Parsons Problem is a strategy for teaching computer programming. It involves scrabbling lines of code and asking students to place them in the correct order to construct a program. Parsons Problems reduce cognitive load and enable students to quickly form a working set of code without focusing on writing code. Parsons Problem can be used with any programming language, and there are several web-based programs that teachers can use to generate their own Parsons Problems. These programs allow students to drag and drop lines of code in block-based programming or use line numbers to order the code. Students can also solve Parsons Problems in unplugged activities where they arrange the lines of code on paper. With Parsons Problems, students learn to read and interpret computer programs without focusing on syntax.
As a learning strategy, use Parsons Problems when you want students to:
As an instructional strategy, use Parsons Problems when you want to:
Advance Prep
Implementation
Parsons Problems make learning computer programming accessible to diverse learners. This strategy introduces programming concepts by focusing on reading and understanding the function and structure of code without writing it. Introducing computer science concepts using Parsons Problems can break down barriers of entry for students who are underrepresented in computer science education, including students of color and girls. Parsons problems engage learners, reduce cognitive load, and build the confidence needed for novice learners to continue solving computer programming problems with increasing complexity.
Parsons problems dramatically reduce the programming solution space, letting students focus on solving the problem rather than having to solve the combined problem of devising a solution, searching for needed components, and composing them together.
Developing learners’ understanding of how the program is executed (notional machine). Reducing cognitive load. Focusing on blocks of code rather than syntax. Providing all the correct code within an engaging challenge. Promoting dialogue and discussion about code
5.3 Data & analysis, 5.4 Algorithms & programming