講演抄録/キーワード |
講演名 |
2017-03-10 09:40
プログラム意味理解学習におけるソースコード構造化の枠組みに基づく補助問題出題機能の設計・開発 ○渡辺圭祐(東京理科大)・東本崇仁(東京工芸大)・藤森 進・赤倉貴子(東京理科大) ET2016-108 |
抄録 |
(和) |
プログラミング学習において,プログラムを作るだけでなく,“読む行為”もプログラミング学習に良いとされている.著者はプログラムを読む行為のうち“意味理解”プロセスにおいて段階的に考える行為を“段階的抽象化”と呼び,段階的抽象化による学習支援システムを開発した.しかしながら,開発したシステムのフィードバックは正誤情報を与えるのみであり,学習に十分有用であるとはいえなかった.そこで本研究では,学習者の状態に合わせた出題が可能な,漸進的な学習が可能なプログラムを読む学習を支援するシステムの開発を目的とした.
学習者の状態に合わせた次問題の提示やフィードバックメッセージの生成を実現するためには,システム自身が個々のプログラムの特徴を把握できている必要がある.そこで,本研究では、問題としての各プログラムと,そのプログラムが記述された背景情報をセットにしたものをノードとし,各プログラム間の背景情報の差分をリンクの情報に持つグラフ構造を提案する.ノードは,(a)背景情報(要求,仕様)と (b)プログラム,(c)ソースコードを理解するためのタスクの3点を情報として持つ.ノード間の隣接関係を,(a)背景情報を基に,(ⅰ)特殊-一般と(ⅱ)部分-全体の2つに定義した.(ⅰ)特殊-一般は,同じ目的の達成を前提とし,特殊側のノードにおいて変数に制約を与えパラメータを特殊化することで,プログラム上で考慮する要素を減らし,簡単化したものである. (ⅱ)部分-全体はある目的を達成するプログラムと,その副目的を記述したプログラムの関係である.全体側のプログラムは部分側のプログラムにコードを追加したものになっているため,全体側のプログラムは部分側のプログラムを複雑化したものとなる.さらに本グラフ構造では,各ノード間の(a)背景情報の変更がモデルに対してどのような変化があったか表すPC-Ruleを記述する.PC-Ruleと各ノードに書かれた背景情報を照合することにより,システムは自身で各ノード間の差分を説明でき,学習者がノード間を移項する際のタスクの生成もできるようになる.
以上のグラフ構造を内部に持つシステムを試作した.評価の結果,本システムにより,漸進的な学習を行える可能性が示唆された.今後の課題として,異なる問題系列やより大きな問題系列を用いた評価や,段階的抽象化によるプログラムを読む学習を支援するシステムとの統合が挙げられる. |
(英) |
The act of program reading, as well as program writing is considered to be useful to efficiently learn programming. In a previous study, we defined “Stepwise Abstraction” as the step-by-step process of program reading, and developed a system to help learners acquire programming skills. However, the system provided the learner with only true/false information as feedback. Therefore, in this study, we aim to develop a system with improved feedback functions, which makes progressive learning possible.
To adjust the subsequent questions and feedback messages according to the learner’s comprehensive level, it is necessary that the system itself is able to recognize the characteristics of individual programs. In this study, we propose a graph structure with nodes corresponding to individual programs and their background information, and with edges indicating the difference between the programs. The nodes have the following three types of information: (a) background information, (b) source code snippets and (c) tasks to understand the source code. We use the background information to define the relations between nodes as one of (i) specific–general and (ii) partial–whole. The specific–general relation type assumes achievement of the same purpose. The node on the specific side of the relation has restricted variables are and parameters are specified. As a result, the factors to be considered for programming are reduced and simplified. The partial–whole relation type is used between nodes to show one node with a primary purpose and one node with a secondary purpose. The node on the whole side of the relation contains code to be added to the partial-side node, and is more complicated than the partial-side node. For the system to automatically recognize differences between nodes, we set a PC-Rule that describes how the change in background information causes the model to change. By matching the information described on each node with the PC-Rule, the system is able to recognize differences between nodes and automatically generate tasks.
I designed and prototyped the system with the above graph structure. Evaluation results suggest that this system assists in progressive learning. Issues remained to be studied in the future are expanding evaluation to different problems (including large series of problems) and integration with the system to learn programming through Stepwise Abstraction. |
キーワード |
(和) |
知的学習支援システム / プログラムを読む学習 / 漸進的な学習 / システム設計 / / / / |
(英) |
Intelligent Learning Support System / Act of Program reading / Stepwise Learning / System Design / / / / |
文献情報 |
信学技報, vol. 116, no. 517, ET2016-108, pp. 85-88, 2017年3月. |
資料番号 |
ET2016-108 |
発行日 |
2017-03-03 (ET) |
ISSN |
Print edition: ISSN 0913-5685 Online edition: ISSN 2432-6380 |
著作権に ついて |
技術研究報告に掲載された論文の著作権は電子情報通信学会に帰属します.(許諾番号:10GA0019/12GB0052/13GB0056/17GB0034/18GB0034) |
PDFダウンロード |
ET2016-108 |
|