Designing the user interface (2nd ed.): strategies for effective human-computer interaction
Designing the user interface (2nd ed.): strategies for effective human-computer interaction
Does continuous visual feedback aid debugging in direct-manipulation programming systems?
Proceedings of the ACM SIGCHI Conference on Human factors in computing systems
A bug's eye view of immediate visual feedback in direct-manipulation programming systems
ESP '97 Papers presented at the seventh workshop on Empirical studies of programmers
Making the connection: programming with animated small world
Proceedings of the 5th annual SIGCSE/SIGCUE ITiCSEconference on Innovation and technology in computer science education
System response time operator productivity, and job satisfaction
Communications of the ACM
The Cornell program synthesizer: a syntax-directed programming environment
Communications of the ACM
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Mini-languages: a way to learn programming principles
Education and Information Technologies
Revised Report on the Algorithmic Language Scheme
Higher-Order and Symbolic Computation
The Jeliot 2000 program animation system
Computers & Education
RAPTOR: a visual programming environment for teaching algorithmic problem solving
Proceedings of the 36th SIGCSE technical symposium on Computer science education
Design requirements for more flexible structured editors from a study of programmers' text editing
CHI '05 Extended Abstracts on Human Factors in Computing Systems
VLHCC '05 Proceedings of the 2005 IEEE Symposium on Visual Languages and Human-Centric Computing
Core Python Programming (2nd Edition)
Core Python Programming (2nd Edition)
VIVA: A visual language for image processing
Journal of Visual Languages and Computing
Empirical Studies of Programming Knowledge
IEEE Transactions on Software Engineering
ACM Transactions on Computer-Human Interaction (TOCHI)
Designing Workflows on the Fly Using e-BioFlow
ICSOC-ServiceWave '09 Proceedings of the 7th International Joint Conference on Service-Oriented Computing
WebMedia '09 Proceedings of the XV Brazilian Symposium on Multimedia and the Web
Review of recent systems for automatic assessment of programming assignments
Proceedings of the 10th Koli Calling International Conference on Computing Education Research
Textual authoring of interactive digital TV applications
Proceddings of the 9th international interactive conference on Interactive television
Hi-index | 0.00 |
Prior empirical studies of programming have shown that novice programmers tend to program by exploration, relying on frequent compilation and execution of their code in order to make progress. One way visual and end-user programming environments have attempted to facilitate this exploratory programming process is through their support of ''live'' editing models, in which immediate visual feedback on a program's execution is provided automatically at edit time. Notice that the notion of ''liveness'' actually encompasses two distinct dimensions: (a) the amount of time a programmer must wait between editing a program and receiving visual feedback (feedback delay); and (b) whether such feedback is provided automatically, or whether the programmer must explicitly request it (feedback self-selection). While a few prior empirical studies of ''live'' editing do exist, none has specifically evaluated the impact of these dimensions of ''live'' editing within the context of the imperative programming paradigm commonly taught in first-semester computer science courses. As a preliminary step toward that end, we conducted an experimental study that investigated the impact of feedback self-selection on novice imperative programming. Our within-subjects design compared the impact of three different levels of feedback self-selection on syntactic and semantic correctness: (a) no visual feedback at all (the No Feedback treatment); (b) visual feedback, in the form of a visualization of the program's execution state, provided on request when a ''run'' button is hit (the Self-Select treatment); and (c) visual feedback, in the form of a visualization of the program's execution state, updated on every keystroke (the Automatic treatment). Participants in the Automatic and Self-Select treatments produced programs that had significantly fewer syntactic and semantic errors than those of the No Feedback treatment; however, no significant differences were found between the Automatic and Self-Select treatments. These results suggest that, at least in the case of novice imperative programming environments, the benefits of delivering a continuously updated visual representation of a program's execution may fail to justify the substantial costs of implementing such feedback. We recommend that programming environment designers instead direct their efforts toward carefully considering when programmers will be ready to take advantage of the feedback that is coming toward them, along with what content will be of most benefit to them.