Towards a Universal Framework for Visual Programming Languages

Muhammad Idrees, Faisal Aslam, Khurram Shahzad, Syed Mansoor Sarwar


A Visual Programming Language (VPL) can help programmers quickly develop robust programs using simple drag-and-drop of visual elements, without worrying about the syntactic details of a programming language. In contrast to the textual programming languages, a VPL is usually designed for a specific domain such as to teach programming to beginners or to develop engineering models. Therefore, it is highly likely that numerous VPLs will be developed in future for different tasks and domains. Presently, each new VPL being developed is either created from scratch, or in some cases a newly developed VPL has used codebase of only a single existing VPL. As a consequence, significant effort is required for developing a new VPL. This paper highlights the need of a universal framework to drastically reduce the time and effort required to develop a new VPL, and also to enhance reusability of an existing VPL codebase. The framework offers a layered approach to VPL development. The layered approach offers an opportunity to generate a VPL layer by combining components from the corresponding layers of existing VPLs while writing minimal new components of the layer when required.

Full Text:



McCracken, M., Almstrum, V., Diaz, D., Guzdial, M., Hagan, D., Kolikant, Y. B. D., ... & Wilusz, T. (2001, December). A multi-national, multi-institutional study of assessment of programming skills of first-year CS students. In Working group reports from ITiCSE on Innovation and technology in computer science education (pp. 125-180). ACM.

Jenkins, T. (2002, August). On the difficulty of learning to program. In Proceedings of the 3rd Annual Conference of the LTSN Centre for Information and Computer Sciences (Vol. 4, No. 2002, pp. 53-58).

Chang, C. K. (2014). Effects of using Alice and Scratch in an introductory programming course for corrective instruction. Journal of Educational Computing Research, 51(2), 185-204.

Knuth, D. E., & Pardo, L. T. (1980). The early development of programming languages. In A history of computing in the twentieth century (pp. 197-273).

Chao, P. Y. (2016). Exploring students' computational practice, design and performance of problem-solving through a visual programming environment. Computers & Education, 95, 202-215.

Weintrop, D., & Wilensky, U. (2017). Comparing block-based and text-based programming in high school computer science classrooms. ACM Transactions on Computing Education (TOCE), 18(1), 3..

Austin Cory Bart and Dennis Kafura. 2017. BlockPy Interactive Demo: Dual Text/Block Python Programming Environment for Guided Practice and Data Science (Abstract Only). In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education (SIGCSE '17). ACM, New York, NY, USA, 639-640. DOI:

Details omitted for double-blind reviewing.

Flowchart interpreter. Accessed: 2016-08-10.

Mona Rizvi and Thorna Humphries. A scratch-based cs0 course for at-risk computer science majors. In 2012 Frontiers in Education Conference Proceedings, pages 1–5. IEEE, 2012.

Brian Harvey, Daniel D Garcia, Tiffany Barnes, Nathaniel Titterton, Omoju Miller, Dan Armendariz, Jon McKinsey, Zachary Machardy, Eugene Lemon, Sean Morris, et al. Snap!(build your own blocks). In Proceedings of the 45th ACM technical symposium on Computer science education, pages 749–749. ACM, 2014.

Jean Michel Rouly, Jonathan D Orbeck, and Eugene Syriani. Usability and suitability survey of features in visual ides for non-programmers. In Proceedings of the 5th Workshop on Evaluation and Usability of Programming Languages and Tools, pages 31–42. ACM, 2014.

Stencyl. Accessed: 2016-08-16.

R Nigel Horspool and Nikolai Tillmann. TouchDevelop: programming on the go. Apress, 2013.

Nikolai Tillmann, Michal Moskal, Jonathan de Halleux, Manuel Fahndrich, and Tao Xie. Engage your students by teaching computer science using only mobile devices with touchdevelop. In Software Engineering Education and Training (CSEE&T), 2012 IEEE 25th Conference on, pages 87–89. IEEE, 2012.

Touch develop. Accessed: 2016-08-16.

Touch develop export. Accessed: 2016-08-16.

N Fraser et al. Blockly: A visual programming editor. URL: https://code. google. com/p/blockly, 2013.

Assaf Marron, Gera Weiss, and Guy Wiener. A decentralized approach for programming interactive applications with javascript and blockly. In Proceedings of the 2nd edition on Programming systems, languages and applications based on actors, agents, and decentralized control abstractions, pages 59–70. ACM, 2012.

Code dot org. Accessed: 2016-08-16.

Filiz Kalelio˘glu. A new way of teaching programming skills to k-12 students: Code. org. Computers in Human Behavior, 52:200–210, 2015.

Markus Ketterl, Beate Jost, Thorsten Leimbach, and Reinhard Budde. Tema 2: Open roberta-a web based approach to visually program real educational robots. Tidsskriftet Læring og Medier (LOM), 8(14), 2016.

mblock. Accessed: 2016-08-16.

David Bau, D Anthony Bau, Mathew Dawson, and C Pickens. Pencil code: block code for a text world. In Proceedings of the 14th International Conference on Interaction Design and Children, pages 445–448. ACM, 2015.

Open source graphical programming for design. Accessed: 2017-09-01.

Flowgorithm. Accessed: 2016-08-10.

Mora D´ıaz and Jos´e Luis. Remgrafee tool: Herramienta para el estudio de los sistemas basados en reglas mediante grafos rete. 2016.

Deepak Kumar. Digital playgrounds for early computing education. ACM Inroads, 5(1):20–21, 2014.

Francisco Jos´e Garc´ıa-Pe˜nalvo, A Rees, J Hughes, I Jormanainen, T Toivonen, and J Vermeersh. A survey of resources for introducing coding into schools. 2016.

Viple. Accessed: 2016-08-16.

Yinong Chen and Gennaro De Luca. Viple: Visual iot/robotics programming language environment for computer science education. In Parallel and Distributed Processing Symposium Workshops, 2016 IEEE International, pages 963–971. IEEE, 2016.

Bernat Romagosa Carrasquer. From the turtle to the beetle. Master’s thesis, Universitat Oberta de Catalunya, 2016.

Austin Cory Bart, Eli Tilevich, Clifford A Shaffer, and Dennis Kafura. Position paper: From interest to usefulness with blockpy, a block-based, educational environment. In Blocks and Beyond Workshop (Blocks and Beyond), 2015 IEEE, pages 87–89. IEEE, 2015.

Jerry M Chin, Mary H Chin, and Cathryn Van Landuyt. A string search marketing application using visual programming. The E-Journal of Business Education & Scholarship of Teaching, 7(2):46, 2013.

S Mitkin. Drakon: The human revolution in understanding programs., 2011.

Jeffrey Travis and Jim Kring. LabVIEW for everyone: graphical programming made easy and fun. Prentice-Hall, 2007.

Gary W Johnson. LabVIEW graphical programming. Tata McGraw-Hill Education, 1997.

Lisa K Wells and Jeffrey Travis. LabVIEW for everyone: graphical programming made even easier. Prentice-Hall, Inc., 1996.

What is labview? Accessed: 2017-09-01.

Alexander Repenning. Agentsheets R : An interactive simulation environment with end-user programmable agents. Interaction, 2000.

Agentsheets. Accessed: 2016-08-16.

B.A. Calloni and D.J. Bagert. Iconic programming in baccii vs. textual programming: which is a better learning environment? In ACM SIGCSE Bulletin, volume 26, pages 188–192. ACM, 1994.

B.A. Calloni, D.J. Bagert, and H.P. Haiduk. Iconic programming proves effective for teaching the first year programming sequence. ACM SIGCSE Bulletin, 29(1):262–266, 1997.

Pamela B Lawhead, Michaele E Duncan, Constance G Bland, Michael Goldweber, Madeleine Schep, David J Barnes, and Ralph G Hollingsworth. A road map for teaching introductory programming using lego mindstorms robots. In ACM SIGCSE Bulletin, volume 35, pages 191–201. ACM, 2002.

Alan Kay. Squeak etoys authoring & media. Viewpoints Research Institute, 2005.

Matthew Conway, Steve Audia, Tommy Burnette, Dennis Cosgrove, and Kevin Christiansen. Alice: lessons learned from building a 3d system for novices. In Proceedings of the SIGCHI conference on Human Factors in Computing Systems, pages 486–493. ACM, 2000.

Stephen Cooper, Wanda Dann, and Randy Pausch. Alice: a 3-d tool for introductory programming concepts. In Journal of Computing Sciences in Colleges, volume 15, pages 107–116. Consortium for Computing Sciences in Colleges, 2000.

Alice. Accessed: 2016-08-10.

Hemant K Bhargava, Suresh Sridhar, and Craig Herrick. Beyond spreadsheets: tools for building decision support systems. Computer, 32(3):31–39, 1999.

Sfc website. Accessed: 2016-08-10.

U. Ziegler and T. Crews. An integrated program development tool for teaching and learning how to program. In ACM SIGCSE Bulletin, volume 31, pages 276–280. ACM, 1999.

T.F. Materson and R.M. Meyer. Sivil: a true visual programming language for students. Journal of Computing Sciences in Colleges, 16(4):74–86, 2001.

Martin C Carlisle, Terry A Wilson, Jeffrey WHumphries, and Steven MHadfield. Raptor: a visual programming environment for teaching algorithmic problem solving. ACM SIGCSE Bulletin, 37(1):176–180, 2005.

PE Nikunja Swain. Raptor-a vehicle to enhance logical thinking. Journal of Environmental Hazards, 7(4):353–359, 2013.

Raptor, a flowchart-based programming environment. Accessed: 2016-08-10.

Estelle Perrin, S´ebastien Linck, and Fr´ed´eric Danesi. Algopath: A new way of learning algorithmic. In The Fifth International Conference on Advances in Computer-Human Interactions, Valencia, Spain, pages 291–296, 2012.

Logic of algorithms for resolution of problems (larp). Accessed: 2016-08-10.

Visual logic. Accessed: 2016-08-10.

Stephen Chen and Stephen Morris. Iconic programming for flowcharts, java, turing, etc. In ACM SIGCSE Bulletin, volume 37, pages 104–107. ACM, 2005.

Mitchel Resnick, John Maloney, Andr´es Monroy-Hern´andez, Natalie Rusk, Evelyn Eastmond, Karen Brennan, Amon Millner, Eric Rosenbaum, Jay Silver, Brian Silverman, et al. Scratch: programming for all. Communications of the ACM, 52(11):60–67, 2009.

Sally Fincher, Stephen Cooper, Michael K¨olling, and John Maloney. Comparing alice, greenfoot & scratch. In Proceedings of the 41st ACM technical symposium on Computer science education, pages 192–193. ACM, 2010.

John H Maloney, Kylie Peppler, Yasmin Kafai, Mitchel Resnick, and Natalie Rusk. Programming by choice: urban youth learning programming with scratch, volume 40. ACM, 2008.

Scratch. Accessed: 2016-08-10.

Melisa Koorsse, Charmain Cilliers, and Andr´e Calitz. Programming assistance tools to support the learning of it programming in south african secondary schools. Computers & Education, 82:162–178, 2015.

JH Greyling, CB Cilliers, and AP Calitz. B#: The development and assessment of an iconic programming tool for novice programmers. In 2006 7th International Conference on Information Technology Based Higher Education and Training, pages 367–375. IEEE, 2006.

Microsoft vpl. Accessed: 2016-08-16.

Frank Klassner and Scott D Anderson. Lego mindstorms: Not just for k-12 anymore. IEEE Robotics & Automation Magazine, 10(2):12–18, 2003.

Pamela B Lawhead, Michaele E Duncan, Constance G Bland, Michael Goldweber, Madeleine Schep, David J Barnes, and Ralph G Hollingsworth. A road map for teaching introductory programming using lego mindstorms robots. In ACM SIGCSE Bulletin, volume 35, pages 191–201. ACM, 2002.

Mitchel Resnick. Starlogo: An environment for decentralized modeling and decentralized thinking. In Conference companion on Human factors in computing systems, pages 11–12. ACM, 1996.

Kevin Wang, Corey McCaffrey, Daniel Wendel, and Eric Klopfer. 3d game design with programming blocks in starlogo tng. In Proceedings of the 7th international conference on Learning sciences, pages 1008–1009. International Society of the Learning Sciences, 2006.

Andrew Scott, Mike Watkins, and Duncan McPhee. Progranimate a web enabled algorithmic problem solving application. In CSREA EEE, pages 498–508, 2008.

Andrew Scott, Mike Watkins, and Duncan McPhee. E-learning for novice programmers; a dynamic visualisation and problem solving tool. In Information and Communication Technologies: From Theory to Applications, 2008. ICTTA 2008. 3rd International Conference on, pages 1–6. IEEE, 2008.

Progranimate. Accessed: 2016-08-10.

Sourceforge devflowcharter. Accessed: 2016-08-16.

Miguel DeQuadros. GameSalad Beginner’s Guide. Packt Publishing Ltd, 2012.

Krishnendu Roy, William C Rousse, and David B DeMeritt. Comparing the mobile novice programming environments: App inventor for android vs. gamesalad. In 2012 Frontiers in Education Conference Proceedings, pages 1–6. IEEE, 2012.

Matt MacLaurin. Kodu: end-user programming and design for games. In Proceedings of the 4th international conference on foundations of digital games, page 2. ACM, 2009.

Matthew B MacLaurin. The design of kodu: A tiny visual programming language for children on the xbox 360. In ACM Sigplan Notices, volume 46, pages 241–246. ACM, 2011.

Ralph Roberts. Google App Inventor. Packt Publishing Ltd, 2011.

Copyright (c) 2018 Pakistan Journal of Engineering and Applied Sciences

Powered By KICS