TRAKLA2 in a Nutshell
TRAKLA2 is an automatic exercise system for learning data structures and algorithms. It is based on Matrix algorithm simulation framework written in Java programming language. The system supports automatically assessed visual algorithm simulation exercises that are intended to be accompanied with other study material such as lectures, lecturer's notes, text book, tutorials, etc. Thus, this is more like a practising environment even though we call it a learning environment.
Algorithm simulation exercises have the following features:
- The student manipulates conceptual views of data structures simulating actions a real algorithm would perform.
- All manipulation is carried out in terms of graphical user interface operations.
- The system records the sequence of actions prepared by the student and allows to submit* them to the server.
- The server* compares the submitted sequence to a sequence generated by the real implemented algorithm and provides feedback about the comparison (*there is also a version available that do not need the server connection).
- The initial data for each exercise is personally tailored for each student and trial.
- The evaluation of the submitted answer is based on comparing the sequences of the states of data structures to those produced by running an actual algorithm.
- The student can request grading of the solution unlimited number of times. However, after each grading action, the student cannot continue solving the exercise with the same data. Instead, the exercise is re-initialized with new random data.
- The student can always request the model solution for the personally tailored exercise. The solution is presented as an algorithm animation that the student can browse backwards and forwards freely. However, as with grading, the student has to reset the exercise and start with fresh random initial data before he/she can resubmit the solution again.
- The systems logs some information about the user interface actions for statistical analysis. We do not monitor individual students, but e.g. a whole course to see trends how the system is employed. The data logging aids us to improve the system, tune individual exercises, and better understand how students are learning.
Remark: Not all exercises (useful in data structures and algorithms course) can be assessed autoamatically with this kind of system. For example, many courses that have adopted TRAKLA2 exercises still have class room exercises in which the focus is on, e.g., algorithm analysis, writing new algorithms (pseudocode), and comparing algorithms with each other. However, exercises that are suitable for TRAKLA2 are typically such that they are not so meaningful in paper and pen due to the fact that tracing an algorithm requires keeping track of a number of things. Especially in data structures and algorithms, this requires keeping track of the states of complex data structures. Thus, in TRAKLA2 exercises, the student can better focus on the content, and not on drawing the same figure again and again with minor changes. See the video for more details.
The user interface of TRAKLA2 is a Java applet that is tailored to each exercise separately. The applet includes visualizations of data structures needed in the exercise, push buttons for requesting Reset, Grade and Model solution for the exercise, as well as buttons for browsing one's own solution backwards and forwards. Simulation is carried by drag-and-dropping data items or references from one position to another. Some exercises also include additional push buttons to perform exercise specific operations such as rotations in trees.
Current selection of exercises include operations on binary trees, heaps, sorting algorithms, various dictionaries, hashing methods, and graph algorithms. You can freely access the TRAKLA2 exercise package and try them out. These applets do not log any information nor connect to the sever, but you can still solve the exercises and get feedback on your performance. Or, you can create a test account and try out the full learning environment that establishes also the server connection. The server keeps track of your performance, i.e., which exercises you have solved, how many points you have received, etc. You can also watch the video tutorial to learn more.
"Everything should be made as simple as possible, but not simpler."
- Albert Einstein