skip to main content
research-article
Open Access

Can guided decomposition help end-users write larger block-based programs? a mobile robot experiment

Published:31 October 2022Publication History
Skip Abstract Section

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.

References

  1. ABB Group. 2021. Wizard easy programming. https://new.abb.com/ products/robotics/application-software/wizard. Google ScholarGoogle Scholar
  2. 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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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. Google ScholarGoogle Scholar
  5. 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. Google ScholarGoogle ScholarCross RefCross Ref
  6. Daniele Benedetelli. 2013. Lego Mindstorms EV3 Laboratory: Build, Program, and Experiment with Five Wicked Cool Robots. No Starch Press. Google ScholarGoogle Scholar
  7. 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. Google ScholarGoogle Scholar
  8. 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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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. Google ScholarGoogle Scholar
  10. 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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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. Google ScholarGoogle Scholar
  12. TIOBE The Software Quality Company. 2021. TIOBE Index. https://www. tiobe.com/tiobe-index. Google ScholarGoogle Scholar
  13. Matthew John Conway. 1998. Alice: Easy-to-learn three-dimensional scripting for novices. Ph. D. Dissertation. University of Virginia. Google ScholarGoogle Scholar
  14. 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. Google ScholarGoogle Scholar
  15. 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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Martin Fowler. 1999. Refactoring: Improving the Design of Existing Code. Addison-Wesley. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Neil Fraser. 2015. Ten things we’ve learned from Blockly. In Proceedings of the Blocks and Beyond Workshop (B&B). 49–50. Google ScholarGoogle Scholar
  18. Neil Fraser. 2013. Blockly: A visual programming editor. https://code.google. com/p/blockly. Google ScholarGoogle Scholar
  19. 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. Google ScholarGoogle Scholar
  20. 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. Google ScholarGoogle Scholar
  21. 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. Google ScholarGoogle Scholar
  22. Orit Hazzan. 2008. Reflections on teaching abstraction and other soft ideas. ACM SIGCSE Bulletin, 40, 2 (2008), 40–43. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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. Google ScholarGoogle ScholarCross RefCross Ref
  24. 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. Google ScholarGoogle ScholarCross RefCross Ref
  25. 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. Google ScholarGoogle ScholarCross RefCross Ref
  26. 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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. 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. Google ScholarGoogle Scholar
  29. 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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Jeff Kramer. 2007. Is abstraction the key to computing? Commun. ACM, 50, 4 (2007), 36–42. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. 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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. 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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. 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. Google ScholarGoogle ScholarCross RefCross Ref
  34. 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. Google ScholarGoogle ScholarCross RefCross Ref
  35. 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. Google ScholarGoogle Scholar
  36. Gabriele Paolacci, Jesse Chandler, and Panagiotis G Ipeirotis. 2010. Running experiments on amazon mechanical turk. Judgment and Decision making, 5, 5 (2010), 411–419. Google ScholarGoogle Scholar
  37. 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). Google ScholarGoogle Scholar
  38. 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). Google ScholarGoogle Scholar
  39. 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. Google ScholarGoogle ScholarCross RefCross Ref
  40. 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. Google ScholarGoogle Scholar
  41. Christopher Scaffidi, Mary Shaw, and Brad Myers. 2005. The ‘55m end-user programmers’ estimate revisited. Institute for Software Research, International, Carnegie Mellon University. Google ScholarGoogle Scholar
  42. Roland Siegwart, Illah Reza Nourbakhsh, and Davide Scaramuzza. 2011. Introduction to autonomous mobile robots. MIT press. Google ScholarGoogle Scholar
  43. Universal Robots. 2013. PolyScope Manual. Google ScholarGoogle Scholar
  44. US Department of Labor. 2021. Occupational outlook handbook. https://www.bls.gov/ooh/. Google ScholarGoogle Scholar
  45. David Weintrop. 2019. Block-based programming in computer science education. Commun. ACM, 62, 8 (2019), 22–25. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. 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. Google ScholarGoogle Scholar
  47. 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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. 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. Google ScholarGoogle ScholarCross RefCross Ref
  49. 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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. David Wolber, Hal Abelson, Ellen Spertus, and Liz Looney. 2011. App Inventor. O’Reilly Media, Inc.. Google ScholarGoogle Scholar

Index Terms

  1. Can guided decomposition help end-users write larger block-based programs? a mobile robot experiment

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Article Metrics

          • Downloads (Last 12 months)132
          • Downloads (Last 6 weeks)12

          Other Metrics

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!