[论文解读] TaskTracker-tool: a Toolkit for Tracking of Code Snapshots and Activity Data During Solution of Programming Tasks
本文介绍了 TaskTracker-tool 工具包,该工具包用于在基于 IntelliJ 的 IDE 中收集和分析编程任务求解过程中的代码快照和 IDE 交互数据。它支持对多种编程语言(Python、Java、Kotlin、C++)的学生活动进行细粒度追踪,支持服务端数据聚合,并包含用于分析的后处理工具。其主要贡献是一个公开的 148 名参与者的解决方案过程数据集,可为编程行为、错误模式和学习动态提供深入洞察。
The process of writing code and use of features in an integrated development environment (IDE) is a fruitful source of data in computing education research. Existing studies use records of students' actions in the IDE, consecutive code snapshots, compilation events, and others, to gain deep insight into the process of student programming. In this paper, we present a set of tools for collecting and processing data of student activity during problem-solving. The first tool is a plugin for IntelliJ-based IDEs (PyCharm, IntelliJ IDEA, CLion). By capturing snapshots of code and IDE interaction data, it allows to analyze the process of writing code in different languages -- Python, Java, Kotlin, and C++. The second tool is designed for the post-processing of data collected by the plugin and is capable of basic analysis and visualization. To validate and showcase the toolkit, we present a dataset collected by our tools. It consists of records of activity and IDE interaction events during solution of programming tasks by 148 participants of different ages and levels of programming experience. We propose several directions for further exploration of the dataset.
研究动机与目标
- 为解决教育环境中缺乏全面、多语言工具来捕捉编程任务求解过程中详细活动的问题。
- 使研究人员和教育工作者能够研究学生解决问题的完整过程,包括代码演化和 IDE 交互,涵盖多种编程语言。
- 提供一个灵活可扩展的工具包,支持数据收集、远程存储和基础分析,同时不干扰自然的编程环境。
- 生成一个公开的、高保真度的学生编程行为数据集,以支持计算教育领域的未来研究。
- 支持基于真实学生解决方案模式的个性化学习干预措施(如上下文感知提示)的开发。
提出的方法
- 为基于 IntelliJ 的 IDE(如 PyCharm、IntelliJ IDEA)开发的插件,可实时捕获顺序代码快照和低级别 IDE 交互事件(如输入、运行、重构)。
- 插件将数据发送至远程服务器进行集中存储和管理,确保数据完整性和可扩展性。
- 专门设计的后处理工具支持基本分析,如得分动态、操作频率和代码变更模式,并提供可视化支持。
- 该工具包支持按任务上下文进行追踪,保留操作与特定编程问题之间的关联。
- 系统设计为可扩展,具备插件、服务器和分析工具的模块化组件,可针对不同研究需求进行定制。
- 数据集来自 148 名参与者,涵盖不同年龄和经验水平,在标准化编程任务求解过程中记录了活动数据。
实验结果
研究问题
- RQ1学生在不同编程语言和经验水平下的编码模式与 IDE 交互行为有何差异?
- RQ2编程任务中的常见错误模式和解决方案轨迹是什么?它们如何随学生经验水平而变化?
- RQ3学生在获得正确解法后如何修改其代码?重构过程中哪些操作最为频繁?
- RQ4代码变更动态和得分演化能否用于推断学生的意图和问题解决策略?
- RQ5解决方案过程数据在多大程度上可用于实时生成个性化提示或反馈?
主要发现
- 数据集显示,学生经常从先前的解决方案中粘贴大段代码,表明其依赖于已有工作或存在复制粘贴模式。
- 许多学生在开发过程中频繁运行代码,表明其倾向于早期且频繁地验证不完整代码。
- 大量学生通过粘贴输入和输出内容进行逐字符对比,将 IDE 用作差异比较工具。
- 解决方案过程可划分为三个明显阶段:初始实现、修正和重构,这由得分和代码变更动态所揭示。
- 在解决方案后存在显著的活动空白期:学生在获得正确得分后仍频繁进行代码重构,表明其关注点不仅限于正确性,还延伸至代码质量。
- 年龄和经验水平与特征使用模式和错误类型存在显著关联,表明编程行为存在可识别的发展轨迹。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。