Litcius/Paper detail

Characterizing Visual Programming Approaches for End-User Developers: A Systematic Review

Mohammad Amin Kuhail, Shahbano Farooq, Rawad Hammad, Mohammed Bahja

2021IEEE Access66 citationsDOIOpen Access PDF

Abstract

Recently many researches have explored the potential of visual programming in robotics, the Internet of Things (IoT), and education. However, there is a lack of studies that analyze the recent evidence-based visual programming approaches that are applied in several domains. This study presents a systematic review to understand, compare, and reflect on recent visual programming approaches using twelve dimensions: visual programming classification, interaction style, target users, domain, platform, empirical evaluation type, test participants' type, number of test participants, test participants' programming skills, evaluation methods, evaluation measures, and accessibility of visual programming tools. The results show that most of the selected articles discussed tools that target IoT and education, while other fields such as data science, robotics are emerging. Further, most tools use abstractions to hide implementation details and use similar interaction styles. The predominant platforms for the tools are web and mobile, while desktop-based tools are on the decline. Only a few tools were evaluated with a formal experiment, whilst the remaining ones were evaluated with evaluation studies or informal feedback. Most tools were evaluated with students with little to no programming skills. There is a lack of emphasis on usability principles in the design stage of the tools. Additionally, only one of the tools was evaluated for expressiveness. Other areas for exploration include supporting end users throughout the life cycle of applications created with the tools, studying the impact of tutorials on improving learnability, and exploring the potential of machine learning to improve debugging solutions developed with visual programming.

Topics & Concepts

Computer scienceDebuggingUsabilityVisual programming languageHuman–computer interactionLearnabilityArtificial intelligenceDomain (mathematical analysis)Programming by demonstrationSoftware engineeringMachine learningMultimediaProgramming languageRobotMathematical analysisMathematicsSpreadsheets and End-User ComputingTeaching and Learning ProgrammingEducational Games and Gamification