Abstract
Visual programming languages (VPLs) are inevitable tools to attract more people to the programming world. In this article, a novel VPL—programming without coding technology (PWCT)—is introduced. The main objective behind developing this tool was to create a general-purpose VPL that also possesses textual languages’ capabilities. PWCT is a language that can be used to develop similar programs to the ones developed in C++ or Java for example. As the name indicates, PWCT requires no coding at all. A person only needs to know the basic programming concepts to be able to use the tool. PWCT has many attractive features and can be used to develop applications of different domain including pervasive computing. PWCT has been launched as a Sourceforge project, which currently has more than 240 K downloads for the tool and over 22 M downloads for the samples and tutorials. A staggering number of programs were developed in PWCT all over the world. This article focuses on the core aspect of the tool. In addition, a number of studies are carried out to evaluate the usability and productivity of the tool. Feedback from developers and results from the studies indicate that PWCT is a very appealing, competitive, and powerful language that can be used in developing pervasive and mobile computing applications.
Similar content being viewed by others
References
Ponce-Cruz, P, Ramírez-Figueroa, F. D.: Intelligent control systems with LabVIEWTM. Springer Science & Business Media, Germany (2009)
Garrett, J., Walker, T.: Student attitudes towards the use of graphical programming languages in an introductory engineering course. Comput. Educ. J. 19(01), 60–69 (2009)
Bresson, J., Agon, C., Assayag, G.: Visual lisp/clos programming in openmusic. Higher Order Symb. Comput. 22(1), 81–111 (2009)
Kafai, Y.B., Quinn B.: Computational participation: teaching kids to create and connect through code. In: Emerging research, practice, and policy on computational thinking. pp. 393–405. Springer, Cham (2017)
Resnick, M., John, M., Monroy-Hernández, A., Natalie, R., Evelyn, E., Karen, B., Amon, M., et al.: Scratch: programming for all. Commun. ACM 52(11), 60–67 (2009)
Pala, F.K., Pınar, M.T.: The effects of different programming trainings on the computational thinking skills. Interact. Learn. Environ. 5, 1–11 (2019)
Coronado, E., Fulvio, M., Bipin, I., Gentiane, V.: Visual programming environments for end-user development of intelligent and social robots, a systematic review. J. Comput. Lang. 58, 100970 (2020)
Corral, J.M.R., Iván, R.R., Antón, C.B., José, M.M.M., Arturo, M.E., Juan, M.D.: A study on the suitability of visual languages for non-expert robot programmers. IEEE Access 7, 17535–17550 (2019)
Shim, H., Paul A.: A customizable approach to visual programming using dynamic multimodeling. In: enabling technologies for simulation science VIII, vol. 5423, pp. 447–456. International Society for Optics and Photonics (2004)
Schulze, C.: Text in diagrams: challenges to and opportunities of automatic layout. PhD diss. (2019)
Johnsgard, K., James M.: Using Alice in overview courses to improve success rates in programming I. In: 2008 21st Conference on Software Engineering Education and Training. pp. 129–136. IEEE (2008)
Kalelioğlu, F.: A new way of teaching programming skills to K-12 students: Code. org. Comput. Hum. Behav. 52, 200–210 (2015)
Wang, T.C., Wen-Hui M., Shu-Ling L., Sheng-Kuang C., Janet Mei-Chuen L.: Teaching programming concepts to high school students with alice. In: 2009 39th IEEE Frontiers in Education Conference. pp. 1–6. IEEE (2009)
Tangney, B., Oldham, E., Conneely, C., Barrett, S., Lawlor, J.: Pedagogy and processes for a computer programming outreach workshop—the bridge to college model. IEEE Trans. Educ. 53(1), 53–60 (2009)
Garner, S.: Learning to program from Scratch. In: 2009 Ninth IEEE International Conference on Advanced Learning Technologies. pp. 451–452. IEEE (2009)
Kaučič, B., Asič T.: Improving introductory programming with Scratch? In: 2011 Proceedings of the 34th International Convention MIPRO. pp. 1095–1100. IEEE (2011)
MacLaurin, M.B.: The design of Kodu: a tiny visual programming language for children on the Xbox 360. In: Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages. pp. 241–246 (2011)
Stolee, K.T.: Kodu language and grammar specification. Microsoft Research whitepaper, Retrieved September 1, 4–6 (2010)
Longflow, Limnor Tutorial https://www.limnor.com/. Longflow Enterprises Ltd. (2003)
Japikse, P., Kevin G., Ben D.: Complete the web application with ASP. NET Core. In: Building web applications with. NET Core 2.1 and JavaScript. pp. 317–374. Apress, Berkeley, CA (2020)
Cebeci, Z., Erdogan, Y.: Tree view editing learning object metadata. Interdiscip. J. E-Learn. Learn. Obj. 1(1), 99–108 (2005)
Szyperski, C., Dominik, G., Stephan, M.: Component software: beyond object-oriented programming. Pearson Education, UK (2002)
Vitharana, P.: Risks and challenges of component-based software development. Commun. ACM 46(8), 67–72 (2003)
Crnkovic, I., Larsson, M.: Challenges of component-based development. J. Syst. Softw. 61(3), 201–212 (2002)
Wikipedia https://en.wikipedia.org/wiki/Middleware. Accessed 24 May 2020
Proebsting, T.A., Gregg M.T., Patrick G.B., John H.H., Tim N., Scott A.W.: Toba: Java for applications—a way ahead of time (WAT) compiler. In: COOTS. pp. 41–54 (1997)
Marat B., Michael D.: Visual programming languages: a survery, Report No. UCB/CSD-04-1368 Computer Science Division, EECS University of California, Berkeley Berkeley, CA 94720-1776 USA, December (2014)
Maragaret M.B.: Visual programming, encyclopedia of electrical and electronics engineering (1999)
Begel, A.: LogoBlocks: a graphical programming language for interacting with the world. MIT Media Lab, Cambridge (1996)
https://en.wikipedia.org/wiki/Deutsch_limit. Last Accessed 26 Mar 2016
Imran, M., Alnuem, M.A., Fayed, M.S., Alamri, A.: Localized algorithm for segregation of critical/non-critical nodes in mobile ad hoc and sensor networks. Procedia. Comput. Sci. 19, 1167–1172 (2013)
Alnuem, M., Nazir, A.Z., Muhammad, I., Sana, U., Mahmoud, F.: Formal specification and validation of a localized algorithm for segregation of critical/noncritical nodes in MAHSNs. Intern. J. Distribut. Sensor Netw. 10(6), 140973 (2014)
Goumopoulos, C., Mavrommati, I.: A framework for pervasive computing applications based on smart objects and end user development. J. Syst. Softw. 162, 110496 (2020)
Gollagi, S.G., Math, M.M., Daptardar, A.A.: A survey on pervasive computing over context-aware system. CCF Trans. Pervasive Comp. Interact. (2020). https://doi.org/10.1007/s42486-020-00030-6
Fayed, M.S., Muhammad A.Q., Atif A., Ahmad A.A.D.: PWCT: visual language for IoT and cloud computing applications and systems. In: Proceedings of the Second International Conference on Internet of things, Data and Cloud Computing, pp. 1–5 (2017)
Acknowledgements
The authors thank members of PWCT project teams for the time devoted for this study.
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Conflict of interest
The authors declare no conflict of interest in this manuscript.
Electronic supplementary material
Below is the link to the electronic supplementary material.
Rights and permissions
About this article
Cite this article
Fayed, M.S., Al-Qurishi, M., Alamri, A. et al. PWCT: a novel general-purpose visual programming language in support of pervasive application development. CCF Trans. Pervasive Comp. Interact. 2, 164–177 (2020). https://doi.org/10.1007/s42486-020-00038-y
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s42486-020-00038-y