Can guided decomposition help end-users write larger block-based programs? a mobile robot experiment
Block-based programming environments, already popular in computer science education, have been successfully used to make programming accessible to end-users in domains like robotics, mobile apps, and even DevOps. Most studies of these applications have examined small programs that fit within a singl...
Uloženo v:
| Vydáno v: | Proceedings of ACM on programming languages Ročník 6; číslo OOPSLA2; s. 233 - 258 |
|---|---|
| Hlavní autoři: | , , , , |
| Médium: | Journal Article |
| Jazyk: | angličtina |
| Vydáno: |
New York, NY, USA
ACM
31.10.2022
|
| Témata: | |
| ISSN: | 2475-1421, 2475-1421 |
| On-line přístup: | Získat plný text |
| Tagy: |
Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
|
| Abstract | Block-based programming environments, already popular in computer science education, have been successfully used to make programming accessible to end-users in domains like robotics, mobile apps, and even DevOps. Most studies of these applications have examined small programs that fit within a single screen, yet real-world programs often grow large, and editing these large block-based programs quickly becomes unwieldy. Traditional programming language features, like functions, allow programmers to decompose their programs. Unfortunately, both previous work, and our own findings, suggest that end-users rarely use these features, resulting in large monolithic code blocks that are hard to understand. In this work, we introduce a block-based system that provides users with a hierarchical, domain-specific program structure and requires them to decompose their programs accordingly. Through a user study with 92 users, we compared this approach, which we call guided program decomposition, to a traditional system that supports functions, but does not require decomposition. We found that while almost all users could successfully complete smaller tasks, those who decomposed their programs were significantly more successful as the tasks grew larger. As expected, most users without guided decomposition did not decompose their programs, resulting in poor performance on larger problems. In comparison, users of guided decomposition performed significantly better on the same tasks. Though this study investigated only a limited selection of tasks in one specific domain, it suggests that guided decomposition can benefit end-user programmers. While no single decomposition strategy fits all domains, we believe that similar domain-specific sub-hierarchies could be found for other application areas, increasing the scale of code end-users can create and understand. |
|---|---|
| AbstractList | Block-based programming environments, already popular in computer science education, have been successfully used to make programming accessible to end-users in domains like robotics, mobile apps, and even DevOps. Most studies of these applications have examined small programs that fit within a single screen, yet real-world programs often grow large, and editing these large block-based programs quickly becomes unwieldy. Traditional programming language features, like functions, allow programmers to decompose their programs. Unfortunately, both previous work, and our own findings, suggest that end-users rarely use these features, resulting in large monolithic code blocks that are hard to understand. In this work, we introduce a block-based system that provides users with a hierarchical, domain-specific program structure and requires them to decompose their programs accordingly. Through a user study with 92 users, we compared this approach, which we call guided program decomposition, to a traditional system that supports functions, but does not require decomposition. We found that while almost all users could successfully complete smaller tasks, those who decomposed their programs were significantly more successful as the tasks grew larger. As expected, most users without guided decomposition did not decompose their programs, resulting in poor performance on larger problems. In comparison, users of guided decomposition performed significantly better on the same tasks. Though this study investigated only a limited selection of tasks in one specific domain, it suggests that guided decomposition can benefit end-user programmers. While no single decomposition strategy fits all domains, we believe that similar domain-specific sub-hierarchies could be found for other application areas, increasing the scale of code end-users can create and understand. |
| ArticleNumber | 133 |
| Author | Ritschel, Nico Holmes, Reid Shepherd, David C. Garcia, Ronald Fronchetti, Felipe |
| Author_xml | – sequence: 1 givenname: Nico orcidid: 0000-0001-5600-2978 surname: Ritschel fullname: Ritschel, Nico email: ritschel@cs.ubc.ca organization: University of British Columbia, Canada – sequence: 2 givenname: Felipe orcidid: 0000-0003-2104-6676 surname: Fronchetti fullname: Fronchetti, Felipe email: fronchettl@vcu.edu organization: Virginia Commonwealth University, USA – sequence: 3 givenname: Reid orcidid: 0000-0003-4213-494X surname: Holmes fullname: Holmes, Reid email: rtholmes@cs.ubc.ca organization: University of British Columbia, Canada – sequence: 4 givenname: Ronald orcidid: 0000-0002-0982-1118 surname: Garcia fullname: Garcia, Ronald email: rxg@cs.ubc.ca organization: University of British Columbia, Canada – sequence: 5 givenname: David C. orcidid: 0000-0003-2017-7842 surname: Shepherd fullname: Shepherd, David C. email: shepherdd@vcu.edu organization: Virginia Commonwealth University, USA |
| BookMark | eNptkE1Lw0AQhhepYK3Fu6e9eVrdryTNSaT4BQUveg6zu5O6mmTDbor6701pFRFPM_A8M8y8x2TShQ4JORX8QgidXaosV7LMD8hU6iJjQksx-dUfkXlKr5xzUSq9UOWUuCV0dL3xDh11aEPbh-QHHzr6gk1PsXNskzAm-h79gLSBuMZITRPsGzOQxqk-hnWENl1RoG0wvkEagwkDxY8eo2-xG07IYQ1Nwvm-zsjz7c3T8p6tHu8eltcrBqKUOcNiIWurpQalhJDcamdAFpktSqV0zi1IgwWXBkou5UhdqcEVNefFCDKjZoTt9toYUopYV9YPsP1miOCbSvBqm1K1T2n0z__4_XgwxM9_zLOdCbb9kb7hF-c5cOc |
| CitedBy_id | crossref_primary_10_1093_iwc_iwaf028 |
| Cites_doi | 10.1145/1868358.1868363 10.1145/1922649.1922658 10.1145/3341221 10.1145/1383602.1383631 10.1016/j.compeleceng.2017.08.025 10.1145/1232743.1232745 10.1109/FIE43999.2019.9028475 10.1016/j.jss.2018.11.041 10.1145/1753326.1753706 10.1145/3137065.3137085 10.1109/TVCG.2009.84 10.1145/223904.223914 10.1109/BLOCKS.2017.8120406 10.1145/1151954.1067453 10.1109/ETFA.2009.5347251 10.1109/VLHCC.2018.8506483 10.1080/08993408.2015.1033205 10.1145/3017680.3017707 10.1109/CSMR.2011.24 10.1145/2810146.2810155 10.1109/IWSC.2017.7880506 10.1006/jvlc.1996.0009 10.1109/VLHCC.2016.7739666 10.1109/ISM.2014.24 |
| ContentType | Journal Article |
| Copyright | Owner/Author |
| Copyright_xml | – notice: Owner/Author |
| DBID | AAYXX CITATION |
| DOI | 10.1145/3563296 |
| DatabaseName | CrossRef |
| DatabaseTitle | CrossRef |
| DatabaseTitleList | CrossRef |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 2475-1421 |
| EndPage | 258 |
| ExternalDocumentID | 10_1145_3563296 3563296 |
| GrantInformation_xml | – fundername: NSF (National Science Foundation) grantid: 2024561 funderid: http://dx.doi.org/10.13039/100000001 |
| GroupedDBID | AAKMM AAYFX ACM ADPZR AIKLT ALMA_UNASSIGNED_HOLDINGS GUFHI LHSKQ M~E OK1 ROL AAYXX AEFXT AEJOY AKRVB CITATION |
| ID | FETCH-LOGICAL-a1926-e782fc424a331120c4dba275c7933460ca2be702ba9022c4dd94ad7f0072be5b3 |
| ISSN | 2475-1421 |
| IngestDate | Sat Nov 29 07:46:24 EST 2025 Tue Nov 18 21:47:20 EST 2025 Mon Feb 24 21:14:28 EST 2025 |
| IsDoiOpenAccess | true |
| IsOpenAccess | true |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | OOPSLA2 |
| Keywords | mobile robots block-based programming program decomposition |
| Language | English |
| License | This work is licensed under a Creative Commons Attribution 4.0 International License. |
| LinkModel | OpenURL |
| MergedId | FETCHMERGED-LOGICAL-a1926-e782fc424a331120c4dba275c7933460ca2be702ba9022c4dd94ad7f0072be5b3 |
| ORCID | 0000-0003-2017-7842 0000-0003-2104-6676 0000-0001-5600-2978 0000-0003-4213-494X 0000-0002-0982-1118 |
| OpenAccessLink | https://dl.acm.org/doi/10.1145/3563296 |
| PageCount | 26 |
| ParticipantIDs | crossref_citationtrail_10_1145_3563296 crossref_primary_10_1145_3563296 acm_primary_3563296 |
| PublicationCentury | 2000 |
| PublicationDate | 20221031 2022-10-31 |
| PublicationDateYYYYMMDD | 2022-10-31 |
| PublicationDate_xml | – month: 10 year: 2022 text: 20221031 day: 31 |
| PublicationDecade | 2020 |
| PublicationPlace | New York, NY, USA |
| PublicationPlace_xml | – name: New York, NY, USA |
| PublicationTitle | Proceedings of ACM on programming languages |
| PublicationTitleAbbrev | ACM PACMPL |
| PublicationYear | 2022 |
| Publisher | ACM |
| Publisher_xml | – name: ACM |
| References | Neil Fraser. 2015. Ten things we’ve learned from Blockly. In Proceedings of the Blocks and Beyond Workshop (B&B). 49–50. TIOBE The Software Quality Company. 2021. TIOBE Index. https://www. tiobe.com/tiobe-index. Roland Siegwart, Illah Reza Nourbakhsh, and Davide Scaramuzza. 2011. Introduction to autonomous mobile robots. MIT press. Christopher Scaffidi, Mary Shaw, and Brad Myers. 2005. The ‘55m end-user programmers’ estimate revisited. Institute for Software Research, International, Carnegie Mellon University. Benjamin Burger, Phillip M Maffettone, Vladimir V Gusev, Catherine M Aitchison, Yang Bai, Xiaoyan Wang, Xiaobo Li, Ben M Alston, Buyi Li, and Rob Clowes. 2020. A mobile robotic chemist. Nature, 583, 7815 (2020), 237–241. Marwen Abbes, Foutse Khomh, Yann-Gaël Guéhéneuc, and Giuliano Antoniol. 2011. An Empirical Study of the Impact of Two Antipatterns, Blob and Spaghetti Code, on Program Comprehension. In Proceedings of the European Conference on Software Maintenance and Reengineering. 181–190. Renée McCauley, Scott Grissom, Sue Fitzgerald, and Laurie Murphy. 2015. Teaching and learning recursive programming: a review of the research literature. Computer Science Education, 25, 1 (2015), 37–66. Maria Kallia and Sue Sentance. 2017. Computing teachers’ perspectives on threshold concepts: Functions and procedural abstraction. In Proceedings of the Workshop on Primary and Secondary Computing Education. 15–24. Sofia Charalampidou, Apostolos Ampatzoglou, and Paris Avgeriou. 2015. Size and cohesion metrics as indicators of the long method bad smell: An empirical study. In Proceedings of the International Conference on Predictive Models and Data Analytics in Software Engineering. 1–10. Beate Jost, Markus Ketterl, Reinhard Budde, and Thorsten Leimbach. 2014. Graphical programming environments for educational robots: Open roberta-yet another one? In International Symposium on Multimedia. 381–386. Universal Robots. 2013. PolyScope Manual. Brian James Dorn. 2010. A case-based approach for supporting the informal computing education of end-user programmers. Ph. D. Dissertation. Georgia Institute of Technology. Chiu-Liang Chen, Shun-Yin Cheng, and Janet Mei-Chuen Lin. 2012. A study of misconceptions and missing conceptions of novice Java programmers. In Proceedings of the International Conference on Frontiers in Education: Computer Science and Computer Engineering (FECS). 1. Simon Rose, MP Jacob Habgood, and Tim Jay. 2017. An exploration of the role of visual programming tools in the development of young children’s computational thinking. Electronic journal of e-learning, 15, 4 (2017), pp297–309. Daniele Benedetelli. 2013. Lego Mindstorms EV3 Laboratory: Build, Program, and Experiment with Five Wicked Cool Robots. No Starch Press. Mads Hvilshøj, Simon Bøgh, Ole Madsen, and Morten Kristiansen. 2009. The mobile robot “Little Helper”: Concepts, ideas and working principles. In Conference on Emerging Technologies & Factory Automation. 1–4. John Maloney, Mitchel Resnick, Natalie Rusk, Brian Silverman, and Evelyn Eastmond. 2010. The scratch programming language and environment. ACM Transactions on Computing Education (TOCE), 10, 4 (2010), 1–15. Matthew John Conway. 1998. Alice: Easy-to-learn three-dimensional scripting for novices. Ph. D. Dissertation. University of Virginia. Geoffrey Biggs and Bruce MacDonald. 2003. A survey of robot programming systems. In Proceedings of the Australasian Conference on Robotics and Automation (ACRA). 1–3. Brenna D Argall, Sonia Chernova, Manuela Veloso, and Brett Browning. 2009. A survey of robot learning from demonstration. Robotics and autonomous systems, 57, 5 (2009), 469–483. Mateus Carvalho Gonçalves, Otávio Neves Lara, Raphael Winckler de Bettio, and André Pimenta Freire. 2021. End-user development of smart home rules using block-based programming: A comparative usability evaluation with programmers and non-programmers. Behaviour & Information Technology, 1–23. Neil Fraser. 2013. Blockly: A visual programming editor. https://code.google. com/p/blockly. Orit Hazzan. 2008. Reflections on teaching abstraction and other soft ideas. ACM SIGCSE Bulletin, 40, 2 (2008), 40–43. Essi Lahtinen, Kirsti Ala-Mutka, and Hannu-Matti Järvinen. 2005. A study of the difficulties of novice programmers. ACM SIGCSE Bulletin, 37, 3 (2005), 14–18. David Weintrop, David C Shepherd, Patrick Francis, and Diana Franklin. 2017. Blockly goes to work: Block-based programming for industrial robots. In Proceedings of the Blocks and Beyond Workshop (B&B). 29–36. David Weintrop, Afsoon Afzal, Jean Salac, Patrick Francis, Boyang Li, David C Shepherd, and Diana Franklin. 2018. Evaluating CoBlox: A comparative study of robotics programming environments for adult novices. In Proceedings of the Conference on Human Factors in Computing Systems (CHI). 1–12. Susan Wiedenbeck, Patti L Zila, and Daniel S McConnell. 1995. End-user training: An empirical study comparing on-line practice methods. In Proceedings of the Conference on Human Factors in Computing Systems (CHI). 74–81. Zengxi Pan, Joseph Polden, Nathan Larkin, Stephen Van Duin, and John Norrish. 2010. Recent progress on programming methods for industrial robots. In International Symposium on Robotics and ROBOTIK. 1–8. Gregorio Robles, Jesús Moreno-León, Efthimia Aivaloglou, and Felienne Hermans. 2017. Software clones in scratch projects: On the presence of copy-and-paste in computational thinking learning. In International Workshop on Software Clones (IWSC). 1–7. David Weintrop. 2019. Block-based programming in computer science education. Commun. ACM, 62, 8 (2019), 22–25. José Miguel Mota, Iván Ruiz-Rube, Juan Manuel Dodero, and Inmaculada Arnedillo-Sánchez. 2018. Augmented reality mobile app development for all. Computers & Electrical Engineering, 65 (2018), 250–260. US Department of Labor. 2021. Occupational outlook handbook. https://www.bls.gov/ooh/. David Wolber, Hal Abelson, Ellen Spertus, and Liz Looney. 2011. App Inventor. O’Reilly Media, Inc.. Barbara Rita Barricelli, Fabio Cassano, Daniela Fogli, and Antonio Piccinno. 2019. End-user development, end-user programming and end-user software engineering: A systematic mapping study. Journal of Systems and Software, 149 (2019), 101–137. Martin Fowler. 1999. Refactoring: Improving the Design of Existing Code. Addison-Wesley. Robert Holwerda and Felienne Hermans. 2018. A usability analysis of blocks-based programming editors using cognitive dimensions. In symposium on visual languages and human-centric computing (VL/HCC). 217–225. ABB Group. 2021. Wizard easy programming. https://new.abb.com/ products/robotics/application-software/wizard. Thomas R. G. Green and Marian Petre. 1996. Usability analysis of visual programming environments: A ‘cognitive dimensions’ framework. Journal of Visual Languages & Computing, 7, 2 (1996), 131–174. Brian Harvey, Daniel D Garcia, Tiffany Barnes, Nathaniel Titterton, Daniel Armendariz, Luke Segars, Eugene Lemon, Sean Morris, and Josh Paley. 2013. Snap!(build your own blocks). In Proceeding of the Technical Symposium on Computer Science Education (SIGCSE). 759–759. Andrew Bragdon, Robert Zeleznik, Steven P Reiss, Suman Karumuri, William Cheung, Joshua Kaplan, Christopher Coleman, Ferdi Adeputra, and Joseph J LaViola Jr. 2010. Code Bubbles: A working set-based interface for code understanding and maintenance. In Proceedings of the Conference on Human Factors in Computing Systems (CHI). 2503–2512. Cazembe Kennedy and Eileen T Kraemer. 2018. What are they thinking? Eliciting student reasoning about troublesome concepts in introductory computer science. In Proceedings of the Koli Calling International Conference on Computing Education Research. 1–10. Gabriele Paolacci, Jesse Chandler, and Panagiotis G Ipeirotis. 2010. Running experiments on amazon mechanical turk. Judgment and Decision making, 5, 5 (2010), 411–419. Michael Pradel and Koushik Sen. 2015. The good, the bad, and the ugly: An empirical study of implicit type conversions in JavaScript. In 29th European Conference on Object-Oriented Programming (ECOOP 2015). David Weintrop and Nathan Holbert. 2017. From blocks to text and back: Programming patterns in a dual-modality environment. In Proceeding of the Technical Symposium on Computer Science Education (SIGCSE). 633–638. Niklas Elmqvist and Jean-Daniel Fekete. 2009. Hierarchical aggregation for information visualization: Overview, techniques, and design guidelines. Transactions on Visualization and Computer Graphics (TVCG), 16, 3 (2009), 439–454. Felienne Hermans, Kathryn T Stolee, and David Hoepelman. 2016. Smells in block-based programming languages. In Symposium on Visual Languages and Human-Centric Computing (VL/HCC). 68–72. Amy J. Ko, Robin Abraham, Laura Beckwith, Alan Blackwell, Margaret Burnett, Martin Erwig, Chris Scaffidi, Joseph Lawrance, Henry Lieberman, and Brad Myers. 2011. The state of the art in end-user software engineering. ACM Computing Surveys (CSUR), 43, 3 (2011), 1–44. Jeff Kramer. 2007. Is abstraction the key to computing? Commun. ACM, 50, 4 (2007), 36–42. Nico Ritschel, Vladimir Kovalenko, Reid Holmes, Ron Garcia, and David C Shepherd. 2020. Comparing Block-based Programming Models for Two-armed Robots. IEEE Transactions on Software Engineering (TSE). Kashif Amanullah and Tim Bell. 2019. Evaluating the use of remixing in scratch projects based on repertoire, lines of code (loc), and elementary patterns. In Proceedings of the Frontiers in Education Conference (FIE). 1–8. Wolber David (e_1_2_1_50_1) Chen Chiu-Liang (e_1_2_1_11_1) 2012 e_1_2_1_20_1 Weintrop David (e_1_2_1_46_1) 2018 e_1_2_1_24_1 e_1_2_1_45_1 e_1_2_1_22_1 e_1_2_1_43_1 e_1_2_1_49_1 e_1_2_1_26_1 e_1_2_1_47_1 Burger Benjamin (e_1_2_1_9_1) 2020 Ritschel Nico (e_1_2_1_38_1) 2020 e_1_2_1_31_1 e_1_2_1_8_1 e_1_2_1_6_1 e_1_2_1_12_1 Fowler Martin (e_1_2_1_16_1) 1999 e_1_2_1_10_1 e_1_2_1_33_1 e_1_2_1_2_1 Pradel Michael (e_1_2_1_37_1) 2015 e_1_2_1_39_1 Kennedy Cazembe (e_1_2_1_28_1) 2018 Gonçalves Mateus Carvalho (e_1_2_1_19_1) 2021 Paolacci Gabriele (e_1_2_1_36_1) 2010 Argall Brenna D (e_1_2_1_4_1) 2009 Rose Simon (e_1_2_1_40_1) 2017 e_1_2_1_23_1 Biggs Geoffrey (e_1_2_1_7_1) 2003 Fraser Neil (e_1_2_1_17_1) 2015 e_1_2_1_44_1 e_1_2_1_27_1 e_1_2_1_25_1 e_1_2_1_48_1 e_1_2_1_29_1 Pan Zengxi (e_1_2_1_35_1) 2010 Fraser Neil (e_1_2_1_18_1) 2013 Scaffidi Christopher (e_1_2_1_41_1) e_1_2_1_30_1 e_1_2_1_5_1 e_1_2_1_3_1 e_1_2_1_34_1 e_1_2_1_1_1 e_1_2_1_32_1 Harvey Brian (e_1_2_1_21_1) 2013 e_1_2_1_15_1 Siegwart Roland (e_1_2_1_42_1) 2011 Conway Matthew John (e_1_2_1_13_1) 1998 Dorn Brian James (e_1_2_1_14_1) |
| References_xml | – reference: Andrew Bragdon, Robert Zeleznik, Steven P Reiss, Suman Karumuri, William Cheung, Joshua Kaplan, Christopher Coleman, Ferdi Adeputra, and Joseph J LaViola Jr. 2010. Code Bubbles: A working set-based interface for code understanding and maintenance. In Proceedings of the Conference on Human Factors in Computing Systems (CHI). 2503–2512. – reference: Gabriele Paolacci, Jesse Chandler, and Panagiotis G Ipeirotis. 2010. Running experiments on amazon mechanical turk. Judgment and Decision making, 5, 5 (2010), 411–419. – reference: Universal Robots. 2013. PolyScope Manual. – reference: Beate Jost, Markus Ketterl, Reinhard Budde, and Thorsten Leimbach. 2014. Graphical programming environments for educational robots: Open roberta-yet another one? In International Symposium on Multimedia. 381–386. – reference: Thomas R. G. Green and Marian Petre. 1996. Usability analysis of visual programming environments: A ‘cognitive dimensions’ framework. Journal of Visual Languages & Computing, 7, 2 (1996), 131–174. – reference: Barbara Rita Barricelli, Fabio Cassano, Daniela Fogli, and Antonio Piccinno. 2019. End-user development, end-user programming and end-user software engineering: A systematic mapping study. Journal of Systems and Software, 149 (2019), 101–137. – reference: David Weintrop, Afsoon Afzal, Jean Salac, Patrick Francis, Boyang Li, David C Shepherd, and Diana Franklin. 2018. Evaluating CoBlox: A comparative study of robotics programming environments for adult novices. In Proceedings of the Conference on Human Factors in Computing Systems (CHI). 1–12. – reference: Sofia Charalampidou, Apostolos Ampatzoglou, and Paris Avgeriou. 2015. Size and cohesion metrics as indicators of the long method bad smell: An empirical study. In Proceedings of the International Conference on Predictive Models and Data Analytics in Software Engineering. 1–10. – reference: David Weintrop. 2019. Block-based programming in computer science education. Commun. ACM, 62, 8 (2019), 22–25. – reference: José Miguel Mota, Iván Ruiz-Rube, Juan Manuel Dodero, and Inmaculada Arnedillo-Sánchez. 2018. Augmented reality mobile app development for all. Computers & Electrical Engineering, 65 (2018), 250–260. – reference: Brenna D Argall, Sonia Chernova, Manuela Veloso, and Brett Browning. 2009. A survey of robot learning from demonstration. Robotics and autonomous systems, 57, 5 (2009), 469–483. – reference: Mateus Carvalho Gonçalves, Otávio Neves Lara, Raphael Winckler de Bettio, and André Pimenta Freire. 2021. End-user development of smart home rules using block-based programming: A comparative usability evaluation with programmers and non-programmers. Behaviour & Information Technology, 1–23. – reference: Amy J. Ko, Robin Abraham, Laura Beckwith, Alan Blackwell, Margaret Burnett, Martin Erwig, Chris Scaffidi, Joseph Lawrance, Henry Lieberman, and Brad Myers. 2011. The state of the art in end-user software engineering. ACM Computing Surveys (CSUR), 43, 3 (2011), 1–44. – reference: Brian Harvey, Daniel D Garcia, Tiffany Barnes, Nathaniel Titterton, Daniel Armendariz, Luke Segars, Eugene Lemon, Sean Morris, and Josh Paley. 2013. Snap!(build your own blocks). In Proceeding of the Technical Symposium on Computer Science Education (SIGCSE). 759–759. – reference: Martin Fowler. 1999. Refactoring: Improving the Design of Existing Code. Addison-Wesley. – reference: US Department of Labor. 2021. Occupational outlook handbook. https://www.bls.gov/ooh/. – reference: David Weintrop and Nathan Holbert. 2017. From blocks to text and back: Programming patterns in a dual-modality environment. In Proceeding of the Technical Symposium on Computer Science Education (SIGCSE). 633–638. – reference: Matthew John Conway. 1998. Alice: Easy-to-learn three-dimensional scripting for novices. Ph. D. Dissertation. University of Virginia. – reference: Maria Kallia and Sue Sentance. 2017. Computing teachers’ perspectives on threshold concepts: Functions and procedural abstraction. In Proceedings of the Workshop on Primary and Secondary Computing Education. 15–24. – reference: Gregorio Robles, Jesús Moreno-León, Efthimia Aivaloglou, and Felienne Hermans. 2017. Software clones in scratch projects: On the presence of copy-and-paste in computational thinking learning. In International Workshop on Software Clones (IWSC). 1–7. – reference: Christopher Scaffidi, Mary Shaw, and Brad Myers. 2005. The ‘55m end-user programmers’ estimate revisited. Institute for Software Research, International, Carnegie Mellon University. – reference: Cazembe Kennedy and Eileen T Kraemer. 2018. What are they thinking? Eliciting student reasoning about troublesome concepts in introductory computer science. In Proceedings of the Koli Calling International Conference on Computing Education Research. 1–10. – reference: Zengxi Pan, Joseph Polden, Nathan Larkin, Stephen Van Duin, and John Norrish. 2010. Recent progress on programming methods for industrial robots. In International Symposium on Robotics and ROBOTIK. 1–8. – reference: Michael Pradel and Koushik Sen. 2015. The good, the bad, and the ugly: An empirical study of implicit type conversions in JavaScript. In 29th European Conference on Object-Oriented Programming (ECOOP 2015). – reference: Geoffrey Biggs and Bruce MacDonald. 2003. A survey of robot programming systems. In Proceedings of the Australasian Conference on Robotics and Automation (ACRA). 1–3. – reference: Susan Wiedenbeck, Patti L Zila, and Daniel S McConnell. 1995. End-user training: An empirical study comparing on-line practice methods. In Proceedings of the Conference on Human Factors in Computing Systems (CHI). 74–81. – reference: Roland Siegwart, Illah Reza Nourbakhsh, and Davide Scaramuzza. 2011. Introduction to autonomous mobile robots. MIT press. – reference: Simon Rose, MP Jacob Habgood, and Tim Jay. 2017. An exploration of the role of visual programming tools in the development of young children’s computational thinking. Electronic journal of e-learning, 15, 4 (2017), pp297–309. – reference: Robert Holwerda and Felienne Hermans. 2018. A usability analysis of blocks-based programming editors using cognitive dimensions. In symposium on visual languages and human-centric computing (VL/HCC). 217–225. – reference: John Maloney, Mitchel Resnick, Natalie Rusk, Brian Silverman, and Evelyn Eastmond. 2010. The scratch programming language and environment. ACM Transactions on Computing Education (TOCE), 10, 4 (2010), 1–15. – reference: Neil Fraser. 2015. Ten things we’ve learned from Blockly. In Proceedings of the Blocks and Beyond Workshop (B&B). 49–50. – reference: TIOBE The Software Quality Company. 2021. TIOBE Index. https://www. tiobe.com/tiobe-index. – reference: Felienne Hermans, Kathryn T Stolee, and David Hoepelman. 2016. Smells in block-based programming languages. In Symposium on Visual Languages and Human-Centric Computing (VL/HCC). 68–72. – reference: Nico Ritschel, Vladimir Kovalenko, Reid Holmes, Ron Garcia, and David C Shepherd. 2020. Comparing Block-based Programming Models for Two-armed Robots. IEEE Transactions on Software Engineering (TSE). – reference: David Wolber, Hal Abelson, Ellen Spertus, and Liz Looney. 2011. App Inventor. O’Reilly Media, Inc.. – reference: Mads Hvilshøj, Simon Bøgh, Ole Madsen, and Morten Kristiansen. 2009. The mobile robot “Little Helper”: Concepts, ideas and working principles. In Conference on Emerging Technologies & Factory Automation. 1–4. – reference: Orit Hazzan. 2008. Reflections on teaching abstraction and other soft ideas. ACM SIGCSE Bulletin, 40, 2 (2008), 40–43. – reference: Neil Fraser. 2013. Blockly: A visual programming editor. https://code.google. com/p/blockly. – reference: Niklas Elmqvist and Jean-Daniel Fekete. 2009. Hierarchical aggregation for information visualization: Overview, techniques, and design guidelines. Transactions on Visualization and Computer Graphics (TVCG), 16, 3 (2009), 439–454. – reference: Benjamin Burger, Phillip M Maffettone, Vladimir V Gusev, Catherine M Aitchison, Yang Bai, Xiaoyan Wang, Xiaobo Li, Ben M Alston, Buyi Li, and Rob Clowes. 2020. A mobile robotic chemist. Nature, 583, 7815 (2020), 237–241. – reference: Essi Lahtinen, Kirsti Ala-Mutka, and Hannu-Matti Järvinen. 2005. A study of the difficulties of novice programmers. ACM SIGCSE Bulletin, 37, 3 (2005), 14–18. – reference: David Weintrop, David C Shepherd, Patrick Francis, and Diana Franklin. 2017. Blockly goes to work: Block-based programming for industrial robots. In Proceedings of the Blocks and Beyond Workshop (B&B). 29–36. – reference: Kashif Amanullah and Tim Bell. 2019. Evaluating the use of remixing in scratch projects based on repertoire, lines of code (loc), and elementary patterns. In Proceedings of the Frontiers in Education Conference (FIE). 1–8. – reference: Jeff Kramer. 2007. Is abstraction the key to computing? Commun. ACM, 50, 4 (2007), 36–42. – reference: Renée McCauley, Scott Grissom, Sue Fitzgerald, and Laurie Murphy. 2015. Teaching and learning recursive programming: a review of the research literature. Computer Science Education, 25, 1 (2015), 37–66. – reference: ABB Group. 2021. Wizard easy programming. https://new.abb.com/ products/robotics/application-software/wizard. – reference: Brian James Dorn. 2010. A case-based approach for supporting the informal computing education of end-user programmers. Ph. D. Dissertation. Georgia Institute of Technology. – reference: Chiu-Liang Chen, Shun-Yin Cheng, and Janet Mei-Chuen Lin. 2012. A study of misconceptions and missing conceptions of novice Java programmers. In Proceedings of the International Conference on Frontiers in Education: Computer Science and Computer Engineering (FECS). 1. – reference: Marwen Abbes, Foutse Khomh, Yann-Gaël Guéhéneuc, and Giuliano Antoniol. 2011. An Empirical Study of the Impact of Two Antipatterns, Blob and Spaghetti Code, on Program Comprehension. In Proceedings of the European Conference on Software Maintenance and Reengineering. 181–190. – reference: Daniele Benedetelli. 2013. Lego Mindstorms EV3 Laboratory: Build, Program, and Experiment with Five Wicked Cool Robots. No Starch Press. – volume-title: A case-based approach for supporting the informal computing education of end-user programmers. Ph. D. Dissertation ident: e_1_2_1_14_1 – ident: e_1_2_1_32_1 doi: 10.1145/1868358.1868363 – ident: e_1_2_1_29_1 doi: 10.1145/1922649.1922658 – ident: e_1_2_1_43_1 – ident: e_1_2_1_45_1 doi: 10.1145/3341221 – ident: e_1_2_1_22_1 doi: 10.1145/1383602.1383631 – ident: e_1_2_1_34_1 doi: 10.1016/j.compeleceng.2017.08.025 – volume-title: The ‘55m end-user programmers ident: e_1_2_1_41_1 – ident: e_1_2_1_30_1 doi: 10.1145/1232743.1232745 – ident: e_1_2_1_3_1 doi: 10.1109/FIE43999.2019.9028475 – volume-title: Proceedings of the International Conference on Frontiers in Education: Computer Science and Computer Engineering (FECS). 1. year: 2012 ident: e_1_2_1_11_1 – ident: e_1_2_1_5_1 doi: 10.1016/j.jss.2018.11.041 – volume-title: Blockly. In Proceedings of the Blocks and Beyond Workshop (B&B). 49–50 year: 2015 ident: e_1_2_1_17_1 – volume-title: Running experiments on amazon mechanical turk. Judgment and Decision making, 5, 5 year: 2010 ident: e_1_2_1_36_1 – volume-title: Proceedings of the Conference on Human Factors in Computing Systems (CHI). 1–12 year: 2018 ident: e_1_2_1_46_1 – volume-title: Proceedings of the Australasian Conference on Robotics and Automation (ACRA). 1–3. year: 2003 ident: e_1_2_1_7_1 – ident: e_1_2_1_12_1 – ident: e_1_2_1_8_1 doi: 10.1145/1753326.1753706 – ident: e_1_2_1_27_1 doi: 10.1145/3137065.3137085 – volume-title: Raphael Winckler de Bettio, and André Pimenta Freire. year: 2021 ident: e_1_2_1_19_1 – ident: e_1_2_1_15_1 doi: 10.1109/TVCG.2009.84 – ident: e_1_2_1_49_1 doi: 10.1145/223904.223914 – ident: e_1_2_1_48_1 doi: 10.1109/BLOCKS.2017.8120406 – ident: e_1_2_1_31_1 doi: 10.1145/1151954.1067453 – volume-title: A mobile robotic chemist. Nature, 583, 7815 year: 2020 ident: e_1_2_1_9_1 – year: 2020 ident: e_1_2_1_38_1 article-title: Comparing Block-based Programming Models for Two-armed Robots publication-title: IEEE Transactions on Software Engineering (TSE). – ident: e_1_2_1_25_1 doi: 10.1109/ETFA.2009.5347251 – ident: e_1_2_1_24_1 doi: 10.1109/VLHCC.2018.8506483 – ident: e_1_2_1_33_1 doi: 10.1080/08993408.2015.1033205 – volume-title: Refactoring: Improving the Design of Existing Code year: 1999 ident: e_1_2_1_16_1 – volume-title: O’Reilly Media ident: e_1_2_1_50_1 – volume-title: Alice: Easy-to-learn three-dimensional scripting for novices. Ph. D. Dissertation year: 1998 ident: e_1_2_1_13_1 – ident: e_1_2_1_47_1 doi: 10.1145/3017680.3017707 – volume-title: International Symposium on Robotics and ROBOTIK. 1–8. year: 2010 ident: e_1_2_1_35_1 – ident: e_1_2_1_1_1 – volume-title: Blockly: A visual programming editor year: 2013 ident: e_1_2_1_18_1 – volume-title: Illah Reza Nourbakhsh, and Davide Scaramuzza year: 2011 ident: e_1_2_1_42_1 – volume-title: Proceeding of the Technical Symposium on Computer Science Education (SIGCSE). 759–759 year: 2013 ident: e_1_2_1_21_1 – ident: e_1_2_1_2_1 doi: 10.1109/CSMR.2011.24 – volume-title: 29th European Conference on Object-Oriented Programming (ECOOP year: 2015 ident: e_1_2_1_37_1 – ident: e_1_2_1_6_1 – ident: e_1_2_1_10_1 doi: 10.1145/2810146.2810155 – ident: e_1_2_1_39_1 doi: 10.1109/IWSC.2017.7880506 – ident: e_1_2_1_20_1 doi: 10.1006/jvlc.1996.0009 – volume-title: Proceedings of the Koli Calling International Conference on Computing Education Research. 1–10 year: 2018 ident: e_1_2_1_28_1 – volume-title: MP Jacob Habgood, and Tim Jay year: 2017 ident: e_1_2_1_40_1 – ident: e_1_2_1_44_1 – volume-title: A survey of robot learning from demonstration. Robotics and autonomous systems, 57, 5 year: 2009 ident: e_1_2_1_4_1 – ident: e_1_2_1_23_1 doi: 10.1109/VLHCC.2016.7739666 – ident: e_1_2_1_26_1 doi: 10.1109/ISM.2014.24 |
| SSID | ssj0001934839 |
| Score | 2.2476964 |
| Snippet | Block-based programming environments, already popular in computer science education, have been successfully used to make programming accessible to end-users in... |
| SourceID | crossref acm |
| SourceType | Enrichment Source Index Database Publisher |
| StartPage | 233 |
| SubjectTerms | Domain specific languages Integrated and visual development environments Procedures, functions and subroutines Software and its engineering |
| SubjectTermsDisplay | Software and its engineering -- Domain specific languages Software and its engineering -- Integrated and visual development environments Software and its engineering -- Procedures, functions and subroutines |
| Title | Can guided decomposition help end-users write larger block-based programs? a mobile robot experiment |
| URI | https://dl.acm.org/doi/10.1145/3563296 |
| Volume | 6 |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVHPJ databaseName: ROAD: Directory of Open Access Scholarly Resources customDbUrl: eissn: 2475-1421 dateEnd: 99991231 omitProxy: false ssIdentifier: ssj0001934839 issn: 2475-1421 databaseCode: M~E dateStart: 20170101 isFulltext: true titleUrlDefault: https://road.issn.org providerName: ISSN International Centre |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV1Lj9MwELbKwoELjwXE8pIPwCWySB3n4QNCVUXhwO5WsEh7q2zHQRVpUqXpsid-Ar-ZcWwnYeEABy5R5Viu5Pk6_jz9Zgah55JGisepJqLIJAGECAI8WRKdwN1gqhVQkrxrNpGenGTn53w5mfzwuTAXZVpV2eUl3_5XU8MYGNukzv6DuftFYQA-g9HhCWaH518Zfg6_2C_7dQ5MMtdGMe5kWcAJy22gq5yYwMQu-NYA2wxKowRvjH5dfSXmSMu9ZGv3IloEItjUEhxH0NSybkf9AMakdtkfgp0uZDY_Nn9BuGU2Jhbho6KDsH7d7owG1YOxh1FTVzDeWpHBQpfr7YC8Pnvio_Y6_P3rd6YZkmXAXZh7HMaAG_Dg_y3wnDS-c32UpTGZMps77f10MoLj6eny04cZHXteW0_DHeLU1oP__XxgppRGFCcR5VcqcNsz3b65hq7TNOZGInj8fRSz4xEDQmlzr81ar9x8Q23UZkRtRhzl7A665S4XeGZBcRdNdHWIbvvGHdj58XsoB4xgixH8C0awwQjuMYI7jGCLETzCCPYYeYMFtgjBHULwgJD76PPi7dn8PXHtNogAmp8QDWSxUIwyEUXAwkPFcilgGxS48IgloRJU6jSkUnCwH7zNORN5Wpji81LHMnqADqq60g8RDiNhutnxTBUFgzMh45LxPJyKUHJaiOkROoT9Wm1tQZWV28Uj9NLv30q5CvWmUUq5stnz8TAR9xP9GlemPPrjNzxGNwfsPUEHbbPXT9ENddGud82zztg_ARlbf4E |
| linkProvider | ISSN International Centre |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Can+guided+decomposition+help+end-users+write+larger+block-based+programs%3F+a+mobile+robot+experiment&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Ritschel%2C+Nico&rft.au=Fronchetti%2C+Felipe&rft.au=Holmes%2C+Reid&rft.au=Garcia%2C+Ronald&rft.date=2022-10-31&rft.pub=ACM&rft.eissn=2475-1421&rft.volume=6&rft.issue=OOPSLA2&rft.spage=233&rft.epage=258&rft_id=info:doi/10.1145%2F3563296&rft.externalDocID=3563296 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2475-1421&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2475-1421&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2475-1421&client=summon |