Author: Davide Ciulla
Academic Year: 2021/2022
Defense Date: 15 September 2022
Institution: Università della Svizzera italiana
Faculty: Faculty of Informatics
Program: Master of Science in Software & Data Engineering

Author: Davide Ciulla
Academic Year: 2021/2022
Defense Date: 15 September 2022
Institution: Università della Svizzera italiana
Faculty: Faculty of Informatics
Program: Master of Science in Software & Data Engineering
As technology advances, new means that support learning emerge. In particular, as the internet rose, programmers were granted access to an astounding amount of online resources. Among such resources, video tutorials have emerged as one of the most popular ways developers learn new concepts and technologies, and their popularity is rooted in their asynchronous and procedural nature based on detailed, step-by-step experiences. Recently, research has proposed interactive video tutorials, which consist not only of audio and video streams, but also streams of interaction data recorded from the IDE - e.g., mouse events, keyboard events - and re-playable in the IDE itself. This feature allows the programmer watching a tutorial to pause it, inspect the status of the IDE, and experiment with the code. While classic video tutorials are a rather passive experience, with interactive tutorials developers are allowed to take a more active role and experiment at any moment they need.
However, despite allowing some form of experimentation, interactive video tutorials are far from perfect: At their core, they still present a linear learning process which does not provide the watcher any form of feedback, e.g., to validate the progress, and more importantly to obtain dedicated explanations in case of errors or misconceptions. This engineering thesis extends an existing prototype for interactive video tutorials in Visual Studio Code to introduce branching scenarios. First, we modified the original prototype to enrich tutorials with feedback points, where the watcher is required to answer simple questions, and to branch into different paths depending on the result of these sections. These questions are shown to the user within a custom user interface, which also features a dedicated timeline, allowing the user to quick navigate between the different paths, i.e., on the main branch or on explanation branches. The latter are dedicated to solve misconceptions, provide additional details and examples, and in general to offer a more personalized learning path.
Second, we developed an authoring system to allow instructors to easily create interactive branching tutorials out of the box. The authoring system is integrated in Visual Studio Code and allows the instructor to record the main branch and explanation branches, and to specify the feedback points for the tutorial in form of single-choice and multiple-choice quizzes. As performing a full-fledged evaluation of our approach would require a long and complex user study, we performed some preliminary tasks towards that end. In particular, we analyzed a set of screencasts from a competing platform called Scrimba, which features interactive tutorials but without feedback points and branching, identifying challenges provided from the instructor to the watcher that are candidates for possible feedback points. We classified these challenges and provided simple guidelines to convert them into feedback points to construct tutorials that can be used to compare our approach with the one of Scrimba.


Università della Svizzera italiana, Switzerland