ソースプログラムの頻出パターンに基づくプログラミング学習支援
Project/Area Number |
22K12291
|
Research Category |
Grant-in-Aid for Scientific Research (C)
|
Allocation Type | Multi-year Fund |
Section | 一般 |
Review Section |
Basic Section 62030:Learning support system-related
|
Research Institution | Wakayama University |
Principal Investigator |
村川 猛彦 和歌山大学, システム工学部, 准教授 (90304154)
|
Project Period (FY) |
2022-04-01 – 2025-03-31
|
Project Status |
Granted (Fiscal Year 2022)
|
Budget Amount *help |
¥3,120,000 (Direct Cost: ¥2,400,000、Indirect Cost: ¥720,000)
Fiscal Year 2024: ¥910,000 (Direct Cost: ¥700,000、Indirect Cost: ¥210,000)
Fiscal Year 2023: ¥910,000 (Direct Cost: ¥700,000、Indirect Cost: ¥210,000)
Fiscal Year 2022: ¥1,300,000 (Direct Cost: ¥1,000,000、Indirect Cost: ¥300,000)
|
Keywords | ソフトウェア解析 / C言語 / プログラミング / 学習支援システム / 大学教育 |
Outline of Research at the Start |
初学者向けプログラミング学習において、語(トークン)を適切に並べて文を構成する能力の養成が求められている。本研究では、ソースプログラムに共通して出現する「頻出パターン」に着目し、その抽出および学習支援システムへの適用を行う。C言語のfor文の場合、頻出パターンは「for(;;)」で表される。大規模なソースプログラム群からの頻出パターンの取得を試み、頻出パターンを入力に与えてソースプログラム群における出現を検出するソフトウェアも自作する。データベースを含む学習支援システムは、平成31年度より科研費の助成を受けて開発・公開したものを更新する形で構築し、大学の授業での利用を通じて有効性を実証する。
|
Outline of Annual Research Achievements |
手動による頻出パターン取得の支援のため,頻出パターン表示システムを開発した.本システムは,頻出パターンとなるトークン列を入力にとり,システムが保持するソースプログラム群の中からそのトークン列を含むソースプログラムを検索する機能,およびソースプログラム中のトークン列の出現箇所を表示する機能を持つ. Webアプリケーションとして構成しており,Ruby言語で記述し,CGIプログラムとして実現している.本事業より前に研究代表者が開発したプログラムを使用して,対象となるC言語で書かれた各ソースコードをトークン分割して配列にし,RubyのPStoreライブラリを用いてファイルに保存することで,ソースコードのファイル名をキーとして読み出せるようにしておく.また入力となる頻出パターンもトークン分割し配列として保持する. 頻出パターンとソースコードとの照合は次のようにして行う.すなわち,頻出パターンの初めのトークンと一致する,ソースコードのトークン位置を逐次探索する.見つかれば,頻出パターンの次のトークンを逐次探索し,すべて見つかるまで繰り返す.ただし括弧類の対応のため,カウンタを用意しておく.初期状態は0で,ソースコードのトークンの配列の逐次探索中に開き括弧を見つければカウンタを1増やし,閉じ括弧を見つければカウンタを1減らす.ソースコードのトークン配列において対応する開き括弧と閉じ括弧は,同じカウンタの値に限定する. 指定した頻出パターンに対し,ソースプログラムには複数出現する場合にも,本システムで検出し,異なる色で表示することを試みた.頻出パターンとして,「for(;;){}」「int main(){}」などを与えたときに適切に表示されること,また前者については二重ループも適切に表示されることを確認した.
|
Current Status of Research Progress |
Current Status of Research Progress
3: Progress in research has been slightly delayed.
Reason
頻出パターンの機械的な取得が当初予定通りに実現できていないため.
|
Strategy for Future Research Activity |
研究実施計画に書いた「頻出パターンの取得」「学習支援システムの更新および利用」を進めていく.成果を取りまとめながら,国内・海外で成果発表を積極的に行う.
|
Report
(1 results)
Research Products
(1 results)