Abstract-Visual blocks languages offer many advantages to the beginner or "casual" programmer. They eliminate syntax issues, allow the user to work with logical program chunks, provide affordances such as drop-down menus, and leverage the fact that recognition is easier than recall. However, as users gain experience and start creating larger programs, they encounter two inconvenient properties of pure blocks languages: blocks take up more screen real-estate than textual languages and dragging blocks from a palette is slower than typing.This paper describes three experiments in blurring the line between blocks and textual code in GP, a new blocks language for casual programmers currently under development.
The state of an imperative program-e.g., the values stored in global and local variables, objects' instance variables, and arrays-changes as its statements are executed. These changes, or side effects, are visible globally: when one part of the program modifies an object, every other part that holds a reference to the same object (either directly or indirectly) is also affected. This paper introduces worlds, a language construct that reifies the notion of program state, and enables programmers to control the scope of side effects. We investigate this idea as an extension of JavaScript, and provide examples that illustrate some of the interesting idioms that it makes possible.
We present an overview of the "OLPC Etoys" system, describe the intensive two-year development effort that produced the system, and discuss lessons learned.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.