{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,12,16]],"date-time":"2025-12-16T04:20:43Z","timestamp":1765858843350,"version":"3.48.0"},"reference-count":71,"publisher":"Oxford University Press (OUP)","issue":"1","license":[{"start":{"date-parts":[[2025,5,27]],"date-time":"2025-05-27T00:00:00Z","timestamp":1748304000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2025,12,12]]},"abstract":"<jats:title>Abstract<\/jats:title>\n                  <jats:p>End-user programmers need programming tools that are easy to learn and use. Development environments for end-users often support one of two visual modalities: block-based programming or data-flow programming. In this work, we discuss differences in how these modalities represent programs, and why existing block-based programming tools are better suited for imperative tasks while data-flow programming better supports nested expressions. We focus on robot programming as an end-user scenario that requires both imperative and expressions-based code in the same program. To study how end-user tools can better support this scenario, we propose two programming system designs: one that changes how blocks represent nested expressions, and one that combines block-based and data-flow programming in the same hybrid environment. We compared these designs in a controlled experiment with 113 end-user participants who solved programming and program comprehension tasks using one of the two environments. Both groups indicated a small preference for the hybrid system in direct comparison, but participants who used blocks to solve tasks performed better on average than hybrid system users and gave higher usability ratings. These findings suggest that despite the appeal of data-flow programming, a well-adapted block-based programming interface can lead end-users to more programming success.<\/jats:p>","DOI":"10.1093\/iwc\/iwaf028","type":"journal-article","created":{"date-parts":[[2025,4,9]],"date-time":"2025-04-09T07:21:30Z","timestamp":1744183290000},"page":"40-57","source":"Crossref","is-referenced-by-count":1,"title":["Block-based or graph-based? Why not both? Designing a hybrid programming environment for end-users"],"prefix":"10.1093","volume":"38","author":[{"given":"Nico","family":"Ritschel","sequence":"first","affiliation":[{"name":"University of British Columbia , Vancouver, Canada"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Reid","family":"Holmes","sequence":"additional","affiliation":[{"name":"University of British Columbia , Vancouver, Canada"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Felipe","family":"Fronchetti","sequence":"additional","affiliation":[{"name":"Virginia Commonwealth University , Richmond, United States"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Ronald","family":"Garcia","sequence":"additional","affiliation":[{"name":"University of British Columbia , Vancouver, Canada"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"David C","family":"Shepherd","sequence":"additional","affiliation":[{"name":"Louisiana State University , Baton Rouge, United States"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"286","published-online":{"date-parts":[[2025,5,27]]},"reference":[{"volume-title":"Wizard Easy Programming","year":"2020","author":"ABB Ltd","key":"2025121523165109600_ref1"},{"key":"2025121523165109600_ref2","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/3466819","article-title":"A survey on end-user robot programming","volume":"54","author":"Ajaykumar","year":"2021","journal-title":"ACM Computing Surveys (CSUR)"},{"key":"2025121523165109600_ref3","doi-asserted-by":"crossref","first-page":"5537","DOI":"10.1109\/ICRA.2015.7139973","article-title":"Roboflow: a flow-based visual programming language for mobile manipulation tasks","volume-title":"2015 IEEE International Conference on Robotics and Automation (ICRA)","author":"Alexandrova","year":"2015"},{"key":"2025121523165109600_ref5","doi-asserted-by":"publisher","first-page":"469","DOI":"10.1016\/j.robot.2008.10.024","article-title":"A survey of robot learning from demonstration","volume":"57","author":"Argall","year":"2009","journal-title":"Robotics and Autonomous Systems"},{"key":"2025121523165109600_ref6","doi-asserted-by":"crossref","first-page":"32","DOI":"10.1109\/COMPSAC.2018.10199","article-title":"Smart block: a visual programming environment for smartthings","volume-title":"2018 IEEE 42nd Annual Computer Software and Applications Conference (COMPSAC)","author":"Bak","year":"2018"},{"issue":"6","key":"2025121523165109600_ref7","doi-asserted-by":"crossref","first-page":"574","DOI":"10.1080\/10447310802205776","article-title":"An empirical evaluation of the system usability scale","volume":"24","author":"Bangor","year":"2008","journal-title":"International Journal of Human\u2013Computer Interaction"},{"key":"2025121523165109600_ref8","doi-asserted-by":"crossref","first-page":"752","DOI":"10.1145\/3180155.3180156","article-title":"Debugging data flows in reactive programs","volume-title":"Proceedings of the 40th International Conference on Software Engineering","author":"Banken","year":"2018"},{"key":"2025121523165109600_ref9","doi-asserted-by":"publisher","first-page":"101","DOI":"10.1016\/j.jss.2018.11.041","article-title":"End-user development, end-user programming and end-user software engineering: a systematic mapping study","volume":"149","author":"Barricelli","year":"2019","journal-title":"Journal of Systems and Software"},{"volume-title":"Hands-On Game Development Without Coding: Create 2D and 3D Games With Visual Scripting in Unity","year":"2018","author":"Bertolini","key":"2025121523165109600_ref10"},{"key":"2025121523165109600_ref11","first-page":"1","article-title":"A survey of robot programming systems","volume-title":"Proceedings of the Australasian Conference on Robotics and Automation","author":"Biggs","year":"2003"},{"key":"2025121523165109600_ref12","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/3057858","article-title":"Exploring end user programming needs in home automation","volume":"24","author":"Brich","year":"2017","journal-title":"Transactions on Computer\u2013Human Interaction (TOCHI)"},{"key":"2025121523165109600_ref13","doi-asserted-by":"publisher","first-page":"237","DOI":"10.1038\/s41586-020-2442-2","article-title":"A mobile robotic chemist","volume":"583","author":"Burger","year":"2020","journal-title":"Nature"},{"key":"2025121523165109600_ref14","doi-asserted-by":"publisher","first-page":"44","DOI":"10.1109\/99.338768","article-title":"Toward visual programming languages for steering scientific computations","volume":"1","author":"Burnett","year":"1994","journal-title":"IEEE Computing in Science and Engineering"},{"key":"2025121523165109600_ref15","first-page":"188","article-title":"Iconic programming in baccii vs. textual programming: which is a better learning environment","volume-title":"Proceedings of the Symposium on Computer Science Education (SIGCSE)","author":"Calloni","year":"1994"},{"key":"2025121523165109600_ref16","doi-asserted-by":"publisher","first-page":"464","DOI":"10.1177\/1948550619875149","article-title":"An mturk crisis? Shifts in data quality and the impact on study results","volume":"11","author":"Chmielewski","year":"2020","journal-title":"Social Psychological and Personality Science"},{"key":"2025121523165109600_ref17","doi-asserted-by":"publisher","first-page":"98","DOI":"10.1111\/1467-8721.ep10768783","article-title":"Statistical power analysis","volume":"1","author":"Cohen","year":"1992","journal-title":"Current Directions in Psychological Science"},{"article-title":"TIOBE index","year":"2023","author":"TIOBE The Software Quality Company","key":"2025121523165109600_ref18"},{"volume-title":"Alice: Easy-to-Learn Three-Dimensional Scripting for Novices","year":"1998","author":"Conway","key":"2025121523165109600_ref19"},{"key":"2025121523165109600_ref20","first-page":"1","article-title":"Five-point likert items: t test versus Mann\u2013Whitney\u2013Wilcoxon","volume":"15","author":"De Winter","year":"2010","journal-title":"Practical Assessment, Research, and Evaluation"},{"key":"2025121523165109600_ref21","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/3057859","article-title":"Empowering end users to customize their smart environments: model, composition paradigms, and domain-specific tools","volume":"24","author":"Desolda","year":"2017","journal-title":"ACM Transactions on Computer\u2013Human Interaction (TOCHI)"},{"key":"2025121523165109600_ref22","doi-asserted-by":"crossref","DOI":"10.1007\/978-3-642-38706-7","volume-title":"End-User Development","author":"Dittrich","year":"2013"},{"volume-title":"A Case-Based Approach for Supporting the Informal Computing Education of End-User Programmers","year":"2010","author":"Dorn","key":"2025121523165109600_ref23"},{"key":"2025121523165109600_ref24","first-page":"10","article-title":"Mashing up multiple web feeds using Yahoo! Pipes","volume":"27","author":"Fagan","year":"2007","journal-title":"Computers in Libraries"},{"key":"2025121523165109600_ref25","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/2430545.2430551","article-title":"An information foraging theory perspective on tools for debugging, refactoring, and reuse tasks","volume":"22","author":"Fleming","year":"2013","journal-title":"ACM Transactions on Software Engineering and Methodology (TOSEM)"},{"key":"2025121523165109600_ref26","first-page":"49","article-title":"Ten things we\u2019ve learned from blockly","volume-title":"Blocks and Beyond Workshop (B&B)","author":"Fraser","year":"2015"},{"volume-title":"Blockly: A Visual Programming Editor","year":"2013","author":"Fraser","key":"2025121523165109600_ref27"},{"key":"2025121523165109600_ref28","first-page":"494","article-title":"Block-based programming for two-armed robots: a comparative study","volume-title":"Proceedings of the International Conference on Software Engineering (ICSE)","author":"Fronchetti","year":"2023"},{"key":"2025121523165109600_ref29","first-page":"2707","article-title":"End-user robot programming using mixed reality","volume-title":"Proceedings of the International Conference on Robotics and Automation (ICRA)","author":"Gadre","year":"2019"},{"key":"2025121523165109600_ref30","first-page":"10","article-title":"The hunt for snarc","volume":"47","author":"Gevers","year":"2005","journal-title":"Psychology Science"},{"key":"2025121523165109600_ref31","first-page":"1081","article-title":"End-user personalization of context-dependent applications in aal scenarios","volume-title":"Proceedings of the International Conference on Human\u2013Computer Interaction With Mobile Devices and Services (MOBILEHCI)","author":"Ghiani","year":"2016"},{"key":"2025121523165109600_ref32","doi-asserted-by":"publisher","first-page":"274","DOI":"10.4103\/0974-7788.76794","article-title":"Understanding survival analysis: Kaplan\u2013Meier estimate","volume":"1","author":"Goel","year":"2010","journal-title":"International Journal of Ayurveda Research"},{"key":"2025121523165109600_ref33","doi-asserted-by":"publisher","first-page":"974","DOI":"10.1080\/0144929X.2021.1921028","article-title":"End-user development of smart home rules using block-based programming: a comparative usability evaluation with programmers and non-programmers","volume":"40","author":"Gon\u00e7alves","year":"2021","journal-title":"Behaviour and Information Technology"},{"key":"2025121523165109600_ref34","first-page":"443","article-title":"Cognitive dimensions of notations","volume-title":"People and Computers V","author":"Green","year":"1989"},{"key":"2025121523165109600_ref35","doi-asserted-by":"publisher","first-page":"131","DOI":"10.1006\/jvlc.1996.0009","article-title":"Usability analysis of visual programming environments: a \u2018cognitive dimensions\u2019 framework","volume":"7","author":"Green","year":"1996","journal-title":"Journal of Visual Languages & Computing"},{"key":"2025121523165109600_ref36","first-page":"759","article-title":"Snap! (build your own blocks)","volume-title":"Proceeding of the Technical Symposium on Computer Science Education (SIGCSE)","author":"Harvey","year":"2013"},{"key":"2025121523165109600_ref37","doi-asserted-by":"crossref","first-page":"654","DOI":"10.1145\/3180155.3180165","article-title":"Deuce: a lightweight user interface for structured editing","volume-title":"Proceedings of the International Conference on Software Engineering (ICSE)","author":"Hempel","year":"2018"},{"key":"2025121523165109600_ref38","first-page":"217","article-title":"A usability analysis of blocks-based programming editors using cognitive dimensions","volume-title":"Proceedings of the Symposium on Visual Languages and Human-Centric Computing (VL\/HCC)","author":"Holwerda","year":"2018"},{"volume-title":"mxgraph","year":"2017","author":"JGraph Ltd","key":"2025121523165109600_ref39"},{"key":"2025121523165109600_ref40","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/1013208.1013209","article-title":"Advances in dataflow programming languages","volume":"36","author":"Johnston","year":"2004","journal-title":"ACM Computing Surveys (CSUR)"},{"key":"2025121523165109600_ref41","first-page":"1455","article-title":"Storytelling alice motivates middle school girls to learn computer programming","volume-title":"Proceedings of the Conference on Human Factors in Computing Systems (CHI)","author":"Kelleher","year":"2007"},{"key":"2025121523165109600_ref42","doi-asserted-by":"publisher","first-page":"669","DOI":"10.1002\/j.1538-7305.1961.tb03236.x","article-title":"A block diagram compiler","volume":"40","author":"Kelly","year":"1961","journal-title":"The Bell System Technical Journal"},{"key":"2025121523165109600_ref43","doi-asserted-by":"publisher","first-page":"767","DOI":"10.1007\/s11251-018-9453-5","article-title":"Debugging during block-based programming","volume":"46","author":"Kim","year":"2018","journal-title":"Instructional Science"},{"key":"2025121523165109600_ref44","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/1922649.1922658","article-title":"The state of the art in end-user software engineering","volume":"43","author":"Ko","year":"2011","journal-title":"ACM Computing Surveys (CSUR)"},{"key":"2025121523165109600_ref45","first-page":"1","article-title":"Iot sensor integration to node-red platform","volume-title":"Proceedings of the International Symposium Infoteh-Jahorina (Infoteh)","author":"Leki\u0107","year":"2018"},{"key":"2025121523165109600_ref46","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/1868358.1868363","article-title":"The scratch programming language and environment","volume":"10","author":"Maloney","year":"2010","journal-title":"Transactions on Computing Education (TOCE)"},{"key":"2025121523165109600_ref47","first-page":"1","article-title":"A visual environment for end-user creation of iot customization rules with recommendation support","volume-title":"Proceedings of the 2020 International Conference on Advanced Visual Interfaces","author":"Mattioli","year":"2020"},{"key":"2025121523165109600_ref48","first-page":"25","article-title":"Flow-based programming","volume-title":"Proceedings of the International Workshop on Software Engineering for Parallel and Distributed Systems","author":"Morrison","year":"1994"},{"volume-title":"Flow-Based Programming: A New Approach to Application Development","year":"2010","author":"Morrison","key":"2025121523165109600_ref49"},{"volume-title":"The Spreadsheet Interface: A Basis for End User Programming","year":"1990","author":"Nardi","key":"2025121523165109600_ref50"},{"volume-title":"Occupational Outlook Handbook","year":"2021","author":"US Department of Labor","key":"2025121523165109600_ref51"},{"key":"2025121523165109600_ref52","doi-asserted-by":"publisher","first-page":"208","DOI":"10.1080\/01639269.2014.964593","article-title":"Automate the internet with if this then that (IFTTT)","volume":"33","author":"Ovadia","year":"2014","journal-title":"Behavioral & Social Sciences Librarian"},{"key":"2025121523165109600_ref53","doi-asserted-by":"publisher","first-page":"22","DOI":"10.1016\/j.jbef.2017.12.004","article-title":"Prolific. ac\u2014a subject pool for online experiments","volume":"17","author":"Palan","year":"2018","journal-title":"Journal of Behavioral and Experimental Finance"},{"key":"2025121523165109600_ref54","doi-asserted-by":"publisher","first-page":"233","DOI":"10.1145\/3563296","article-title":"Can guided decomposition help end-users write larger block-based programs? A mobile robot experiment","volume":"6","author":"Ritschel","year":"2022","journal-title":"Proceedings of the ACM on Programming Languages (PACMPL)"},{"volume-title":"Replication Package: Block-Based or Graph-Based? Why Not Both? Designing a Hybrid Programming Environment for End-Users","year":"2025","author":"Ritschel","key":"2025121523165109600_ref4"},{"key":"2025121523165109600_ref55","article-title":"Comparing block-based programming models for two-armed robots","author":"Ritschel","year":"2020","journal-title":"Transactions on Software Engineering (TSE)"},{"issue":"3","key":"2025121523165109600_ref56","first-page":"729","article-title":"Training industrial end-user programmers with interactive tutorials","volume":"53","author":"Ritschel","journal-title":"Software: Practice and Experience (SPE)"},{"volume-title":"Blueprints Visual Scripting for Unreal Engine","year":"2015","author":"Sewell","key":"2025121523165109600_ref57"},{"key":"2025121523165109600_ref58","first-page":"803","article-title":"Practical trigger-action programming in the smart home","volume-title":"Proceedings of the Conference on Human Factors in Computing Systems (CHI)","author":"Ur","year":"2014"},{"key":"2025121523165109600_ref59","first-page":"3227","article-title":"Trigger-action programming in the wild: an analysis of 200,000 IFTTT recipes","volume-title":"Proceedings of the Conference on Human Factors in Computing Systems (CHI)","author":"Ur","year":"2016"},{"key":"2025121523165109600_ref60","first-page":"1","article-title":"Expectation vs. experience: evaluating the usability of code generation tools powered by large language models","volume-title":"Proceedings of the Conference on Human Factors in Computing Systems (CHI)","author":"Vaithilingam","year":"2022"},{"key":"2025121523165109600_ref61","first-page":"137","article-title":"Forest: structural code editing with multiple cursors","volume-title":"Proceedings of the International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!)","author":"Voinov","year":"2022"},{"key":"2025121523165109600_ref62","first-page":"84","article-title":"Labview: laboratory virtual instrument engineering workbench","volume":"11","author":"Vose","year":"1986","journal-title":"Byte"},{"key":"2025121523165109600_ref63","doi-asserted-by":"publisher","first-page":"22","DOI":"10.1145\/3341221","article-title":"Block-based programming in computer science education","volume":"62","author":"Weintrop","year":"2019","journal-title":"Communications of the ACM"},{"key":"2025121523165109600_ref64","first-page":"1","article-title":"Evaluating coblox: a comparative study of robotics programming environments for adult novices","volume-title":"Proceedings of the Conference on Human Factors in Computing Systems (CHI)","author":"Weintrop","year":"2018"},{"key":"2025121523165109600_ref65","first-page":"633","article-title":"From blocks to text and back: programming patterns in a dual-modality environment","volume-title":"Proceeding of the Technical Symposium on Computer Science Education (SIGCSE)","author":"Weintrop","year":"2017"},{"key":"2025121523165109600_ref66","first-page":"29","article-title":"Blockly goes to work: block-based programming for industrial robots","volume-title":"Blocks and Beyond Workshop (B&B)","author":"Weintrop","year":"2017"},{"key":"2025121523165109600_ref67","doi-asserted-by":"publisher","first-page":"877","DOI":"10.2307\/2532208","article-title":"A log-rank test for equivalence of two survivor functions","volume":"49","author":"Wellek","year":"1993","journal-title":"Biometrics"},{"key":"2025121523165109600_ref68","doi-asserted-by":"publisher","first-page":"109","DOI":"10.1006\/jvlc.1996.0030","article-title":"Visual programming languages and the empirical evidence for and against","volume":"8","author":"Whitley","year":"1997","journal-title":"Journal of Visual Languages & Computing"},{"key":"2025121523165109600_ref69","doi-asserted-by":"publisher","first-page":"281","DOI":"10.1016\/j.ijhcs.2005.06.005","article-title":"Evidence in favor of visual representation for the dataflow paradigm: an experiment testing labview\u2019s comprehensibility","volume":"64","author":"Whitley","year":"2006","journal-title":"International Journal of Human\u2013Computer Studies"},{"key":"2025121523165109600_ref70","first-page":"74","article-title":"End-user training: an empirical study comparing on-line practice methods","author":"Wiedenbeck","year":"1995","journal-title":"Proceedings of the Conference on Human Factors in Computing Systems (CHI)"},{"volume-title":"App Inventor","year":"2011","author":"Wolber","key":"2025121523165109600_ref71"}],"container-title":["Interacting with Computers"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/academic.oup.com\/iwc\/article-pdf\/38\/1\/40\/63372498\/iwaf028.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/academic.oup.com\/iwc\/article-pdf\/38\/1\/40\/63372498\/iwaf028.pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,12,16]],"date-time":"2025-12-16T04:17:08Z","timestamp":1765858628000},"score":1,"resource":{"primary":{"URL":"https:\/\/academic.oup.com\/iwc\/article\/38\/1\/40\/8151473"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,5,27]]},"references-count":71,"journal-issue":{"issue":"1","published-online":{"date-parts":[[2025,5,27]]},"published-print":{"date-parts":[[2025,12,12]]}},"URL":"https:\/\/doi.org\/10.1093\/iwc\/iwaf028","relation":{},"ISSN":["0953-5438","1873-7951"],"issn-type":[{"type":"print","value":"0953-5438"},{"type":"electronic","value":"1873-7951"}],"subject":[],"published-other":{"date-parts":[[2026,1]]},"published":{"date-parts":[[2025,5,27]]}}}