[PC32] ワーキングメモリにかかる負荷を軽減するプログラミング教育の工夫
プログラムの形式的導出に関して
キーワード:教授, 教育, ワーキングメモリ
目 的
近年,情報化社会の発展とともに,情報教育の必要性が唱えられ,特にプログラミング学習が情報の理解に通じると提案されている。しかし,初学者にとってプログラミング言語を理解するのは容易ではない。プログラムは構成要素で記述される。構成要素として変更可能な単語(識別子)と変更不可な単語(予約語)などがある。Figure 1はJava言語で記述された簡単なプログラム骨格の例である。構成要素の予約語(太字)と識別子が混在している。初めて学ぶ学習者にとって,これらの識別子と予約語を弁別することは困難である。特に,このプログラムには予約語として5種類の単語(public,class,static,void, int)と識別子として図に示した6種類の単語があり,ワーキングメモリに負荷がかかると考えられる。
本研究ではプログラム骨格の形式的な導出(以下,形式的導出)において,ワーキングメモリにかかる負荷を軽減するための工夫に関して報告する。
方 法
ワーキングメモリにかかる負荷を軽減する方法として「情報の整理」や「情報の最適化」が提案されている1)。これは,学習者が情報を記憶・処理できるように,与える情報の「構造の簡略化」や最適化を促進し,情報量を調節することである。
プログラムの形式的導出には,予約語と識別子の弁別が必要である。これらの弁別を容易にするために,ソフトウェアの設計に使われるUML(Unified Modeling Language)の一つのクラス図を使用する。クラス図はプログラムの骨格をプログラミング言語に依存しないダイヤグラムで表現することができる。Figure 2はFigure 1のプログラムをクラス図に変換した例である。
学習者にクラス図を提示することにより,単語の種類を減らし,識別子の注視を容易にする。次に,プログラムの形式的導出の手順を学ばせる。
本方法により,識別子と予約語の種類を調節でき,ワーキングメモリにかかる負荷を軽減することが期待される。
結 果
2015年度の後期に本学で開講されたコンピュータプログラミングA(Java言語入門)を対象とし,クラス図からのプログラムの形式的導出を行った。学習者へのアンケート調査の結果,51名中50名が理解できたと回答した。
考 察
従来,プログラム骨格の形式的導出は「おまじない」として何回も書いて覚えさせることが多かった。しかし,単語の種類は簡単なプログラム例(Figure 1)であっても11種類ある。ましてや,学習が進むと,種類の増加は避けられない。学習者は,予約語と識別子が混在したプログラムを書いて覚えながら,予約語と識別子の違いを理解し弁別する必要があった。このため,ワーキングメモリにかかる負荷は高まり,全ての学習者に望ましい環境ではなかった。
われわれはクラス図を用いることにより,「情報の構造化」と「情報の最適化」を行った。具体的にはクラス図を用いて識別子の抽出を容易にする。これにより,変更できる単語を先に注視させることができる。
本方法と従来方法を比較実験してはいないが,本方法はワーキングメモリにかかる負荷を軽減できると推測される。
参考文献
1) ワーキングメモリと特別な支援,湯澤美紀,河村暁,湯澤正通,北大路書房,2013
近年,情報化社会の発展とともに,情報教育の必要性が唱えられ,特にプログラミング学習が情報の理解に通じると提案されている。しかし,初学者にとってプログラミング言語を理解するのは容易ではない。プログラムは構成要素で記述される。構成要素として変更可能な単語(識別子)と変更不可な単語(予約語)などがある。Figure 1はJava言語で記述された簡単なプログラム骨格の例である。構成要素の予約語(太字)と識別子が混在している。初めて学ぶ学習者にとって,これらの識別子と予約語を弁別することは困難である。特に,このプログラムには予約語として5種類の単語(public,class,static,void, int)と識別子として図に示した6種類の単語があり,ワーキングメモリに負荷がかかると考えられる。
本研究ではプログラム骨格の形式的な導出(以下,形式的導出)において,ワーキングメモリにかかる負荷を軽減するための工夫に関して報告する。
方 法
ワーキングメモリにかかる負荷を軽減する方法として「情報の整理」や「情報の最適化」が提案されている1)。これは,学習者が情報を記憶・処理できるように,与える情報の「構造の簡略化」や最適化を促進し,情報量を調節することである。
プログラムの形式的導出には,予約語と識別子の弁別が必要である。これらの弁別を容易にするために,ソフトウェアの設計に使われるUML(Unified Modeling Language)の一つのクラス図を使用する。クラス図はプログラムの骨格をプログラミング言語に依存しないダイヤグラムで表現することができる。Figure 2はFigure 1のプログラムをクラス図に変換した例である。
学習者にクラス図を提示することにより,単語の種類を減らし,識別子の注視を容易にする。次に,プログラムの形式的導出の手順を学ばせる。
本方法により,識別子と予約語の種類を調節でき,ワーキングメモリにかかる負荷を軽減することが期待される。
結 果
2015年度の後期に本学で開講されたコンピュータプログラミングA(Java言語入門)を対象とし,クラス図からのプログラムの形式的導出を行った。学習者へのアンケート調査の結果,51名中50名が理解できたと回答した。
考 察
従来,プログラム骨格の形式的導出は「おまじない」として何回も書いて覚えさせることが多かった。しかし,単語の種類は簡単なプログラム例(Figure 1)であっても11種類ある。ましてや,学習が進むと,種類の増加は避けられない。学習者は,予約語と識別子が混在したプログラムを書いて覚えながら,予約語と識別子の違いを理解し弁別する必要があった。このため,ワーキングメモリにかかる負荷は高まり,全ての学習者に望ましい環境ではなかった。
われわれはクラス図を用いることにより,「情報の構造化」と「情報の最適化」を行った。具体的にはクラス図を用いて識別子の抽出を容易にする。これにより,変更できる単語を先に注視させることができる。
本方法と従来方法を比較実験してはいないが,本方法はワーキングメモリにかかる負荷を軽減できると推測される。
参考文献
1) ワーキングメモリと特別な支援,湯澤美紀,河村暁,湯澤正通,北大路書房,2013