## 3 Technological Resources: DARA and Emolive
### DARA in Learning Greedy Algorithms with Augmented Reality  
The greedy design technique solves optimization problems in stages. At each stage, a candidate (an element available or calculable from the problem's input data) is chosen and incorporated into the solution, with no subsequent reversal of the choice. This strategy can be expressed in a high-level schema with several functions: selection of the next candidate, solution feasibility, objective function, etc. Although the greedy schema is simple, its application to specific problems is not obvious [30]. In some cases, the functions that define the greedy schema may be implemented differently, may not be necessary, or may even be merged. This high variability usually is not explained [31] and makes it difficult for students to understand and apply the greedy technique.  
DARA is an AR educational application designed to facilitate learning the well-known [PERSON]'s greedy algorithm [32]. In addition to its emotional impact, the effectiveness of DARA in supporting knowledge acquisition has been evaluated in previous studies, showing improvements in student understanding and learning outcomes [33], particularly in relation to [PERSON]'s algorithm, which solves the problem of calculating the shortest paths from one node to the other nodes in a weighted graph. It uses a smartphone camera to capture code fragments, onto which it overlays visualizations and textual explanations. Screenshots of these augmented visualizations and DARA's interface are provided in Supplementary Material S2. Some interface elements are in Spanish, as the app was originally developed in that language.  
A student uses DARA as follows. Initially, they read the problem statement and an explanation of the greedy schema. In the second phase, the smartphone camera is activated, and the student focuses on the Java source code for [PERSON]'s algorithm from the book [30] (either on paper or digitally captured). This phase of the application uses AR. The contextual explanations appear over the detected code (Figure 1b). On the other hand, if the camera captures the code fragment corresponding to the declaration of the graph as an adjacency matrix, a 3D visualization of the graph is generated (Figure 1a). These explanations help the student to interpret the different parts of the source code and relate them to the elements that make up the greedy schema. The student can move through the code and receive augmented feedback in real time.  
Finally, the student can activate the third phase of the application, which displays a 2D interactive animation of the algorithm. This animation shows a table with the main variables of the algorithm implemented in Java, where the edges and nodes selected by the algorithm can be consulted. It is possible to move forward or backward through the execution to observe the evolution of the variables.  
In summary, augmented reality is implemented in DARA through virtual overlays that display contextual explanations and 3D visualizations of the algorithm via a smartphone camera. Its non-immersive nature and compatibility with mobile devices facilitate its integration into educational environments without requiring additional equipment.