研究課題/領域番号 |
17K01164
|
研究機関 | 広島工業大学 |
研究代表者 |
山岸 秀一 広島工業大学, 情報学部, 教授 (10609902)
|
研究分担者 |
松本 慎平 広島工業大学, 情報学部, 准教授 (30455183)
加島 智子 近畿大学, 工学部, 講師 (30581219)
|
研究期間 (年度) |
2017-04-01 – 2020-03-31
|
キーワード | 読解 / 知識 / 定量化 / 自動生成 / データ構造 / スライシング |
研究実績の概要 |
申請者らはこれまで,ソースコード自身の内的な情報であるデータ依存関係のみに基づいた読解学習教材を対象とし,それを用いてプログラム読解力を養成するための読解学習支援システムの開発を進めている.この学習ログを分析した結果,プログラミング初学者にとって理解を阻害する可能性のある要因として,複合代入演算,インクリメント・デクリメント,整数同士の除算の困難さ・技量の高さを明らかにした.このことと類似の傾向は,読解過程中の視線の動きからも確認した.しかし,既存成果は代入文にのみに留まり,記述単位の決定,単位ごとの知識量の定量化までには至っていない.更なる学習支援に向けては,読解学習の対象を制御文や配列までに広げることが望まれている.なお,プログラミングを不得意とする学習者層を対象として,ソースコード記述の知識を定義する目的で読解学習に着目した研究は,調査の限りでは確認されていない.
以上背景を踏まえ,これまでの研究実績として,開発を進めている読解学習支援システムの機能拡張に取り組んだ.具体的には,プログラム内的構造とソースコードの生成条件を入力データとすることで,読解学習教材としてのソースコードを自動生成できる機能を設計・開発・実装した.読解学習は,トレース・デバッグ学習の基礎力向上に対しての有効性,プログラミングの基本である読解の反復学習の有効性を踏まえたものである.外的構造の意味に頼らない,プログラムソース自身が保持する内的な構造(データ依存関係)にのみに基づいた読解学習教材をプログラミング指導に導入し,スライシングの観点からプログラム記述の困難度を定量化し,コード記述の知識量(困難度)を段階的に定量化することを試みた.学習者は,提示されたプログラムを読解し,「ある変数の値がxである時の,別の変数の値」や「ソースコード実行後のある変数の最終的な値」などを回答できるようにした.
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
まず,ソースコード読解学習システムのバグ修復,基本機能の見直し,機能の拡張を計画通りに進めた.従来の読解学習支援システムでは,教材であるC言語のソースコードを自動的に生成できるが,ランダムな規則でだけしかソースコードを自動生成できなかった.たとえば,教授者が意図した何らかの学習を行わせる場合,ソースコード生成後,教授者が生成されたソースコードを事後的に編集しなければならなかった.この点に関して,本年度の取り組みでは,学習の狙いに応じて教材を自動生成できるようにした.具体的には,データ依存関係を意識した読解能力を身に付けるという意図で学習を実践する際,データ依存関係を入力データとして,ソースコードを自動生成できるようになった.他,学習者がソースコードを読む際にデータ依存関係などのプログラム構造を意識することは,ソースコード読解の効率を高めることに対して有効に働くということを小規模実験から明らかにした.データ依存関係を意識することで,認知資源をソースコード内の本質的箇所に集中できるようになり,その結果として,ソースコード読解速度の向上や,ミスの減少に繋がるという仮説を得た.プログラムスライシングは,従来からデバッグなどの作業に重要であると報告されている.本研究での成果は,過去の先行研究の知見を支持する結果であり,妥当であると考えられる.他,プログラムが持つ各知識要素の定量化に取り組んだ.本研究では,荘島により提案された潜在ランク理論を知識要素の困難度推定に用いた.分析の結果,繰り返し処理,インクリメント・デクリメントの読解難易度の高さが示唆された.これまでの先行研究により,繰り返し処理のコード読解に対する認知負荷の大きさが明らかにされている.本研究の結果は,従来の研究成果を支持するばかりでなく,新たに,インクリメント・デクリメントの読解に対する認知負荷の大きさを明らかにした.
|
今後の研究の推進方策 |
今後の研究の推進方策として,読解学習教材の多言語変換,制御依存関係に則したソースコードの自動生成機能の開発,空欄補填機能の開発をあげることができる.空欄補填学習方式については,実行結果から処理を推定する逆思考の学習である.したがって,従来の読解学習の効果と新たな空欄補填方式の学習効果とを比較することは,プログラミング学習において逆思考の有効性を明らかにする新たな取り組みであると考えている.なお,自動的に生成されるランダムなソースコードから,タブーな記述を発見するという取り組みも興味深い.自動生成されるランダムなソースコードは,学習者の混乱を招くことがあった.具体的には,複合代入演算子やインクリメント・デクリメントを複雑に含む命令文の実行結果は,コンパイラやそのバージョンによって異なる場合もある.これは,学習者によっては彼らのメンタルモデルの否定に繋がるため,あるべき記述ではないとも捉えることができる.Pythonなどの一部のスクリプト言語には,インクリメント・デクリメントがない,インデントが強制されるなど,いくつかの工夫がある.たとえばPythonの読解においての有効性を示すうえで,タブー記述の有無(発生のしにくさ)は,Python自体の有効性を量的に明らかにする方法として有効ではないかと考えられる。よって,タブー記述の発見は取り組むべき課題であると考えられる.本年度の取り組みにより,インクリメント・デクリメントの認知負荷の高さが示唆された.これまでの研究では、学習者に対するアンケートに基づいて,インクリメント・デクリメント認知負荷の重さが示された.しかしながら,そのことを十分確かにする規模で実験を行えていない.インクリメント・デクリメントやタブー記述の有無よって,これらを含む問題の数を増やし,本研究の知見をより信頼できるものにすることが必要である.
|
次年度使用額が生じた理由 |
(理由)本年度,国際会議(IEE SMC 2017)に研究代表者及び研究分担社は共に参加予定であったが,学内業務の関係で参加できなくなったため,論文投稿を見送ることになった.その結果として,旅費,学会参加費が不使用となり,残額が生じた.また,現在論文投稿を行っており,今年度中に採択の可否を受け取る予定であった.採択されることを想定し論文投稿料及び別刷り費用を予定していたが,査読が延び採択結果を受け取っていないため,残額が生じた.
(使用計画)使用計画として,投稿中論文が採択された場合の論文投稿料及び別刷り費用として,また,従来の学会参加予定に加えて,国際会議(IEEE TALE2018 (Australia),ICCE2018 (Philippines))に追加で参加することを検討し,そのための旅費及び参加費に充てる予定である.加えて,実講義での適用実験のために,残額を利用して複数の機材を購入することや,講義補佐のアルバイト代として使用することを検討する.
|