Title: Exploring Design Choices to Support Novices' Example Use During Creative Open-Ended Programming
Open-ended programming engages students by connecting computing with their real-world experience and personal interest. However, such open-ended programming tasks can be challenging, as they require students to implement features that they may be unfamiliar with. Code examples help students to generate ideas and implement program features, but students also encounter many learning barriers when using them. We explore how to design code examples to support novices' effective example use by presenting our experience of building and deploying Example Helper, a system that supports students with a gallery of code examples during open-ended programming. We deployed Example Helper in an undergraduate CS0 classroom to investigate students' example usage experience, finding that students used different strategies to browse, understand, experiment with, and integrate code examples and that students who make more sophisticated plans also used more examples in their projects. more »« less
Wang, Wengran; Kwatra, Archit; Skripchuk, James; Gomes, Neeloy; Milliken, Alexandra; Martens, Chris; Barnes, Tiffany; Price, Thomas W.
(, ITiCSE '21: Proceedings of the 26th ACM Conference on Innovation and Technology in Computer Science Education)
null
(Ed.)
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.
Wang, Wengran; Limke, Ally; Bobbadi, Mahesh; Isvik, Amy; Cateté, Veronica; Barnes, Tiffany; Price, Thomas W
(, ACM)
In computing classrooms, building an open-ended programming project engages students in the process of designing and implementing an idea of their own choice. An explicit planning process has been shown to help students build more complex and ambitious open-ended projects. However, novices encounter difficulties in exploring and creatively expressing ideas during planning. We present Idea Builder, a storyboarding-based planning system to help novices visually express their ideas. Idea Builder includes three features: 1) storyboards to help students express a variety of ideas that map easily to programming code, 2) animated example mechanics with example actors to help students explore the space of possible ideas supported by the programming environments, and 3) synthesized starter code to help students easily transition from planning to programming. Through two studies with high school coding workshops, we found that students self-reported as feeling creative and feeling easy to communicate ideas; having access to animated example mechanics of an actor help students to build those actors in their plans and projects; and that most students perceived the synthesized starter code from Idea Builder as helpful and time-saving.
Wang, Wengran; Rao, Yudong; Kwatra, Archit; Milliken, Alexandra; Dong, Yihuan; Gomes, Neeloy; Martin, Sarah; Catété, Veronica; Isvik, Amy; Barnes, Tiffany; et al
(, Proceedings of the 2023 Conference on on Innovation and Technology in Computer Science Education)
Many students rely on examples when learning to program, but they often face barriers when incorporating these examples into their own code and learning the concepts they present. As a step towards designing effective example interfaces that can support student learning, we investigate novices' needs and strategies when using examples to write code. We conducted a study with 12 pairs of high school students working on open-ended game design projects, using a system that allows students to browse examples based on their functionality, and to view and copy the example code. We analyzed interviews, screen recordings, and log data, identifying 5 moments when novices request examples, and 4 strategies that arise when students use examples. We synthesize these findings into principles that can inform the design of future example systems to better support students.
Wang, Wengran; Rao, Yudong; Zhi, Rui; Marwan, Samiha; Gao, Ge; Price, Thomas W.
(, International Conference on Innovation and Technology in Computer Science Education)
Students often get stuck when programming independently, and need help to progress. Existing, automated feedback can help students progress, but it is unclear whether it ultimately leads to learning. We present Step Tutor, which helps struggling students during programming by presenting them with relevant, step-by-step examples. The goal of Step Tutor is to help students progress, and engage them in comparison, reflection, and learning. When a student requests help, Step Tutor adaptively selects an example to demonstrate the next meaningful step in the solution. It engages the student in comparing "before" and "after" code snapshots, and their corresponding visual output, and guides them to reflect on the changes. Step Tutor is a novel form of help that combines effective aspects of existing support features, such as hints and Worked Examples, to help students both progress and learn. To understand how students use Step Tutor, we asked nine undergraduate students to complete two programming tasks, with its help, and interviewed them about their experience. We present our qualitative analysis of students' experience, which shows us why and how they seek help from Step Tutor, and Step Tutor's affordances. These initial results suggest that students perceived that Step Tutor accomplished its goals of helping them to progress and learn.
Shah, Anshul; Rexin, Thomas; Alhumrani, Fatimah; Griswold, William G; Porter, Leo; Soosai_Raj, Gerald
(, ACM Transactions on Computing Education)
Objectives The traditional, instructor-led form of live coding has been extensively studied, with findings showing that this form of live coding imparts similar learning to static-code examples. However, a concern with Traditional Live Coding is that it can turn into a passive learning activity for students as they simply observe the instructor program. Therefore, this study compares Active Live Coding—a form of live coding that leverages in-class coding activities and peer discussion—to Traditional Live Coding on three outcomes: 1) students’ adherence to effective programming processes, 2) students’ performance on exams and in-lecture questions, and 3) students’ lecture experience. Participants Roughly 530 students were enrolled in an advanced, CS1 course taught in Java at a large, public university in North America. The students were primarily first- and second-year undergraduate students with some prior programming experience. The student population was spread across two lecture sections—348 students in the Active Live Coding (ALC) lecture and 185 students in the Traditional Live Coding (TLC) lecture. Study Methods We used a mixed-methods approach to answer our‘ research questions. To compare students’ programming processes, we applied process-oriented metrics related to incremental development and error frequencies. To measure students’ learning outcomes, we compared students’ performance on major course components and used pre- and post-lecture questionnaires to compare students’ learning gain during lectures. Finally, to understand students’ lecture experience, we used a classroom observation protocol to measure and compare students’ behavioral engagement during the two lectures. We also inductively coded open-ended survey questions to understand students’ perceptions of live coding. Findings We did not find a statistically significant effect of ALC on students’ programming processes or learning outcomes. It seems that both ALC and TLC impart similar programming processes and result in similar student learning. However, our findings related to students’ lecture experience shows a persistent engagement effect of ALC, where students’ behavioral engagement peaks andremains elevatedafter the in-class coding activity and peer discussion. Finally, we discuss the unique affordances and drawbacks of the lecture technique as well as students’ perceptions of ALC. Conclusions Despite being motivated by well-established learning theories, Active Live Coding did not result in improved student learning or programming processes. This study is preceded by several prior works that showed that Traditional Live Coding imparts similar student learning and programming skills as static-code examples. Though potential reasons for the lack of observed learning benefits are discussed in this work, multiple future analyses to further investigate Active Live Coding may help the community understand the impacts (or lack thereof) of the instructional technique.
Wang, Wengran, Le Meur, Audrey, Bobbadi, Mahesh, Akram, Bita, Barnes, Tiffany, Martens, Chris, and Price, Thomas. Exploring Design Choices to Support Novices' Example Use During Creative Open-Ended Programming. Retrieved from https://par.nsf.gov/biblio/10316940. Proceedings of the Annual Technical Symposium . Web. doi:10.1145/3478431.3499374.
Wang, Wengran, Le Meur, Audrey, Bobbadi, Mahesh, Akram, Bita, Barnes, Tiffany, Martens, Chris, & Price, Thomas. Exploring Design Choices to Support Novices' Example Use During Creative Open-Ended Programming. Proceedings of the Annual Technical Symposium, (). Retrieved from https://par.nsf.gov/biblio/10316940. https://doi.org/10.1145/3478431.3499374
Wang, Wengran, Le Meur, Audrey, Bobbadi, Mahesh, Akram, Bita, Barnes, Tiffany, Martens, Chris, and Price, Thomas.
"Exploring Design Choices to Support Novices' Example Use During Creative Open-Ended Programming". Proceedings of the Annual Technical Symposium (). Country unknown/Code not available. https://doi.org/10.1145/3478431.3499374.https://par.nsf.gov/biblio/10316940.
@article{osti_10316940,
place = {Country unknown/Code not available},
title = {Exploring Design Choices to Support Novices' Example Use During Creative Open-Ended Programming},
url = {https://par.nsf.gov/biblio/10316940},
DOI = {10.1145/3478431.3499374},
abstractNote = {Open-ended programming engages students by connecting computing with their real-world experience and personal interest. However, such open-ended programming tasks can be challenging, as they require students to implement features that they may be unfamiliar with. Code examples help students to generate ideas and implement program features, but students also encounter many learning barriers when using them. We explore how to design code examples to support novices' effective example use by presenting our experience of building and deploying Example Helper, a system that supports students with a gallery of code examples during open-ended programming. We deployed Example Helper in an undergraduate CS0 classroom to investigate students' example usage experience, finding that students used different strategies to browse, understand, experiment with, and integrate code examples and that students who make more sophisticated plans also used more examples in their projects.},
journal = {Proceedings of the Annual Technical Symposium},
author = {Wang, Wengran and Le Meur, Audrey and Bobbadi, Mahesh and Akram, Bita and Barnes, Tiffany and Martens, Chris and Price, Thomas},
}
Warning: Leaving National Science Foundation Website
You are now leaving the National Science Foundation website to go to a non-government website.
Website:
NSF takes no responsibility for and exercises no control over the views expressed or the accuracy of
the information contained on this site. Also be aware that NSF's privacy policy does not apply to this site.