Kernkonzepte
MOOCでは学生の提出解答を共有することで、異なる解決方法を学ぶことができるが、多くのMOOCでは最新の解答のみを表示しており、その多様性や品質を考慮していない。本研究では、学生の提出解答をクラスタリングし、多様性と品質を考慮した上で代表的な解答を選択する手法を提案する。
Zusammenfassung
本研究では、MOOCにおける学生の提出解答の多様性を高めるための手法を提案している。
まず、JPlagというプラジアリズム検出ツールを活用して解答のクラスタリングを試みたが、短い解答を十分に処理できないという課題があった。そのため、独自に開発したRhubarbツールを使うことにした。
Rhubarbは以下の手順で動作する:
- 解答コードを標準化する - 変数名の匿名化、不要なコードの削除など、解答の本質的な違いを無視する変換を行う
- 標準化された解答間の構造的な編集距離を計算する - GumTreeツールを使ってAST上の編集距離を算出
- 階層的クラスタリングを適用し、解答をグループ化する - クラスタ間の最大距離を基準に統合
- 各クラスタから品質の高い代表解答を選択する - Hyperstyleによるコード品質評価を活用
Hyperskillプラットフォームのデータを使った評価では、Rhubarbがデフォルトの最新解答表示よりも優れた結果を示した。一方で、JPlagは全体の5.3%の課題しか完全に処理できなかった。そのため、JPlagを5.3%の課題に適用し、残りの94.7%にはRhubarbを適用するハイブリッドシステムを構築した。
本研究の主な貢献は以下の通りである:
- Rhubarbツールの開発 - MOOCにおける学生解答の多様性を高めるクラスタリングツール
- Pythonコード標準化ライブラリの開発 - 他のアプリケーションでも利用可能
- 59課題に対する8名の専門家による評価 - Rhubarbがデフォルトアプローチより優れていることを示した
Statistiken
867個のPythonタスクに対して305,584個の解答が提出された
JPlagは46個(5.3%)のタスクしか完全に処理できなかった
Rhubarbは100%のタスクを処理できた
Zitate
"MOOCでは学生の提出解答を共有することで、異なる解決方法を学ぶことができるが、多くのMOOCでは最新の解答のみを表示しており、その多様性や品質を考慮していない。"
"Rhubarbは以下の手順で動作する:
解答コードを標準化する
標準化された解答間の構造的な編集距離を計算する
階層的クラスタリングを適用し、解答をグループ化する
各クラスタから品質の高い代表解答を選択する"