2018 Fiscal Year Research-status Report
記述知識の段階的定量化によるソースコードの困難度推定と適応的学習課題提示法の検討
Project/Area Number |
17K01164
|
Research Institution | Hiroshima Institute of Technology |
Principal Investigator |
山岸 秀一 広島工業大学, 情報学部, 教授 (10609902)
|
Co-Investigator(Kenkyū-buntansha) |
松本 慎平 広島工業大学, 情報学部, 准教授 (30455183)
加島 智子 近畿大学, 工学部, 講師 (30581219)
|
Project Period (FY) |
2017-04-01 – 2020-03-31
|
Keywords | 読解 / 知識 / 定量化 / 自動生成 / データ構造 / スライシング / 潜在ランク理論 |
Outline of Annual Research Achievements |
申請者らはこれまで,ソースコード自身の内的な情報であるデータ依存関係のみに基づいた読解学習教材を対象とし,それを用いてプログラム読解力を養成するための読解学習支援システムの開発を進めている.読解学習は,トレース・デバッグ学習の基礎力向上に対しての有効性,プログラミングの基本である読解の反復学習の有効性を踏まえたものである.既存成果は代入文のみに留まり,記述単位の決定,単位ごとの知識量の定量化までには至っていない.更なる学習支援に向けては,読解学習の対象を制御文や配列までに広げることが望まれている.そこで,平成30年度の取り組みの中では,開発を進めている読解学習支援システムの機能拡張に取り組んだ.具体的には,制御文や配列への対応,プログラム内的構造とソースコードの生成条件を入力データとすることで,読解学習教材としてのソースコードを自動生成できる機能を設計・開発・実装した.その他,多様な読解学習方法を実現した.提示されたプログラムを読解し,「ある変数の値がxである時の,別の変数の値」や「ソースコード実行後のある変数の最終的な値」,「入出力の変数セットと一部欠落したソースコードが与えられた時,欠落部分に入力する適切な命令」などを回答できるようにした.
次に,コード記述の知識量(困難度)を段階的に定量化することを試みた.具体的には,潜在ランク理論によりソースコード記述自体が有する困難度をプログラム依存関係に照合しながら解析し,ソースコード個々の読解に必要とされる困難度を段階的に定量化した.実際の授業から得た百人規模の学習者のログを用いた分析の結果,「反復」と「インクリメント・デクリメント」の読解における高い困難度が示唆された.「反復」の困難度については,先行研究の指摘を支持するものであり,従来定性的な観点でのみ議論されてきた困難度を定量的な観点から裏付けた点で意義のある成果である.
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
まず,ソースコード読解学習システムのユーザインタフェース,ユーザエクスペリエンスの見直しを行った.従来システムの中でPHPのみを用いて外観を構築していた点について,JavaScriptを活用して非同期的な画面更新を可能とした.また,レスポンシブデザインを導入し,スマートフォンなど携帯端末に最適化されたユーザインタフェースを提供できるようにした.その他として,基本機能の見直し,機能の拡張を計画通りに進めた.特に今回重要となった見直しは,多様な学習を実現するためにデータベース構造を一から見直したことである.従来は読解教材を提示して,実行後のある変数の値を答えるのみの学習しかできなった.今回の機能拡張により,「ある変数の値がxである時の別の変数の値を答えなさい」といった形式や,「入出力の変数セットと一部欠落したソースコードが与えられた時,欠落部分に入る適切な命令を答えなさい」といった形式の問題を可能とした.以上に加えて,学習の狙いに応じて教材を自動生成する機能の洗練化を行った.これは,データ依存関係を意識した読解能力を身に付けるという意図で学習を実践する際,データ依存関係を入力データとして,ソースコードを自動生成する機能である.従来はデータ依存関係を入力する際に隣接行列を手動で生成する必要があったが,今回はWeb上でネットワーク図を編集することでデータ依存関係を定義できるようにした.以上により教員の作業負担の軽減を実現させた.この拡張システムを利用して実験を行った.データ依存関係を意識させることで認知資源をソースコード内の本質的箇所に集中できるようになること,それにより,ソースコード読解速度の向上やミスの減少に繋がるという仮説を得た.実験と共に,コード記述の知識量(困難度)を潜在ランク理論により段階的に定量化した.
|
Strategy for Future Research Activity |
教材の困難度は,プログラム行数の程度x1,変数の数の程度x2,プログラム構造の形状に直接的に関係するデータ・制御の依存関係の数の程度x3,知識の程度x4の4つの要素の組合せ(x1×x2×x3×x4通り)から構成されるものと仮定する.よって,潜在ランク理論適用後,x4の推定を試みる.知識とは,制御・依存関係といった構造の観点では同一であるが,記述方法が異なる場合,知識が存在していると考える.C言語の「加算代入」や「3項以上の演算」を例にあげると,変数aにbとcの変数の値を加算する「a=a+b; a=a+c;」という記述は,「a=a+b+c;」と書いても良く,また「a+=b+c;」や「a+=b; a+=c;」といった書き方も可能である.この知識単位を決定するために,潜在ランク理論で推定された各グレートの項目に対して多変量解析法やベイジアンネットワークなどを適用する.説明変数は各教材の生成条件であり,インクリメントや複合代入演算,if文の複合条件,breakやcontinueの繰り返し制御,などが該当する.この分析により,記述単位と知識量(読解に必要となる技能)を明確にする.ここで得られた知識単位と知識量から,学力進度表を構築する.学力進度表の各行はプログラム記述の知識とし,ランクは,プログラム知識の高度さ(困難さ)を意味する構造とする.加えて,学習者の技量に応じて適切な難易度で記述されたプログラム読解学習教材を提示可能な学習者適応の機能を開発する.すなわち,学習者の理解度に応じた適切な問題提示機能である.AtcoderやAizu Online Judgeなどオンラインで公開されているソースコードを取得し,データ・制御依存関係を抽出して,知識量を推定することも有用であると考えられる.知識量に応じた教材の自動的再構成機能についても検討し,適応学習システム実現に向けて足掛かりとする.
|
Causes of Carryover |
(理由)国際会議に研究代表者及び研究分担者は共に参加予定であったが,学内業務の関係で参加できなくなったため,論文投稿を見送ることになった.その結果として,旅費,学会参加費が不使用となり,残額が生じた.また,現在論文投稿を行っており,平成30年度中に採択の可否を受け取る予定であった.採択されることを想定し論文投稿料及び別刷り費用を予定していたが,査読が延び採択結果を受け取っていないため,残額が生じた.
(使用計画)使用計画として,投稿中論文が採択された場合の論文投稿料及び別刷り費用として,また,従来の学会参加予定に加えて,国際会議に追加で参加することを検討し,そのための旅費及び参加費に充てる予定である.加えて,実講義での適用実験のために,残額を利用して複数の機材を購入することや,講義補佐のアルバイト代として使用することを検討する.
|
Research Products
(32 results)