Mapping aids using output-directed programming increase novices’ performance in programming mobile robotic systems - Witte, Thomas; Vogt, Andrea; Seufert, Tina; Tichy, Matthias (Empirical software engineering : an international journal, 2026)
Context: Novices programming robotic systems’ behavior, like quadcopter missions, face several challenges and require adequate support to overcome initial barriers. One approach to support novices is to display multiple representations such as graphical previews along with the code editor. Such supportive representations, however, also pose challenges for novices: finding corresponding information in the code and in the preview. To facilitate this, mapping aids can be implemented to clarify the connections between code and preview and foster a deeper understanding. Using output-directed programming, that is, adding the ability to reverse expression evaluation in the domain-specific language, is a promising basis for easily creating and implementing mapping aids. Objective: We investigated, whether mapping aids based on output-directed programming can improve learning language semantics and overall program correctness and how these mapping aids support novices while implementing quadcopter missions. Method: In our study, we tested participants while interacting and learning in an online programming environment. Using our 2x2 between-subject design study, we investigated the effects of two mapping aids: highlighting (supports to find element-based connections in the environment) and dynamic linking (supports finding similarities on the semantic level of the content) on program correctness including a typical error, learning outcomes as well as traces of learning strategies. Results: While highlights were more helpful for implementing the quadcopter missions (mission 1: **, ), dynamic linking improved learning outcomes on the comprehension ( , *, ) and application level ( , *, ). Traces of learning strategies were related to higher program correctness (organizing (changes in the preview)): , ***; elaborating (time engaging in the task)): ***) and higher learning outcomes (organizing: , ***; elaborating : , ***). Conclusions: Implementing mapping aids through output-directed programming supports novices in developing a better semantic understanding of the domain specific language. Depending on the program tasks, different mapping aids might be effective. Based on traces of learning strategies while programming, adaptive interactive programming environments might support users individually.