九州大学 山田研究室

LAPLEで学習状況を可視化!C言語学習・指導のリアルタイム支援ツール

2024年06月05日

皆さん、こんにちは。修士1年の樋口尚宏と申します。
去年は1年間小・中学校ICT支援員をしておりましたので、今年から本格的に修士課程、研究室活動に参加することになります。どうぞよろしくお願いいたします。私は授業において収集した学習ログを分析し、教員にフィードバックするシステム開発を研究として進めようと考えています。関連する研究レビューとして下記の研究論文を紹介します。

論文情報
論文タイトル:Real-time learning analytics for C programming language courses
出版:In Proceedings of the seventh international learning analytics & knowledge conference
ページ:280-288
出版年:2017
著者名:Xinyu Fu, Atsushi Shimada, Hiroaki Ogata, Yuta Taniguchi, Daiki Suehiro
https://doi.org/10.1145/3027385.3027407

みなさん、プログラミング学習は好きですか?
私も最近力を入れているところなのですが、エラーが出た時の修正はなかなか苦労しますよね..。今回の論文は、大学で行われるC言語の授業において学生のログを活用して、リアルタイムに学習・指導を支援を行うツール、「LAPLE」のデザイン、実際のデータに関する可視化手法が紹介されています。

課題
筆者らが捉える課題として、「多くの大学でC言語の授業が行われているが、初学者にとっては文法の理解が難しいためエラーの特定と修正に困難を感じている一方、教師は生徒の理解状況を把握しないまま講義を進めてしまう」というものがありました。そこで筆者らは、効果的なC言語指導・学習を促すためには学習者の状況が細かく把握され、授業行動に反映されることが重要だとしています。

先行研究
筆者らは過去の研究で、初学者のプログラミング学習のコンパイリングログを収集し、エラータイプの分類を行いました。今回の学習・指導支援ではフィードバックのために、このエラータイプ分類が活用されることとなります。
※コンパイリング(compiling):プログラミング言語で書かれた人間向けのコードを、コンピューターが理解して実行できる言語に変換すること。(プログラムを実行する直前に行われます)

開発したシステム
【環境】本研究ではBooklooperというe-book(電子教科書)からのログ取得と、学生が使用するコンパイルソフトウェアが動作しているサーバーからのエラーログ取得が行われることとなります。2014年10月から2016年6月の間で1975人の生徒から989,560のコンパイリングエラーログを取得しました。LAPLEではこれらのログが活用されることとなります。
【LAPLE】筆者らはMoodleという学習管理システムに内包されるソフト(プラグイン)としてLAPLE(Learning Analytics in Programming Language Education)を開発しました。LAPLEを使用することで、学生は文法エラーの特定と教材に基づいた対処法を知ることができ、教師は生徒の学習状況を把握することができます。

学習者への支援
論文執筆時点で開発段階ではありますが、エラーが発生すると、LAPLEがBookLooper上で関連する教材を探し出し、学生に提示します。参照すべきページを特定できることは、学習者だけでなく、教師にとっても生徒がわからない場所の把握、説明すべき内容の確認、教材改善のヒントを得られる点で役に立つとされています。

教師への支援
以下ではLAPLEにおける教師の指導支援のためのツールについて説明いたします。教師は6つのグラフを含んだダッシュボードによって生徒の学習状況を把握することができ、この内容は5分おきに更新されます。実際のダッシュボードの見た目は論文の5ページ以降で画像が紹介されていますのでご参照いただければと思います。

エラータイプを活用した学習ダッシュボード
1. エラータイプの棒グラフ:
このグラフは、学生のエラーログと先行研究で分類されたエラータイプから、どのタイプのエラーが多いかを示すものとなります。教師は指導・教材の改善に活かすことができます。

2. エラータイプのヒートマップ:
横軸がエラータイプ、縦軸が時間となっており、タイプごとのエラー数の時間的遷移を色の濃さで表します。教師はこのグラフを即座の対応や、教材の改良に活かすことができます。

学生の学習状況を把握するための学習ダッシュボード
3. 学生のアクティビティのヒートマップ:
このグラフでは学生のコンパイル状況を確認することができ、回数が多いほど色が濃くなります。従来のC言語講義の成績では課題が重要な成績考慮項目となりますが、中には真面目に取り組まずに他の学生の回答をコピーするだけの生徒もいるので、教師の公正な評価にも役立ちます。

4. 学生の学習レベルごとのコンパイル回数・エラーのグラフ:
学生たちを「プログラミングにかかっている時間」「コンパイリングエラーの修正数」「授業内で完了した課題数」の3つの観点からA~Eの5つのグループに分け、「卓抜した学生:A,B」「活発な学生:C,D」「困難を抱える(活動していない)学生:E」として学習状況を特定するために、コンパイル回数とエラー回数がわかるグラフが開発されました。
※学習者の5つのグループ分け
A: (全部で6個のプログラム課題のうち)4つ以上を完了し、エラーを残さなかった群。
B: 2つ以上を完了し、エラーを残さなかった群。
C: 2つ以上を完了し、最終的にいくつかエラーが残っていた群。
D: 完了したのは2つ以下だったが、プログラムに20分以上取り組んだ群
E: 完了したのは2つ以下で、取り組んだ時間が20分以下だった群

5. プログラム課題の難易度ごとのコンパイル・エラー回数のグラフ:
これは学生1名の学習状況に着目したグラフです。プログラム課題を難易度(難・中・易)ごとに色付けし、時間推移の中でのコンパイルとエラーの回数を表示します。教師はその学生が取り組んでいる課題レベルや試行回数、取組時間、エラー回数について知ることができます。

6. プログラム課題の難易度ごとの取組時間のグラフ:
学生がどの難易度レベルの問題にどれくらいの時間取り組んでいるかという学生全体の状況を表示します。これにより教師は学生の学習状況と弱点を理解し、それに基づいて教材を調整することができます。

結論
本研究では、C言語講義における効果的な学習・指導のためのLAPLEというツールの提案がなされましたが、筆者らは以下のような研究の限界点と今後の方向性を捉えています。

1. より正確なエラー原因の特定
現状のシステムではコンパイラからのエラーメッセージログに基づいて分析が行われていますが、実際にどのようなプログラムが書かれてそのエラーになっているのかという詳細は特定できないため、新たなエラーメッセージ分析モデルが必要だとされています。
2. LAPLE活用の拡大
現状では、主な学習者がコンピューター専攻といった学生に限られていたため、より多くの学習者を対象としてLAPLEの活用とその結果の分析を行うことで、汎用性の高いC言語学習システムの導入とエラーの分析が可能になるとされています。

感想
私は自身の研究でリアルタイムダッシュボードの開発を行うため、実際にどのようなリアルタイムダッシュボードが開発されているのかを知るにあたって、この研究では6種類ものデータ可視化例が提示されていたのでとても参考になりました。また、本論文では研究が評価までは至らず機能・デザインの提案のみにとどまっていましたが、9月のJSETでの自分の発表もデザインの提案がゴールなので論文の内容配分を考える上で役立ちました。一方で本研究は知能情報学の研究でもあるためか、開発は実際に起っている課題(生徒の進捗を知りたい、難易度別の取組状況を知りたい等)の解決が目的で、特に学習・指導理論に基づいているわけではありませんでした。教育工学の領域では、背景とする理論等を検討することで他の活用文脈での汎用性や開発意義の補強もできると思うので、自分の研究ではそこにも力を入れたいと思います。

PAGE TOP