Shelves: A User-Defined Block Management Tool for Visual Programming Languages

  • Sheng-Yi HsuEmail author
  • Yuan-Fu Lou
  • Shing-Yun Jung
  • Chuen-Tsai Sun
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10515)


Block editors such as the one used in Scratch are now found in many visual programming languages (VPLs). While considered user-friendly for non-programmers or program learners, they have at least three important display limitations: readability, program structure, and re-use. To address these issues we have developed block shelves, a formatting and organizing tool in support of user-defined VPL structures. Usability experiment results indicate that block shelves can significantly enhance block code navigation and searches, as well as project structure clarification. In the interest of improving project collaboration and code re-use, users can utilize the extensible markup language file format to export/import shelves, and thereby share block codes between projects. Features designed for shelves and the experiment findings are value for course design in project-based learning and future block editor interface improvements.


Human-computer interaction Computer education Visual programming languages Code usability Project-based learning 


  1. 1.
    Bragdon, A., Zeleznik, R., Reiss, S.P, Karumuri, S., Cheung, W., Kaplan, J., Coleman, C., Adeputra, F., LaViola Jr., J.J.: Code bubbles: a working set-based interface for code understanding and maintenance. In: Proceedings of SIGCHI Conference on Human Factors in Computing Systems, vol. 2, pp. 2503–2512. ACM (2010)Google Scholar
  2. 2.
    Bau, D., Bau, D.A., Dawson, M., Pickens, C.S.: Pencil code: block code for a text world. In: Proceedings of 14th International Conference on Interaction Design and Children (IDC 2015), pp. 445–448. ACM, New York (2015)Google Scholar
  3. 3.
    Brinson, M.E., Jahn, S.: Qucs: a GPL software package for circuit simulation, compact device modelling and circuit macromodelling from DC to RF and beyond. Int. J. Numer. Model. Electron. Netw. Devices Fields 22(4), 297–319 (2009)CrossRefzbMATHGoogle Scholar
  4. 4.
    Clifton, M.H.: A technique for making structured programs more readable. ACM SIGPLAN Not. 13(4), 58–63 (1978)CrossRefGoogle Scholar
  5. 5.
    Cooper, S., Dann, W., Pausch, R.: Alice: a 3-D tool for introductory programming concepts. J. Comput. Sci. Coll. Consort. Comput. Sci. Coll. 15, 107–116 (2000)Google Scholar
  6. 6.
    Demšar, J., Curk, T., Erjavec, A., Gorup, Č., Hočevar, T., Milutinovič, M., Možina, M., Polajnar, M., Toplak, M., Starič, A., Štajdohar, M., Umek, L., Žagar, L., Žbontar, J., Žitnik, M., Zupan, B.: Orange: data mining toolbox in Python. J. Mach. Learn. Res. 14, 2349–2353 (2013)zbMATHGoogle Scholar
  7. 7.
    Du, E.: Gameblox flexidor: adding flexibility to blocks based programming environments. Master thesis, Massachusetts Institute of Technology (2015)Google Scholar
  8. 8.
    Eick, S.G., Graves, T.L., Karr, A.F., Marron, J.S., Mockus, A.: Does code decay? Assessing the evidence from change management data. IEEE Trans. Softw. Eng. 27(1), 1–12 (2001)CrossRefGoogle Scholar
  9. 9.
    Elliott, C., Vijayakumar, V., Zink, W., Hansen, R.: National instruments LabVIEW: a programming environment for laboratory automation and measurement. J. Assoc. Lab. Autom. 12(1), 17–24 (2007)CrossRefGoogle Scholar
  10. 10.
    Kersten, M., Murphy, G.C.: Using task context to improve programmer productivity. In Proceedings of 14th ACM SIGSOFT International Symposium on Foundations of Software Engineering (SIGSOFT 2006/FSE 2014), pp. 1–11. ACM, New York (2006)Google Scholar
  11. 11.
    Liu, J., Lin, C., Wilson, J., Hemmenway, D., Hasson, E., Barnett, Z., Xu, Y.: Making games a “snap” with Stencyl: a summer computing workshop for K-12 teachers. In: Proceedings of 45th ACM Technical Symposium on Computer Science Education (SIGCSE 2014), pp. 169–174. ACM, New York (2014)Google Scholar
  12. 12.
    Miara, R.J., Musselman, J.A., Navarro, J.A., Shneiderman, B.: Program indentation and comprehensibility. Commun. ACM 26(11), 861–867 (1983)CrossRefGoogle Scholar
  13. 13.
    Millner A., Baafi, E.: Modkit: blending and extending approachable platforms for creating computer programs and interactive objects. In: Proceedings of 10th International Conference on Interaction Design and Children, pp. 250–253. ACM (2011)Google Scholar
  14. 14.
    Okerlund, J., Turbak, F.: A preliminary analysis of APP Inventor blocks programs. Poster presented at Visual Languages and Human Centric Computing (VLHCC), pp. 15–19 (2013)Google Scholar
  15. 15.
    Pokress, S.C., Veiga, J.J.D.: MIT APP Inventor: enabling personal mobile computing. arXiv preprint arXiv:1310.2830 (2013)
  16. 16.
    Resnick, M., Maloney, J., Monroy-Hernández, A., Rusk, N., Eastmond, E., Brennan, K., Millner, A., Rosenbaum, E., Silver, J., Silverman, B., Kafai, Y.: Scratch: programming for all. Commun. ACM 52(11), 60–67 (2009)CrossRefGoogle Scholar
  17. 17.
    Turbak, F., Sherman, M., Martin, F., Wolber, D., Pokress, S.C.: Events-first programming in APP Inventor. J. Comput. Sci. Coll. 29(6), 81–89 (2014)Google Scholar
  18. 18.
    Roque, R.V.: OpenBlocks: an extendable framework for graphical block programming systems. Master thesis, Massachusetts Institute of Technology (2007)Google Scholar
  19. 19.
    Weintrop, D., Wilensky, U.: To block or not to block, that is the question: students’ perceptions of blocks-based programming. In: Proceedings of 14th International Conference on Interaction Design and Children (IDC 2015), pp. 199–208. ACM, New York (2015)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2017

Authors and Affiliations

  • Sheng-Yi Hsu
    • 1
    Email author
  • Yuan-Fu Lou
    • 1
  • Shing-Yun Jung
    • 1
  • Chuen-Tsai Sun
    • 1
  1. 1.National Chiao Tung UniversityHsinchuTaiwan (R.O.C.)

Personalised recommendations