5.2 Debugging Facilities
Although visual programming systems are mostly
targeted in learning where error resolution is crucial,
visual debugging remains an underexplored
territory. Such facilities should operate in alignment
with the underlying language paradigm and the
visual metaphor and layout, with program tracing
working at the level of visual program units. For
example, the block-level debugger for Blockly
presented in (Savidis & Savaki, 2019) offers block-
level tracing, with step commands operating
syntactically at the level of distinct blocks. Finally,
advanced features useful in learning may include:
reverse execution and why lines (Myers et al., 2017).
5.3 Programming Assistants
Such tools are known as wizards and may guide
learners in the process of visual coding. Their design
should match the visual metaphor, but semantically
they are more coupled with the underlying language
paradigm. Thus, general-purpose tools may be
developed working with editors of the same
underlying programming model. Interactively, they
may include coding templates, Q&A sessions,
recommendations and procedural guidance (how-to).
Syntax-directed editors (Agapakis, 2021) with
descriptive tooltips and semantic help may also play
a role similar to live coding assistants.
5.4 Custom Static Analysers
Since the programs in a learning context are
typically small, such analysers should emphasize
improvements and educational recommendations.
For example, an analyser may suggest equivalent but
simplified loop versions, propose the conversion of a
code fragment to a function, or offer an alternative
more readable and clean way to write a particular
logical or arithmetic expression.
6 CONCLUSIONS
Visual programming systems are currently the
primary instruments for the early teaching of basic
programming skills, while they are increasingly
deployed in various domains for rapid development
by non-professional programmers. Compared to
tools for professional programming, there are many
functionality layers and features that can be
introduced to improve the programming experience
and better support the overall learning process.
In this paper, we presented a brief but systematic
account of key design requirements for future visual
development systems, relying on the new notion of
programming experience, while having a primary
learning orientation. Overall, we believe that such
requirements can be more effectively addressed
separately, by cooperating tools, within open and
extensible future visual development environments.
REFERENCES
Agapakis, Ε. (2021). Code-Chips: Interactive Syntax in
Visual Programming. Master Thesis, CSD, University
of Crete, DOI: 10.13140/RG.2.2.28297.72801
Ball, T., Protzenko, J., Bishop, J., Moskal, M., Halleux, J.,
Braun, M., Hodges, S., Riley, C. (2016). Microsoft
touch develop and the BBC micro: bit. In proceedings
of ICSE 2016 (Companion), ACM, 637-640
E. Pasternak, R. Fenichel and A. N. Marshall (2017). Tips
for creating a block language with blockly. IEEE 2017
Blocks and Beyond Workshop, 21-24.
Kiper, J., Howard, E., Ames, C. (1997). Criteria for
Evaluation of Visual Programming Languages. IN
Elsevier Journal of Visual Languages & Computing,
Volume 8, Issue 2, 175-192.
Ko, R., Lee, S., Lee, E. (2009). Business Process
Management (BPM) Standards: A Survey. In Business
Process Management Journal, Emerald Group
Publishing Limited. Volume 15 Issue 5.
Law, E., Roto, V., Hassenzahl, M., Vermeeren, A., Kort,
J. (2009. Understanding, Scoping and Defining User
Experience: A Survey Approach. Proceedings of
CHI’09 Conference on Human Factors in Computing
Systems. Boston, MA (4–9 April), ACM, 719–728
Maloney, J, Resnick, M., Rusk, N., Silverman, B.,
Eastmond, E. (2010). The scratch programming
language and environment. ACM Transactions on
Computing Education (TOCE) 10.4, 1-15
MacLaurin, M. (2011). The design of kodu: a tiny visual
programming language for children on the Xbox 360.
SIGPLAN Notices, 46(1), ACM, 241–246
McGuffin, M., Fuhrman, C. (2020). Categories and
Completeness of Visual Programming and Direct
Manipulation. AVI 2020 (September 2020), ACM,
Article No 7, 1–8
Morisson, J. P. (1994). Flow-based Programming: A New
Approach to Application Development, Van Nostrand
Reinhold.
Myers, B., Ko, A., Scaffidi, C., Oney, S., Yoon, Y.,
Chang, L. S-P., Kery, M.B., Jia-Jun, T. (2017).
Making End User Development More Natural. New
Perspectives in End-User Development 2017: 1-22
Myers, Brad. (1990). Taxonomies of visual programming
and program visualization. Journal of Visual
Languages & Computing 1.1 (1990), 97-123.
OpenJS Foundation. (2022). Node-RED: Low-code
programming for event-driven applications.