2020 Fiscal Year Research-status Report
Development of a Source Code Reading Learning System to Acquire Chunking Skills
Project/Area Number |
20K03194
|
Research Institution | Hiroshima Institute of Technology |
Principal Investigator |
山岸 秀一 広島工業大学, 情報学部, 教授 (10609902)
|
Co-Investigator(Kenkyū-buntansha) |
松本 慎平 広島工業大学, 情報学部, 准教授 (30455183)
加島 智子 近畿大学, 工学部, 講師 (30581219)
|
Project Period (FY) |
2020-04-01 – 2023-03-31
|
Keywords | プログラミング / ソースコード読解学習 / チャンキング |
Outline of Annual Research Achievements |
プログラミング学習を効果的に支援するためには,プログラミングに要求される多様な技術要素を細分化し,認知資源を本質的学習に容易に配分可能なオープンエンドな学習課題で全体の学習を構成する情報構造指向アプローチが効果的だと考えられている.その中でもとりわけ,プログラムを正確かつ効率的に読むための学習は基本であるため,プログラミング力の向上に特に重要であると考えられている.以上の背景のもと,プログラムスライスの土台であるデータ依存グラフを的確かつ効率良く把握する力の習得を狙いとして,コード読解に基づいたプログラミング学習支援システムが開発されている.実際の講義での利用から統計的に有意に早く読解できるようになるなどその有用性が確認されたが,プログラム構造のみに着眼しているためコードの規模は限定され,それゆえ初学者の支援に留まっている.そこで本研究では,従来よりも規模の大きいコード読解を対象としプログラミング中級程度の学習者の読解学習を支援するため,上級者がコード読解の際に適用すると言われているチャンキングに着目する.門田らは,英文読解において学習者が内容を理解する際チャンクによる提示は理解度に関して大きな影響を与えないが,読解速度を有意に向上させたとしている.このような知見を踏まえると,英文読解での手法をプログラミング読解に適用すること,すなわち,チャンクを活用し学習の効率化を試みることは意義のある取り組みだと考えられる.チャンクに関しては,意味のある部分ごとのセグメンテーションは可読性の向上に有用な意味付けとしたWangらの説明を踏まえると,セグメンテーションにより構成される部分をチャンク単位と見立て利用することは適切だと考えられる.そこで令和2年度においては,関連研究の文献を調査し,セグメンテーションをチャンク単位とすることのコード読解技能の養成に対しての適切性を確認した.
|
Current Status of Research Progress |
Current Status of Research Progress
4: Progress in research has been delayed.
Reason
新型コロナウイルス感染症拡大の対応に追われ,当初想定していたような開発を進めることはできなかった.そこで,令和2年度においては,関連する文献調査に徹した.まず,プログラミング初学者が中・上級者に差し掛かる段階においては「他者が書いたある程度の規模のコードを読む作業が求められる」とされている一方,読解に対するツールや方法論による支援が乏しく,そのノウハウは一部の熟練者とその周辺のみに閉じられがちであることを確認した.技能に頼らず機械的にコード読解を支援する取り組みとして,学習者が読解すべき文を強調表示する(以下ハイライト表示方式とする)手法を用いた読解支援が確認された.ハイライト表示方式は,通常の開発環境のブレイクポイントの様に,着目する任意の行にカーソルを合わせるとその行に含まれる変数に対して静的スライシングを行い,着目されている行及びそれと関係性のある行を強調表示するものである.ハイライト表示方式は課題外在性認知負荷を低減する方法として有効と考えられるが,全て機械に頼るのではなく,ある程度自分の力で要領良く読解できる力も必要とされていることを確認した.ところで,非本質的な認知負荷を軽減する手法としてチャンクが広く知られており,チャンクの考えを活用した技法であるチャンキングは言語学習においてその有効性が明らかにされている.また,湯舟らは英文の速読教材において,チャンクを順次提示する方法により読解速度の促進が傾向に見られたとしている.このような考え方は,プログラミング読解においても適用可能であると仮定し,令和3年度以降の実験計画を検討した.
|
Strategy for Future Research Activity |
令和3年度においては,湯舟らの方式,すなわち,英文速読に適用したチャンクが順次現れる提示法に倣い,C言語のコードで行うことで,コードに対する読解力向上を狙いとした学習法の有用性を調査する.令和3年度においては,表示される情報量を必要なもののみに制限し,課題外在性認知負荷の軽減により学習効率の向上を試みる.令和3年度の課題は,学術的問である「チャンク単位でのコード読解の技能は有用である」ことの確認と,技術課題として,ハイライト表示と注目させたいチャンキング箇所以外の部分を非表示とする2方式のシステム開発である.チャンク単位でのコード読解技能を習得するための学習支援システムはGoogle Code Prettifyを用いて開発し,これを提案システムとする.提案システムは,コードをチャンク単位で区切り,学習者に現在学習者が読解すべきチャンクを順にひとつずつ表示する.チャンクを順に表示する機能については,学習者が次へボタンを押すことで次のチャンクを表示し,かつ,現在表示されていたチャンクを非表示にする.チャンク単位は教授者により決定される.Wangらによると,教授者が与えた空白行によるコードのセグメンテーションは模範と位置付けられている.よってWangらの主張に倣い機能を設計する.なお,読み込んだライブラリとmain関数の開始・終了のカーリーブラケットは常時表示するようにしている.読解対象個所とmain関数との関係を把握できるようにすることで,非表示に起因する負担を抑制できるよう配慮する.従来手法を用いたシステムは,学習者が着目(選択)する任意の一行に対し,依存関係のある個所(行)をハイライト表示する.依存関係のある命令とは,入力に依存せず静的スライシングで依存関係がみられた全ての命令を意味する.
|
Causes of Carryover |
複数の研究会や学会全国大会に参加予定であったが,新型コロナウイルス感染症拡大の影響を受け,全て参加を見合わせることになった.その結果,旅費,学会参加費が不使用となり,残額が生じた.また,新型コロナウイルス感染症拡大の影響で学生の来学が難しくなり,予定していたシステム開発や実験を行うことができなかった.これにより,物品費,人件費の執行もできなかった. (使用計画)論文投稿を既に数件進めており,論文投稿料として使用する計画を立てている.加えて,実講義での適用実験のために,残額を利用して複数の開発用計算機を購入することや,講義補佐の人件費として使用することを検討する.さらに,予算の余裕を活用し,システム開発の外注を行う予定である.
|