Parsons Problems are programming puzzles where students rearrange code blocks to construct a program. Parsons Problems have been found to be just as effective for learning computer science as problems that involve writing or fixing code, while taking students significantly less time to complete. Additionally, students find these problems more engaging than traditional problems. In this study, we explore the use of Parsons Problems for the specific learning goal of learning a new programming language. In particular, we study whether these problems maintain their benefits in this context, and how they should be designed to support this learning goal. This study was carried out during the Spring 2020 semester of CS10, an introductory computer science course for nonmajors at UC Berkeley, to help students who had programmed for ten weeks using a block-based programming language, Snap!, to transition to programming in Python. Out of the 87 students who participated in this study, 83% found Parsons Problems helpful for transitioning to Python, 69% found them more enjoyable than writing freeform Python code, and 68% found them more time-efficient than writing freeform Python code; these trends were even stronger for students with no prior Python experience. Ultimately, we found that Parsons Problems are effective for learning a new programming language: students found them helpful, engaging, and more time-efficient, making them an especially promising learning exercise for introductory computer science courses.




Download Full History