Parsons problem

From Wikipedia, the free encyclopedia

Parsons problems are a form of an objective assessment in which respondents are asked to choose from a selection of code fragments, some subset of which comprise the problem solution. The Parsons problem format is used in the learning and teaching of computer programming.

Dale Parsons and Patricia Haden of Otago Polytechnic developed Parsons's Programming Puzzles to aid the mastery of basic syntactic and logical constructs of computer programming languages, in particular Turbo Pascal,[1] although any programming language may be used. Parsons' programming puzzles became known as Parsons puzzles[2] and then Parsons problems.[3] Parsons problems have become popular as they are easier to grade than written code while capturing the students problem solving ability shown in a code creation process.[3]

Structure[edit]

Parsons problems consist of a partially completed solution and a selection of lines of code that some of which, when arranged appropriately, correctly complete the solution. There is great flexibility in how Parsons problems can be designed, including the types of code fragments from which to select, and how much structure of the solution is provided in the question.[3] Easier Parsons problems provide the complete block structure of the solution included in the question, and the provided lines of code simply need to be reordered and inserted into that structure.[3]

In the Parsons problem exam question, the first example shown, there are 6 pairs of statements, one mark is deducted for each incorrectly chosen line from the pairs, two marks are deducted if more than 2 lines are out of place, and one mark is deducted if up to two things are out of place. One mark is deducted if opening and closing braces are incorrectly used, or are not include where necessary.[3]

Variants[edit]

Two-dimensional[edit]

The two-dimensional variants require the student to also correctly indent the code instead of merely re-ordering the provided lines of code.

Faded[edit]

In the faded variants, the lines of code may additionally contain blanks that the student needs to fill in.

Advantages[edit]

The advantages of Parsons problems include:

  • being a complement or alternative to traditional programming exercises like code-tracing and code-writing[4]
  • the design of Parsons problems is flexible[4]
  • there are many variants that are continuously refined to better address student needs[4]

Disadvantages[edit]

The effectiveness of Parsons problems, both as a question type and as a learning tool in CS education, remains uncertain due to a lack of replicated research in the field.[4]

Automation[edit]

Parsons problems can be automated.[4][5]

Summary of the existing tool available for Parsons problems.[4]
Name Year Distractor support Indentation support Languages Feedback
Hot Potatoes[1] 2006 Yes No BASIC absolute line-based
CORT[6] 2007 Yes Yes BASIC execution-based; copy and paste to interpreter
ViLLE[7] 2007 No No independent execution-based; students can see line-by-line visualization
js-parsons[5] 2011 Yes Yes Python relative line-based
Epplets[8] 2018 Yes Yes C+, C#, Java relative line-based; every student action logged on feedback panel
Code Puzzle[9] 2021 Yes Yes Python relative line-based
Codespec[10] 2022 Yes Yes Python line-based and execution-based

References[edit]

  1. ^ a b Public Domain One or more of the preceding sentences incorporates text from this source, which is in the public domain: Parsons, D. & Haden, P. 2006, 'Parson's programming puzzles: a fun and effective learning tool for first programming courses', paper presented to the Proceedings of the 8th Australasian Conference on Computing Education - Volume 52, Hobart, Australia. https://dl.acm.org/doi/10.5555/1151869.1151890
  2. ^ Whalley, Jacqueline L.; Robbins, Phil (2007). "Report on the fourth BRACElet workshop". Journal of Applied Computing and Information Technology. 5 (1).
  3. ^ a b c d e Public Domain One or more of the preceding sentences incorporates text from this source, which is in the public domain: Denny, P., Luxton-Reilly, A., & Simon, B. (2008). Evaluating a new exam question: Parsons problems. Paper presented at the Proceedings of the Fourth international Workshop on Computing Education Research, Sydney, Australia. https://doi.org/10.1145/1404520.1404532
  4. ^ a b c d e f Du, Y., Luxton-Reilly, A., & Denny, P. (2020). A Review of Research on Parsons Problems. Paper presented at the Proceedings of the Twenty-Second Australasian Computing Education Conference. https://doi.org/10.1145/3373165.3373187
  5. ^ a b Karavirta, V., Helminen, J., & Ihantola, P. (2012). A mobile learning application for parsons problems with automatic feedback. Paper presented at the Proceedings of the 12th koli calling international conference on computing education research.
  6. ^ Stuart Garner. 2007. An Exploration of How a Technology-Facilitated PartComplete Solution Method Supports the Learning of Computer Programming. Issues in Informing Science & Information Technology 4 (2007)
  7. ^ Teemu Rajala, Mikko-Jussi Laakso, Erkki Kaila, and Tapio Salakoski. 2007. VILLE: A language-independent program visualization tool. In Proceedings of the Seventh Baltic Sea Conference on Computing Education Research. Conferences in Research and Practice in Information Technology, Volume 88. Australian Computer Society, Inc., 151–159.
  8. ^ Amruth N. Kumar. 2018. Epplets: A Tool for Solving Parsons Puzzles. In Proceedings of the 49th ACM Technical Symposium on Computer Science Education (SIGCSE’18). ACM, New York, NY, USA, 527–532. https://doi.org/10.1145/3159450.3159576
  9. ^ "Home". codepuzzle.io.
  10. ^ "Home". codespec.org/.

External links[edit]