The Nurnberg funnel: designing minimalist instruction for practical computer skill
The Nurnberg funnel: designing minimalist instruction for practical computer skill
A view matcher for learning Smalltalk
CHI '90 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
User Centered System Design; New Perspectives on Human-Computer Interaction
User Centered System Design; New Perspectives on Human-Computer Interaction
Managing Duplicated Code with Linked Editing
VLHCC '04 Proceedings of the 2004 IEEE Symposium on Visual Languages - Human Centric Computing
Six Learning Barriers in End-User Programming Systems
VLHCC '04 Proceedings of the 2004 IEEE Symposium on Visual Languages - Human Centric Computing
Jungloid mining: helping to navigate the API jungle
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
JTutor: an Eclipse plug-in suite for creation and replay of code-based tutorials
eclipse '04 Proceedings of the 2004 OOPSLA workshop on eclipse technology eXchange
DocWizards: a system for authoring follow-me documentation wizards
Proceedings of the 18th annual ACM symposium on User interface software and technology
Processing: programming for the media arts
AI & Society
IEEE Transactions on Software Engineering
Graphical Histories for Visualization: Supporting Analysis, Communication, and Evaluation
IEEE Transactions on Visualization and Computer Graphics
Two studies of opportunistic programming: interleaving web foraging, learning, and writing code
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Generating photo manipulation tutorials by demonstration
ACM SIGGRAPH 2009 papers
Codetrail: Connecting source code and web resources
Journal of Visual Languages and Computing
Improving API documentation using API usage information
VLHCC '09 Proceedings of the 2009 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)
Example-centric programming: integrating web search into the development environment
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Chronicle: capture, exploration, and playback of document workflow histories
UIST '10 Proceedings of the 23nd annual ACM symposium on User interface software and technology
Calcite: Completing Code Completion for Constructors Using Crowds
VLHCC '10 Proceedings of the 2010 IEEE Symposium on Visual Languages and Human-Centric Computing
MeshFlow: interactive visualization of mesh construction sequences
ACM SIGGRAPH 2011 papers
Nonlinear revision control for images
ACM SIGGRAPH 2011 papers
HyperSource: bridging the gap between source and code-related web sites
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
ACM Transactions on Graphics (TOG)
Pause-and-play: automatically linking screencast video tutorials with applications
Proceedings of the 24th annual ACM symposium on User interface software and technology
Codelets: linking interactive documentation and example code in the editor
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
WebCrystal: understanding and reusing examples in web authoring
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Proceedings of the 34th International Conference on Software Engineering
MixT: automatic generation of step-by-step mixed media tutorials
Proceedings of the 25th annual ACM symposium on User interface software and technology
SnipMatch: using source code context to enhance snippet retrieval and parameterization
Proceedings of the 25th annual ACM symposium on User interface software and technology
Hi-index | 0.00 |
Multi-stage code examples present multiple versions of a program where each stage increases the overall complexity of the code. In order to acquire strategies of program construction using a new language or API, programmers consult multi-stage code examples in books, tutorials and online videos. Authoring multi-stage code examples is currently a tedious process, as it involves keeping several stages of code synchronized in the face of edits and error corrections. We document these difficulties with a formative study examining how programmers author multi-stage code examples. We then present an IDE extension that helps authors create multi-stage code examples by propagating changes (insertions, deletions and modifications) to multiple saved versions of their code. Our system adapts revision control algorithms to the specific task of evolving example code. An informal evaluation finds that taking snapshots of a program as it is being developed and editing these snapshots in hindsight help users in creating multi-stage code examples.