Skip to main content
QUICK REVIEW

[論文レビュー] TaskTracker-tool: a Toolkit for Tracking of Code Snapshots and Activity Data During Solution of Programming Tasks

Elena Lyulina, Anastasiia Birillo|arXiv (Cornell University)|Dec 9, 2020
Teaching and Learning Programming参考文献 21被引用数 4
ひとこと要約

本論文では、IntelliJベースのIDEでプログラミング課題を解く際のコードスナップショットおよびIDEインタラクションデータの収集・分析を可能にするTaskTracker-toolというツールキットを提示する。このツールキットは、複数の言語(Python、Java、Kotlin、C++)における学生の活動を細かく追跡でき、サーバー側でのデータ集約をサポートし、分析のための後処理ツールを備えている。主な貢献は、148名の参加者による解決プロセスの公開データセットを提供することであり、これによりプログラミング行動、エラーパatters、学習ダイナミクスに関する深い洞察が得られる。

ABSTRACT

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とのインタラクションを含む、学生の問題解決プロセスを多様なプログラミング言語にわたって完全に研究できることを可能にすること。
  • 自然なプログラミング環境を損なわず、データ収集、リモート保存、基本的な分析をサポートする柔軟で拡張可能なツールキットを提供すること。
  • 将来のコンputング教育研究を目的として、高精度な学生プログラミング行動の公開データセットを生成すること。
  • 実際の学生の解決パターンに基づいて、文脈に応じたヒントなどのパーソナライズド学習介入の開発を支援すること。

提案手法

  • IntelliJベースのIDE(例:PyCharm、IntelliJ IDEA)向けのプラグインが、リアルタイムで順序付きのコードスナップショットおよび低レベルのIDEインタラクションイベント(例:入力、実行、リファクタリング)を収集する。
  • プラグインがデータをリモートサーバーに送信し、中央集積型のストレージと管理を実現することで、データの整合性とスケーラビリティを確保する。
  • 専用の後処理ツールにより、スコアの変化、アクション頻度、コード変更パターンなどの基本的分析が可能となり、可視化機能も備える。
  • 各タスクのコンテキストごとの追跡が可能で、行動と特定のプログラミング問題との関係を保持する。
  • 拡張性を考慮し、プラグイン、サーバー、分析ツールのモジュラーなコンponent構成を採用しており、研究ニーズに応じたカスタマイズが可能である。
  • データセットは、年齢や経験レベルに差がある148名の参加者から収集され、標準化されたプログラミング課題の解決中に活動がログ記録された。

実験結果

リサーチクエスチョン

  • RQ1学生のコーディングパターンやIDEインタラクション行動は、プログラミング言語や経験レベルによってどのように異なるか?
  • RQ2プログラミング課題における一般的なエラーパattersと解決経路は何か。また、学生の経験レベルに応じてどのように変化するか?
  • RQ3正解スコアを達成した後、学生はどのようにコードを変更するか。リファクタリング中に最も頻繁に行われる行動は何か?
  • RQ4コード変更のダイナミクスとスコアの変化は、学生の意図や問題解決戦略を推定するために利用できるか?
  • RQ5解決プロセスのデータは、リアルタイムでのパーソナライズドヒントやフィードバックの生成にどの程度活用できるか?

主な発見

  • データセットから、学生の多くが過去の解決法から大きなコードブロックを貼り付けることが判明しており、過去の作業に依存するか、コピーペーストのパターンに依存している可能性がある。
  • 多くの学生が開発中に頻繁にコードを実行しており、未完成なコードを早期に検証する傾向があることが示された。
  • 多くの学生が、文字単位の比較のため、入力と出力を貼り付けて差分ツールとしてIDEを利用している。
  • スコアとコード変更のダイナミクスから、解決プロセスが初期実装、是正、リファクタリングの3段階に明確に分けることができる。
  • 解決後の活動に顕著なギャップが見られる:正解スコアに到達した後も、多くの学生がコードの品質向上を目的にリファクタリングを行うため、正しさを超えたコード品質への注目が顕著である。
  • 年齢や経験レベルは、機能の使用パターンやエラーの種類に顕著な相関を示しており、プログラミング行動における発達的トレースの存在が示唆された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。