People studying computer sciences and particularly the art of building algorithms have to understand a lot of techniques : what kinds of instructions are available, what they really do, what kinds of objects these algorithms can handle, how they really look like, what kinds of links exist between software architecture and classes in object oriented programming, what happens during processing of algorithms. Beside theoretical lectures, it is very useful to have practical tools to show these different aspects, to have breaks within the lectures to keep the student's attention, and to let them study it later by themselves. From the researcher's point of view, it is very useful to follow the behaviour of students while they are studying, to adapt the behaviour of the teaching system to each student, to study how virtual peadagogues may help.
Heir to my first software of animation of algorithms AnimAl, ActiveTutor has only two common points with the old tool: it is also a software intended to help a teacher of techniques of programming and it is able simultaneously to present the texts of the examined algorithms and the evolution of the structures of data which they manage in memory.
As one can see it on the first capture of screen, Activetutor can function in mode "projection" in which appear the examined algorithms, the workspaces of the algorithms in the course of animation. There should be a real teacher explaining the main points and discussing what happens during simulation, step by step. The position where objects appear is decided by the teaching system, but naturally, the teacher may move, resize or hide windows as he may navigate among the available algorithms.
This image shows a piece of algorithm managing a linked list of objects, in assisted mode, with a conversational agent appearing on the right of the screen, a synthetical window presenting the whole list in a didactic way, and a popup explaining the role of the assignment instruction, this popup having appeared because of a long parking of the mouse on one of the lines comprising an assignment...
If the agents decide to make speak the conversational agent, it will use a TTS (Text to Speech Engine) to enounce the sentences to be told...
Although the objects are placed in an automatic way at the place which the agents of placement estimate the best suitable one with each object according to its importance and of its role at every moment, it is of course possible to move or resize them freely, but each action of the user is recorded to improve the pedagogical behaviour of the whole system. The orders suggested by the menus allow in particular:
- to change grammar used to express the algorithms,
- to charge a new algorithm or a scenario (set of small algorithms composing an application),
- to launch or stop animation,
- to see in the main window the algorithms already charged (in the course of animation, the algorithm where the wire of the execution is located is automatically shown and the textual explanations follow it),
- to modify the language employed for the menus, textual or oral explanations (French or English are installed basic, but it is easy to add any European language),
- to modify the aspect of the algorithms presented (font style or size),
- finally to rock between the three operating modes (projection, student, assisted student).
It also can, in a context of course, help the teacher in mode "projection", without agent nor textual explanations since the professor is supposed to be present to explain and answer the possible questions.
The last capture of screen shows an algorithm implementing the use of classes with heritage to illustrate the operation of a particular implementation of linked lists.
Among the concepts which can be based on this presentation, in addition to the lists, the mechanisms of pointing and unreferencing are differentiated by drawings from different colors (pointer in red, references in blue), which makes it possible to adapt to the programming languages where these differences play a part, in particular in C++.
On the contrary to other existing simulation tools working with only one programming language, the grammar of the language employed is one of the data of the software, and it is possible to change some when it is wished. The preceding capture of screen was obtained with this grammar and this set of algorithms.
ActiveTutor is regularly used by students of the University of Paris-South, particularly those of the Institute od Technology in Orsay (250) and, of course, it is used by colleagues teaching about algorithms ans data structures. Every action made be the user during a session is recorded and builds a large amount of information that we intend to process, in order to collect data and adapt the behaviour of the agents which are responsible of how things should be shown and what should be told to the user of the next generation. Among constant improvements of the whole system, we intend to do some data mining on these statistics and to improve the rules that our pedagogical agents are using.
J-P Fournier 2005. ActiveTutor . The 5th IEEE International Conference on Advanced Learning Technologies, Kaohsiung (Taïwan), 5-8 juillet 2005, pp. 113-115
J-P Fournier, Jean-Paul Sansonnet 2005. ActiveTutor: embedding Rational Conversational Agents into an active tutorial tool. Proceedings of the fifth International Conference on Human System Learning, Marrakech (Maroc), 22-25 novembre 2005, pp. 137-151.
J-P. Fournier, J-P. Sansonnet, ActiveTutor : Intégration d’agents rationnels avec un agent conversationnel animé dans un outil tutoriel actif, Workshop WACA'01, Grenoble, 13-14 june 2005