PDL: Scaffolding Problem Solving in Programming Courses
Published in ACM Conference on Innovation and Technology in Computer Science Education, 2021
Programming tasks provide an opportunity for students to improve their problem-solving skills (PSS). However, when programming tasks are challenging, students could become demotivated and lose the opportunity to improve PSS in the process. To scaffold the difficulty of programming tasks and better motivate students to enhance PSS via coding, this paper introduces PDL (Problem Description Language). Given the natural-language description of a combinatorial optimization problem (COP), PDL requires students to describe (i) inputs, (ii) constraints, (iii) the optimization objective, and (iv) outputs, based on their problem comprehension. PDL then validates each problem description by (1) compiling a solution program from the description and (2) executing the generated program with predefined test cases. Based on the compiling and testing results, PDL provides feedback to students, and assists students to adjust their problem comprehension and improve problem descriptions.
To evaluate PDL’s effectiveness in motivating students to fulfill challenging programming tasks, we conducted a user study with 185 undergraduates and asked the students to solve COPs with or without PDL. We found that the students with PDL were less likely to give up than students without PDL. By using PDL, students solved more COPs and spent less time on each problem; they became more confident and motivated in handling COPs after using PDL.
Recommended citation: Shu Lin, Na Meng, Dennis Kafura, and Wenxin Li, "PDL: Scaffolding Problem Solving in Programming Courses," presented at ACM Conference on Innovation and Technology in Computer Science Education, Paderborn, Germany, 2021.
Download Paper | Download Bibtex
