FLOW CHART INTERPRETER - an environment for software animation representation Galina Atanasova, Plamenka Hristova Abstract: This article discusses the algorithms as basic precondition for quality results from the computer science education. It is written out the main functions of the software visualization and animation and the benefit of their use in the education and software development. A concrete environment FLOW CHART INTERPRETER for algorithm interpretation is presented. The environment functions and the main perspective for its application are described. Key words: Informatics, Computer Systems and Technologies, Algorithms, Education, Algorithm animation, Algorithm visualization. INTRODUCTION The computer algorithms and the data structures are an important part of teaching in informatics. The final result from this teaching depends on the degree of the students are skilful at this area. The perfect programming language possession is not enough to high quality program writing. Without basic knowledge of algorithm's theory it is impossible an effective program creation. The realization with the chosen program language's means is rather easier work after the appropriate algorithm creation and consideration. This is reduced to learning a concrete language syntax and semantic. There are many algorithm representation ways. There are diferent methods to teach them. It is ascertain the fact that information, presented as chart or diagram, has better effect. It allows better orientation and possibility of extraction more clearly notions about the nature and the relations between graphical objects. This common knowledge is especially important when it is said about algorithm's description. On that reason the most computer science instructors use the graphical representation of the data structures. On this way the teachers have the opportunity to explain the working of an algorithm. It is important to tracing the changes of the data before and after the execution of each one of instructions. This changes the processing data. Therefore it seems natural to portray this process using a specialised environment. The aim is to foster creativity, motivation and high level programming concepts by providing the student an alternative route to algorithm understanding. The present article points out the algorithm describtion methods, the algorithm animation principles, the algorithm visualization and animation environments. It is presented a concrete environment for algorithm creation, visualization and debug. The environment s purpose is to foster the students and the teachers in their common work on the computer algorithms development and analysis. It could be used as auxiliary tool in the software development process in a CASE environment. ALGORITHM ANIMATION As it is pointed out above, the choice and the development of an optimal algorithm give a strong influence upon the effectiveness of a program. The aim of computer science education is to be corresponding to rapidly changing reality of the contemporary computer science [4]. Algorithm animation is a method for abstract data representation. This kind of presentation shows the program s operators, the sequence of their execution and the whole semantic of a program. In that way the user has possibility to keep track of the algorithm processing. The purpose of algorithm animation s development is to foster comprehension, estimation or program s debug. A computer program contains data structures, which values change in accordance with the executed algorithm [3]. Algorithm animation presents the data structures in
graphical way as shows the roots of the relations in the algorithm. The data changes after the execution of each one instruction of the program too. The aim is to illustrate step by step the processing and to follow the dynamic behavior of a program. Using this approach it is possible to explore the important details and as result the same to be realized better. The basic application of the algorithm animation is to foster the teachers of the computer science area in their work with different kind of algorithms. ENVIRONMETS FOR ALGORITHM VISUALIZATION AND ANIMATION The basic purpose of the algorithm visualisation and animation environments is mainly on two basic directions. The first one is to foster the software developers. In this direction the environments are used as a development tool for a concret stage of software servicing. In many cases these environments are part of integrated CASE. The most of these development systems own tools, which are used for graphical project representation. This kind of tools is known as chart editing tools. The charts can be flow charts, DFD (Data Flow Diagram) and other kind of charts for graphical representation of data and processes relationship. For chart editing tools it is typical to own the basic necessary primitives for a chart drawing. These basic primitives are available from a menu or a toolbar as set of completed blocks. User can choose this one which is most appropriate for his case and he can easy represent the data flow direction and the relationship between the different states. The training in informatics is the other main application area of the algorithm visualization and animation environments. Its usage gives a possibility for graphical representation and better analysis of computer algorithms in the educational process. There was carried out empirical research in regard to appliance of algorithm animation environments in the education area [1]. All experimental results show that hypermedia algorithm visualization was significantly more effective than traditional teaching methods. These issues indicate that for algorithm animation to be effective and beneficial to users, appropriate design and utilization of animation are important factors. These have been used as our guidelines for designing our system. For algorithm animation to be effective, the animation system should possess the following: 1. Open access: Users should be able to have open access to the animation system. That is, besides having access to the system in school, they should be able to access the system from home or anywhere else. 2. Control of animation: Users should be able to create their own data sets when using the animation system. While predefined data sets can also help students to build up initial understanding, the system should have both options. 3. Ineractivity: The animation system should provide interaction between the users and the system. Interaction includes users ability to step, undo, rewind or fast forward the animation to any desirable state. 4. History: The animation system should enable users to return and view previous states of the animation in execution. 5. Feedback: Students' feedback on using the animation system should be obtained to evaluate the effectiveness of the system as well as to improve the system.
DESCRIPTION OF FLOW CHART INTERPRETER AND ITS CHARACTERISTICS The algorithm animation representation environment FLOW CHART INTERPRETER is an application, which runs with Windows OS and its users have the following possibilities: flow chart graphical representation of the fanciful algorithm; a possibility of giving concrete values for the incoming data; automatic algorithm execution with given values of the incoming data and end result visualization; step by step algorithm execution with given values of the incoming data and end result visualization; all intermediate values of the used variables visualization; algorithm structure analysis; saving of created algorithm; saved algorithm editing. Fig. 1. General view of FLOW CHART INTERPRETER - algorithm animation representation environment The general window of the algorithm animation representation environment FLOW CHART INTERPRETER is shown on Fig.1. The application usage is easy and accessible work for everyone, who possesses the basically principles for work with applications, which are managed from MS Windows. All actions are available for users from menu. The drag & drop technology is supported too. The basically graphical primitives, which are necessary for a flow chart drawing, are available from menu or toolbar. Every graphical block has a specific implication. The shape of the block marks the algorithm actions. While the user creates a flow chart, the system checks its correctness and in case of error gives a corresponding message. The result from operations execution is shown on the monitor. User has possibility to choose between two alternative cases. The first one is directly result display from execution of the presented algorithm. The other
one is animated representation of the block's circulation and execution of the written operators. The middle results and end-values of the variables have been displayed. On the figure 2 are shown the functions, available for users by working with FLOW CHART INTERPRETER. As it is pointed above, interpretation of the visualizated flow chart could be done on two alternative ways - automaticaly and manualy. If a user chooses automaticaly interpretation, he must enter the initial values of the algorithm's variables. The result from execution of the presented algorithm has been directly shown in separated window. (figure 3) User alone manages the algorithm execution process in case that his choice is manually interpretation. He gives the initial values of the variables and manually provokes the execution of the next algorithm operator. Fig. 2. Functional chart of FLOW CHART INTERPRETER environment The keys, connected with the presented flow chart interpretation, are available from a specified toolbar. The keys are two. On the first one it is presented a graphical primitive, which corresponds to the process of the automatically trace beginning. This function is available by the follow two ways too: the first one is choice of the command Atomically from a menu's Run submenu. The other way is by pressing the key F9 from the functional keyboard. Pointing out the relevant command from menu Run or Ctrl+F9 keys could start the process of sequential block visiting. The above mentioned button from the toolbar is related with the passing from current chart block to the next one. The analog action is available by key F8 pressing or Step Over command choice from menu Run. The key pair Ctrl+F9 or command Program Reset from menu Run can stop the trace processing if user want this. The main principles for work with Flow Chart Interpreter are famous and many used in most of the software development or visualization environments.
The interpretation processing includes the sequence from the following actions[2]: determination which block from the flow chart is this one which is liable to analysis; syntax analysis of the logical expression from the analyzed block and relevant message display in case of error detection; analysis all possible outs of current block and determination the next one. Application raises error message dialog in case there is an incorrectly used block. This usage may cause mistake in the process of the flow chart interpretation; analysis of the logical statement and its transformation from infix to suffix form; calculation of the converted expresion; instruction identifying in accordance with the block form; instruction execution with data, received from logical expression calculation. The actions, described above, are important for the correctly execution of the presented algorithm. Through their appliance the flow chart interpretion is realizable and they the essence of this processing. Fig.3. General view of FLOWCHART INTERPRETER environment after an algorithm animated execution
CONCLUSION AND FUTURE WORK The usage of FLOW CHART INTERPRETER in education redounds to knowledge extension of the future computer specialists, who will write programs and will take care the result from their work to be effective with optimal processing. The appliance of such environment for algorithm animation and visualization in courses in informatics will foster students' motivation and their possibilities to understand and create own optimal algorithms. In that way the effectiveness from present education in computer science will significantly grow up. The environment for animated algorithm representation FLOW CHART INTERPRETER is a step forward in the attempt to make education more modern and explicit. New two modules development is forthcoming. The one of them would realize some prepared algorithms. This may be used in primary courses. This module would present by flow charts basically data structure algorithms. Students would follow the every algorithm execution on the monitor using concrete data. The second one would realize the user's feedback. It would suggest a method for assessment the stage of correctness and effectiveness of their own algorithm. REFERENCES [1] John T. Stasko, John B. Domingue, Marc H. Brown und Blaine A. Price, Software Visualization. 1998. MIT Press, Cambridge, Massachusetts. [2] Бърнев, П., Павел Азълов, Алгоритми, Народна просвета, София, 1978 [3] Вирт, Н., Алгоритми + Структури от данни = Програми, София, Техника 1980 [4] Наков, П., Добриков, Програми = ++Алгоритми, София, Тор Team Co., 2002 ABOUT THE AUTHORS Plamenka Todorova Hristova, Department of Informatics and Information Technologies, University of Rousse, Phone: +359 82 888 470, E-mail: pamela@ami.ru.acad.bg Galina Eugenieva Atanasova, Department of Informatics and Information Technologies, University of Rousse, Phone: +359 82 888 470, E-mail: gea@ami.ru.acad.bg