OCR
160 14 ALGORYTHMICS: PAST, PRESENT, AND FUTURE application continues to guide and support them in creating the code of the algorithm. The "dance floor" we created is an interactive and intuitive user interface which helps in initiating learners into computer algorithms. The "choreographer" (teacher) can predefine courses (sequences of various learning steps) in a dynamic way which also involves the specification of the level of the user interaction. Ifa “dancer” (user) catches the rhythm of it, he/she will easily go through it, resulting in the acquisition of the algorithmic knowledge. In the meantime, a mirror is turned towards the user, which helps monitoring his/her personal evolution. The generated log files constitute a valuable database for educational research. Learning steps can be considered the atomic elements. These constitute that new dimension through which we can get from the dance to the code. We have defined five basic ones. — Video. The algorithms are illustrated by dance choreographies. Users can choose to simply watch the video or be actively involved in the visualization (by indicating the next operation every time when the video stops at predetermined moments). — Animation. Watching the abstract animation of the algorithm might be an important step from the dance to the code. A similar interactivity is available as in the case of the previous learning step. In addition, the animations can be played for several inputs (teacher, random, best case, and worst case) stored in white or black arrays. — In control. Taking the user experience to a new level, we give the control to the user. Using the already gained knowledge about a selected algorithm, the user has the possibility to manually play the whole algorithm. — Create code. During this learning step, the enhanced animation of the algorithm is played three times. The first play attaches sound effects to the animation in order to help students in selecting the proper loop structure for the code (in the case of iterative implementations). The second and third plays support students in completing the partial code of the algorithm. — The code comes alive. Summarizing all the previous elements, the user can pay attention to the result of his/her work. The synchronized animation is played parallel with the step-by-step execution of the code (the relevant code lines are highlighted). Courses constitute the main concept of the learning environment. Their role is to help users understand the algorithms and to support educational research. As described above, the involved learning steps can be differentiated by their input, display, and playback type. Different combinations of learning steps of many variations create different courses. These can be defined dynamically by the administrators or teachers.