Y. Watanobe, L. Gu, R. Yoshioka, N. Mirenkov

The University of Aizu (JAPAN)
Programming in pictures is an approach where pictures and moving pictures are used as super-characters for representing features of computational algorithms. Within this approach some “multidimensional data spaces” are traversed by “fronts of computation” and necessary operations are performed during these traversal processes. Generic pictures of the algorithmic super-characters are used to compose compound pictures defining algorithmic steps. The generic and compound pictures are developed and acquired in special libraries (galleries) of an open type where supportive pictures of embedded clarity annotations are also included. In this paper, we consider examples of pictures from the above mentioned galleries and present a program in pictures for the sparse matrix-vector multiplications. Through this example we show how these pictures can be used for teaching courses on algorithms and on programming in conventional languages.
Programming languages are good for computers, but they are not so good for people. Learning to program is a difficult process for beginners and developing software systems is a very challenging activity for experienced professionals. One of attempts to find a new way for programming is applying diagrams/pictures and special human-computer interfaces. Another is approaches related to analogical representations of programs, self-assembling tiling, and a variety of techniques where the concept of putting human needs first is applied.
In our programming in pictures generic pictures of the algorithmic super-characters are used to compose compound pictures (called Algorithmic CyberFrames) defining algorithmic steps. Compound pictures are assembled into special series to represent some predefined algorithmic features. A number of the series is assembled into Algorithmic CyberScenes and an Algorithmic CyberFilm. In this approach, the end user usually does not create new pictures (generic super-symbols and Algorithmic CyberScenes icons) by himself, but do get them from existing galleries to create new compound pictures and/or to edit the available pictures according to some rules allowed by the programming environment.
There are four types of CyberFrame series to represent 1) algorithmic skeletons that show dynamical features of algorithms, 2) variables and formulas that are attached to the space-time points of the algorithmic skeletons, 3) input/output operations that define the algorithmic interface with external world, and finally 4) a compact combination (an integrated view) of main features presented in the above mentioned groups of frames. For each series of frames there is its own visual language. As a result, algorithms are specified by four different views with their own sets of pictures (super-characters). One aspect simplifying an algorithm understanding is these multiple views. Another aspect is that each picture has an intuitively understandable semantics or a set of embedded clarity annotations which can be used on demand. Template programs in C++ implementing algorithmic skeleton views are a part of such annotations.
Filmification of methods has been applied to a large variety of algorithms. In this paper we consider a new algorithm to show applicability of our approach once more and how it can be useful for explaining algorithmic features in pictures and for presenting these features in C++.