研究課題/領域番号 |
21K12177
|
研究機関 | 名古屋市立大学 |
研究代表者 |
渡邊 裕司 名古屋市立大学, 大学院理学研究科, 准教授 (60314100)
|
研究期間 (年度) |
2021-04-01 – 2024-03-31
|
キーワード | プログラミング教育 / 機械学習 / 教え方支援 / 地域連携 / Scratch / Python / Google Colaboratory |
研究実績の概要 |
本研究では、代表者やNPO団体が行うプログラミング初等授業における学習者のソースコードと操作履歴から、機械学習によって、まずコードのバグを分類し、そのバグを先生や支援員がいかに指導するかを支援するシステムの開発を目指す。2021年度の計画は、(1)学習者のソースコードの記録と検定試験の解答利用、(2)学習者のコードに対する機械学習によるバグの分類、(3)学習者の操作履歴を取得するブラウザ機能拡張の開発であった。 (1)については、対象とするプログラミングはScratchとPythonであり、Scratchでは教師用アカウントを使って生徒のコードを蓄積し、PythonではGoogle Colaboratoryで入力した生徒のコードをGoogle Driveの共有フォルダに記録した。また当研究室のメンバーが(株)サーティファイの「ジュニア・プログラミング検定」を実際に受験して解答ファイル等を取得した。 (2)に関しては、2020年度に高校生23名を対象に行ったオンラインPythonプログラミング講座におけるコードとアンケート回答を分析した。コードの正誤関係の類似性分析により受講者がいくつかのクラスタに分かれ、カテゴリ分析により正答率が各アンケート回答と関係することが分かった。また、2021年度に中学生48名に対して開催された中学生プログラミング教室におけるコードとアンケート回答の分析も行った。その結果、高校生と同じく正誤関係からクラスタを確認し、アンケートに関しては高校生と同じまたは異なる傾向がみられた。これらの結果を電子情報通信学会の教育工学研究会で発表した。 (3)については、操作履歴を取得できる既存のアプリケーションがあったため、これを使うことを試みたが、セキュリティ上の理由で当大学のパソコンにインストールできなかった。今後他のアプリケーションや方法を探す必要がある。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
2021年度の計画の三つの項目について順に自己評価を行う。(1)に関しては、順調に進展している。理由として、代表者が行う小学生・中学生・高校生向けのプログラミン教室において学習者のソースコードを記録できていて、(株)サーティファイと秘密保持契約を締結して検定試験の解答利用の道筋をつけたからである。(2)については、機械学習ではなく基本的なデータ解析手法を用いているものの、学習者のコードの正誤関係から受講者の分類を確認でき、おおむね順調に進んでいるといえる。(3)に関しては、操作履歴を取得できる既存のアプリケーションが当大学のパソコンにインストールできなかったため、やや遅れているといえる。しかし、他のアプリケーション候補が見つかり、その動作の違いを調べているところである。 総じて本研究課題はおおむね順調に進展しているといえるが、現在では研究会での発表に留まっているため、必要ならば追加でデータ解析を進めながら結果を整理して査読付きの学術雑誌や国際会議への投稿を早めに行うべきである。
|
今後の研究の推進方策 |
まず、2022年度以降の計画として、プログラミング教室での履歴収集を行う。現在は高校生23名と中学生48名のコードに対して基本的なデータ解析手法で分析しているが、より多くの学習者のコードを収集して分析を行う。特に機械学習を用いるのであれば大量のデータが必要となる。そこで、研究代表者だけではなく企業や学校の先生が行うプログラミング教室においてもソースコードと操作履歴を収集する。既設パソコンやタブレットへの操作履歴取得アプリケーションのインストールが不可の場合などは、本研究費で購入するChromebookなどを貸し出す。プログラミングを学習する際の学習者のソースコードや操作履歴を取得する個人情報を扱う実験であるため、被験者の同意ならびに倫理委員会の承認を得て実施する。 また、学習者のコードの正誤を現状では手作業で判定しているが、コードが増えてくると作業負担が大きくなるため、自動採点の方法も検討する。PythonプログラムをGoogle Colaboratoryで入力しているが、ファイルは入力と出力など様々な情報を含むJSON形式のノートブックドキュメントであるため、入力コード、コードの出力、状態の三つのプロセスに分けて、入力コードの抽象構文木の相違をレーベンシュタイン距離により正誤判定する方法を試行している。Scratchも同じくJSON形式のため、同様の自動採点の方法を検討する。
|