Figure 2 - uploaded by Wengran Wang
Content may be subject to copyright.
Three possible solution paths for Task 2, made up of three example steps: (a) MakeRow: drawing a row of triangles; (b) TriangleToHill: changing the triangle to a stripped hill; (c) AddColor: adding color for each triangle.

Three possible solution paths for Task 2, made up of three example steps: (a) MakeRow: drawing a row of triangles; (b) TriangleToHill: changing the triangle to a stripped hill; (c) AddColor: adding color for each triangle.

Source publication
Conference Paper
Full-text available
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 Tu...

Contexts in source publication

Context 1
... many problems, solution steps can be completed in various orders [52]. As is shown in Figure 2, there are multiple ways to reach the solution. To illustrate each possible path to the solution, it is helpful to author an example pair (i.e., the "before" code and the "after" code) for each transition (i.e., each arrow in Figure 2). ...
Context 2
... is shown in Figure 2, there are multiple ways to reach the solution. To illustrate each possible path to the solution, it is helpful to author an example pair (i.e., the "before" code and the "after" code) for each transition (i.e., each arrow in Figure 2). While in this work, we author these steps by hand, our prior work suggests they can also be generated automatically from student data, matching the quality of expert examples [51]. ...
Context 3
... start with, they read a short tutorial on Snap! to refresh their memories. They were then given up to 30 minutes to complete each of two programming tasks: Stairway and Row of Hills (the latter shown in Figure 2). Both tasks required students to use variables, loops, and nested loops. ...
Context 4
... many problems, solution steps can be completed in various orders [52]. As is shown in Figure 2, there are multiple ways to reach the solution. To illustrate each possible path to the solution, it is helpful to author an example pair (i.e., the "before" code and the "after" code) for each transition (i.e., each arrow in Figure 2). ...
Context 5
... is shown in Figure 2, there are multiple ways to reach the solution. To illustrate each possible path to the solution, it is helpful to author an example pair (i.e., the "before" code and the "after" code) for each transition (i.e., each arrow in Figure 2). While in this work, we author these steps by hand, our prior work suggests they can also be generated automatically from student data, matching the quality of expert examples [51]. ...
Context 6
... start with, they read a short tutorial on Snap! to refresh their memories. They were then given up to 30 minutes to complete each of two programming tasks: Stairway and Row of Hills (the latter shown in Figure 2). Both tasks required students to use variables, loops, and nested loops. ...

Similar publications

Research
Full-text available
This research seeks to reflect on feedback as a powerful strategy when the goal is the practice of a formative evaluation. In this case, we use the quiz question to support student learning in relation to the mathematical knowledge developed in class. To ensure this support, we use quality feedback, i.e. we try to write something that reinforces th...

Citations

... Programming classes are also becoming more popular in high and middle schools. The need to provide better support for the increasing fraction of less-prepared students in CS classes motivated a number of recent attempts to create ITS supporting step-by-step problem support for CS classes [16,28,30,37]. The step-by-step approach, however, does have a few shortcomings, as having students complete each step can slow down productivity and make the process boring for better-prepared students. ...
... Likewise, selecting a mode like worked-example could lower cognitive load for less experienced students. Such an adaptive design would be similar to step-based help recently proposed in program construction tasks [37]. Additionally, interleaving worked examples and problems might make students more efficient and decrease student frustration as observed in prior research [24,25]. ...
... In this paper, we evaluate the effects of feedback that is generated automatically by static analysis. Past research on automated hint generation has mainly considered the problem of providing hints on what should be the next step in solving programming assignments [20,23,25,30,32] or open ended programming tasks [19,21] and how novices seek help in these systems [1,15,16,22]. An exception is the work by Gusukuma et al. [6], who showed that feedback delivery on mistakes that anticipate possible misconceptions generally leads to favourable results, and that showing such hints does not harm transfer to new tasks. ...
Preprint
Bugs in learners' programs are often the result of fundamental misconceptions. Teachers frequently face the challenge of first having to understand such bugs, and then suggest ways to fix them. In order to enable teachers to do so effectively and efficiently, it is desirable to support them in recognising and fixing bugs. Misconceptions often lead to recurring patterns of similar bugs, enabling automated tools to provide this support in terms of hints on occurrences of common bug patterns. In this paper, we investigate to what extent the hints improve the effectiveness and efficiency of teachers in debugging learners' programs using a cohort of 163 primary school teachers in training, tasked to correct buggy Scratch programs, with and without hints on bug patterns. Our experiment suggests that automatically generated hints can reduce the effort of finding and fixing bugs from 8.66 to 5.24 minutes, while increasing the effectiveness by 34% more correct solutions. While this improvement is convincing, arguably teachers in training might first need to learn debugging "the hard way" to not miss the opportunity to learn by relying on tools. We therefore investigate whether the use of hints during training affects their ability to recognise and fix bugs without hints. Our experiment provides no significant evidence that either learning to debug with hints or learning to debug "the hard way" leads to better learning effects. Overall, this suggests that bug patterns might be a useful concept to include in the curriculum for teachers in training, while tool-support to recognise these patterns is desirable for teachers in practice.
... Researchers have developed systems to support novices' use of code examples during programming. Many were built for closed-ended tasks [45,46]. For example, by offering step-by-step examples with options to immediately run the example code [45]. ...
... Many were built for closed-ended tasks [45,46]. For example, by offering step-by-step examples with options to immediately run the example code [45]. Some offers an online database of annotated examples [6]. ...
... The student may click on different sprites to look at the example code for each sprite (shown in Figure 1). They may also look at the animation of the output next to the example code, since reading code in relation to output has been shown to trigger students to reflect on how the example code works [45]. The student can also click on the "Open the Project" button to view the example in a separate window and experiment with it. ...
... Researchers have developed systems to support novices' use of code examples during programming. Many were built for closed-ended tasks [45,46]. For example, by offering step-by-step examples with options to immediately run the example code [45]. ...
... Many were built for closed-ended tasks [45,46]. For example, by offering step-by-step examples with options to immediately run the example code [45]. Some offers an online database of annotated examples [6]. ...
... The student may click on different sprites to look at the example code for each sprite (shown in Figure 1). They may also look at the animation of the output next to the example code, since reading code in relation to output has been shown to trigger students to reflect on how the example code works [45]. The student can also click on the "Open the Project" button to view the example in a separate window and experiment with it. ...
Preprint
Full-text available
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.