Open-ended programming increases students' motivation by allowing them to solve authentic problems and connect programming to their own interests. However, such open-ended projects are also challenging, as they often encourage students to explore new programming features and attempt tasks that they have not learned before. Code examples are effective learning materials for students and are well-suited to supporting open-ended programming. However, there is little work to understand how novices learn with examples during open-ended programming, and few real-world deployments of such tools. In this paper, we explore novices' learning barriers when interacting with code examples during open-ended programming. We deployed Example Helper, a tool that offers galleries of code examples to search and use, with 44 novice students in an introductory programming classroom, working on an open-ended project in Snap. We found three high-level barriers that novices encountered when using examples: decision, search and integration barriers. We discuss how these barriers arise and design opportunities to address them.
翻译:开放式编程通过让学生解决真正的问题和将编程与自身利益挂钩,提高了学生的动力;然而,这种开放式项目也具有挑战性,因为它们常常鼓励学生探索他们以前没有学到的新的编程特点和尝试任务;守则范例是学生的有效学习材料,非常适合支持开放式编程;然而,几乎没有工作来了解在开放式编程过程中,新手如何用实例学习,以及这类工具在现实世界中的部署很少。在本文件中,我们在与开放式编程中的代码实例互动时,探索新手的学习障碍。我们采用了实例帮助器,这个工具为搜索和使用提供了一组代码范例,有44个新手在入门编程教室学习,在Snap的开放式编程项目中工作。我们发现了三个高层次的障碍,即决定、搜索和融合障碍。我们讨论了这些障碍是如何产生的,并设计了解决这些障碍的机会。