Editing program code as text has several major weaknesses: syntax errors (such as mismatched braces) interrupt programmer flow and make automated tool support harder, boilerplate code templates have to be typed out, and programmers are responsible for layout. These issues have been known about for decades, but early attempts to address these issues, in the form of structured editors, produced unwieldy, hard-to-use tools which failed to catch on. Recently, however, block-based editors in education like Scratch and Snap! have demonstrated that modern graphical structured editors can provide great benefits for programming novices, including very young age groups. These editors become cumbersome for more advanced users, due to their unbending focus on mouse input for block creation and manipulation, and poor scaling of navigation and manipulation facilities to larger programs. Thus, after a few years, learners tend to move from Scratch to text-based editing. In this paper, we present the design and implementation of a novel way to edit programs: frame-based editing. Frame-based editing improves text-based editing by incorporating techniques from block-based editing, and thus provides a suitable follow-on from tools like Scratch. Frame-based editing retains the easy navigation and clearer display of textual code to support manipulation of complex programs, but fuses this with some of the structured editing capabilities that block programming has shown to be viable. The resulting system combines the advantages of text and structured blocks. Preliminary experiments suggest that frame-based editing enables faster program entry than blocks or text, while resulting in fewer syntax errors. We believe it provides an interesting future direction for program editing for learners at all levels of proficiency.
[1]
Neil Brown,et al.
Frame-Based Editing: Easing the Transition from Blocks to Text-Based Programming
,
2015,
WiPSCE.
[2]
Michael Kölling,et al.
The Greenfoot Programming Environment
,
2010,
TOCE.
[3]
John Maloney,et al.
The Scratch Programming Language and Environment
,
2010,
TOCE.
[4]
Stephen Cooper,et al.
The Design of Alice
,
2010,
TOCE.
[5]
Wolfgang Slany,et al.
Empirical Comparison of Visual to Hybrid Formula Manipulation in Educational Programming Languages for Teenagers
,
2014,
PLATEAU.
[6]
Harold Abelson,et al.
App Inventor - Create Your Own Android Apps
,
2011
.
[7]
Kenneth R. Koedinger,et al.
Predictive human performance modeling made easy
,
2004,
CHI.
[8]
Lisa Rubin Neal.
Cognition-sensitive design and user modeling for syntax-directed editors
,
1986,
CHI '87.
[9]
Michael Kölling,et al.
Predictive modelling for HCI problems in novice program editors
,
2013,
BCS HCI.
[10]
P. Fitts.
The information capacity of the human motor system in controlling the amplitude of movement.
,
1954,
Journal of experimental psychology.
[11]
Thomas Reps,et al.
Programming Techniques and Data Structures
,
1981
.
[12]
Brad A. Myers,et al.
Design requirements for more flexible structured editors from a study of programmers' text editing
,
2005,
CHI Extended Abstracts.