32
平成22年度卒業論文 PADを利用したパズル型 プログラミング学習システム 情報通信工学科 情報通信システム学講座 0710012 猪俣 順平 指導教員 寺田 実 准教授 提出日 2011年 1月28日

平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

平成22年度卒業論文

PADを利用したパズル型プログラミング学習システム

情報通信工学科 情報通信システム学講座

0710012 猪俣 順平

指導教員 寺田 実 准教授

提出日 2011年 1月28日

Page 2: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

1

概要

研究目的

近年,パーソナルコンピュータの普及などにより,急速に IT化が進んでいる. このような IT化

が進んだことにより,プログラマの需要が増加しており, プログラマを育成するために,情報系の学

術機関におけるプログラミング教育は,もはや当たり前となっている.

しかし,従来のプログラミング教育手法では, プログラミングの学習の前に実行環境や開発環境

を整えなければならず, またプログラム言語の文法理解に重点が置かれているため, 学習者のモチ

ベーションの低下を招いている. そこでより手軽にプログラミング学習できるシステムを提案する

ことを目的とし, 提案システムの実装、ユーザテストを行うことで, 実装したシステムの有用性を

評価した

方法

Problem Analysis Diagram(PAD)[1]というプログラムの処理の流れを図にする手法に着目し,

プログラミング学習者に対しアルゴリズム問題とその解答となる PADのブロックのみを提示し,

学習者は解答となる PADをパズルのように組み立てるだけで学習を行うことが出来るプログラミ

ング学習システムを提案する. そのようなインタフェースを持ったシステムを実装し,プログラミ

ング学習者の支援を行う.

結論

評価実験の結果から,提案システムを利用することにより従来のプログラミング教育手法に比べ

より手軽にプログラミング学習が行えることが示せた.

Page 3: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

2

目 次

第 1章 序論 5

1.1 背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.2 問題点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.3 目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.4 本論文の構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

第 2章 関連研究 7

2.1 Problem Analysis Diagram[1] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.1.1 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.1.2 特徴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.1.3 本研究との関連性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.2 NXTソフトウェア1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.2.1 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.2.2 本研究との関連性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.3 Visual Logic3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.3.1 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.3.2 本研究との関連性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.4 桑田らの研究 [2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.4.1 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.4.2 本研究との関連性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

第 3章 提案システム 12

3.1 システム概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.2 問題解答インタフェース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.2.1 画面構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.2.2 利用できる記号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.2.3 PAD実行機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.3 問題作成インタフェース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

第 4章 システムの実装 17

4.1 システム構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.2 PADデータの内部表現 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.2.1 PADクラス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.2.2 PADstring言語 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4.3 PAD実行機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

Page 4: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

3

第 5章 システムの評価 21

5.1 問題解答インタフェースに関する評価 . . . . . . . . . . . . . . . . . . . . . . . . . 21

5.1.1 評価方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

5.1.2 被験者 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

5.1.3 評価実験のタスク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

5.1.4 評価実験のアンケート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

5.1.5 実験結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

5.1.6 考察 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

5.2 問題作成インタフェースに関する評価 . . . . . . . . . . . . . . . . . . . . . . . . . 24

5.2.1 評価方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

5.2.2 被験者 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

5.2.3 評価実験のアンケート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

5.2.4 結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

5.2.5 考察 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

第 6章 結論 27

6.1 結論 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

6.2 今後の課題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

6.2.1 利用しやすいシステムの作成 . . . . . . . . . . . . . . . . . . . . . . . . . 27

6.2.2 システム使用による学習効果の評価 . . . . . . . . . . . . . . . . . . . . . . 27

6.2.3 新たな問題作成方法の実装 . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

6.2.4 配列・関数の実装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

6.2.5 PADブロックの順不同問題への対応 . . . . . . . . . . . . . . . . . . . . . 28

謝辞 29

参考文献 30

Page 5: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

4

図 目 次

2.1 PAD表示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.2 連接 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3 選択 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.4 連接 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.5 NXTソフトウェアの動作画面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.6 Visual Logicの動作画面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.7 桑田らの研究ツールの動作画面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.1 システムの画面構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.2 PAD実行機能の画面構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.3 問題作成インターフェースの画面構成 . . . . . . . . . . . . . . . . . . . . . . . . . 16

4.1 システムの構成図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.2 PADクラスの階層図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.3 PADstring言語表現例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

Page 6: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

5

表 目 次

3.1 使用する PAD記号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

5.1 タスクの内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

5.2 Q1,Q3,Q5(各タスクを正答できたか)の結果 . . . . . . . . . . . . . . . . . . . . 22

5.3 Q2,Q4,Q6(各タスクの被験者が感じた難易度)の結果 . . . . . . . . . . . . . . . 22

5.4 Q7の結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

5.5 Q8の結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

5.6 Q9の結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

5.7 Q10の結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

5.8 Q11の結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

5.9 Q1の結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

5.10 Q2の結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Page 7: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

6

第1章 序論

1.1 背景

近年,パーソナルコンピュータの普及などにより,急速に IT化が進んでいる. それに伴い,国や

企業における業務も IT化が進んでおり,現在ではパーソナルコンピュータを業務に用いるのが一

般的となっている. このような IT化が進んだことにより,プログラマの需要が増加しており, プロ

グラマを育成するために,情報系の学術機関におけるプログラミング教育は,もはや当たり前となっ

ている.

1.2 問題点

従来のプログラミング教育手法では, プログラミングの学習の前に実行環境や開発環境を整えな

ければならず, またプログラム言語の文法理解に重点が置かれているため, 「プログラムミングは

難しい」と感じ,プログラミングへの興味を失ってしまい,学習者のモチベーションの低下を招く可

能性がある.

1.3 目的

本研究では,上記の問題点を解消し,従来のプログラミング学習法に比べ,より手軽にプログラミ

ングの学習を行うため, パズル形式でアルゴリズムを組み立てる学習システムを提案する.

このシステムでは,アルゴリズム作成方法に Problem Analysis Diagram(PAD)[1]というプログ

ラムの処理の流れを図にする手法に着目した.

PADは,同種のプログラムの処理の流れを図にする手法であるフローチャートと比較して,アル

ゴリズムを簡潔に描くことが出来る. そのため,PADを用いることにより

• 正誤の判定が簡単,

• 新しい問題を作ることが容易,

という利点がある.

PADの詳細については 2.1節で述べる.

そこで PADをパズル形式で組み立てることでアルゴリズムを作成でき, 作成したアルゴリズム

を実行できる機能により学習者に分岐やループといったプログラム要素の動作を視覚的に理解支援

するインタフェースを備えたシステムを実装し, プログラミング学習者の学習支援することを目的

とする.

Page 8: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

第 1章 序論 7

1.4 本論文の構成

論文の構成について簡単に説明する.

本章では「序論」として本研究をはじめた背景と,問題点, そして目的について述べた.

第 2章では関連研究とそれらの抱える問題点について述べる.

第 3章では, 研究開発したシステムについてシステム全体の概要,及び機能詳細を提示する.

第 4章では,システムの実装について述べる.

第 5章では,システムに対して行った評価の方法や,結果,そこから導かれる考察を述べる.

第 6章では,評価に基づく結論を述べ,今後の課題について述べる.

Page 9: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

8

第2章 関連研究

2.1 Problem Analysis Diagram[1]

2.1.1 概要

Problem Analysis Diagram(PAD)は二村良彦らによって開発された,計算機プログラムを作成

するときにアルゴリズムやプログラムの処理の構造を図で表す手法である. (図 2.1).

PADは,構造化プログラミングというプログラムの個々の処理を小さな単位に分解し, 階層的な

構造にして表現する方式に基づいており, しばしばプログラミング教育の初歩として学習に用いら

れている.

図 2.1: PAD表示例

この例では1からnの平均値を求めるアルゴリズムの PADを表している.

2.1.2 特徴

プログラムを図で表現する技法としては,フローチャートという書き方が一般的である. しかし,

フローチャートは処理の順序を表す線を上下左右自由に描くことが出来るため, 同じアルゴリズム

に対して複数通りに図を描くことが出来てしまう. 一方,PADは基本的に1つの図でしか表せない

という特徴がある. そのため,プログラムの正誤判定を容易に行うことが出来る.

Page 10: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

第 2章 関連研究 9

PADは,構造化プログラミングの連接,選択,反復と呼ばれる3つの基本制御構造の合成として

簡潔に表現される. 以下で,PADにおける連接,選択,反復の表現方法について説明する

連接  

処理を2つ以上縦に並べ,それぞれを線でつなげて表現する.

処理1を行ってから処理2を行う.

図 2.2: 連接

選択  

二股に分かれたブロックで分岐を表現する.

条件が真 (true)なら処理 1を,偽 (false)なら処理 2を行なう.

図 2.3: 選択

反復  

線が描かれたブロックで反復処理を表現する.

条件が偽 (false)になるまで次の処理を繰り返す.

• 条件を判定

• 処理 1を行う

図 2.4: 連接

反復には,条件を先に判定してから反復を行う前判定反復と一度内部の処理 1を実行してか

ら条件を判定して反復を行う後判定反復がある.

Page 11: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

第 2章 関連研究 10

2.1.3 本研究との関連性

本研究では,プログラミングの学習に PADを利用する. 予めプログラミング教育の教員によって

用意された PADをプログラミング学習者に組み立てさせることにより学習を行う. 詳細について

は 3章で述べる.

2.2 NXTソフトウェア1

2.2.1 概要

NXTソフトウェアは,レゴ社のMINDSTORMS2と呼ばれるプログラムが組み込める自立型ロ

ボットに対して,ロボットの動きを制御するプログラムの作成を行うソフトウェアである (図 2.5).

このソフトウェアの特徴として,ロボットの一命令を表すプログラムブロックを順番に並べてい

くことで, 一連の動作を行うプログラムを作成できるだけでなく, ループや分岐といったプログラ

ミングの基本的な要素も備えている. 例として,ルールブロックと呼ばれるブロックで,複数のブ

ロックを囲むことにより, 条件によって内部の命令を繰り返すループ処理を記述することが出来る.

図 2.5: NXTソフトウェアの動作画面

2.2.2 本研究との関連性

NXTソフトウェアはビジュアルプログラミング言語と呼ばれる,プログラム要素をテキストで

指定するのではなく,画像などをグラフィカルに操作することでプログラムを作成するプログラミ

1NXT ソフトウェア : http://www.legoeducation.jp/mindstorms/products/software.html .2MINDSTROMS http://mindstorms.lego.com/en-us/Default.aspx .

Page 12: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

第 2章 関連研究 11

ング言語を利用している. 本研究では PADのブロックという視覚表現を,プログラムの要素として

扱うことによりプログラミングの学習を行う.

2.3 Visual Logic3

2.3.1 概要

Visual Logicはフローチャートの組み立て,実行を行うことが出来るシステムである (図 2.6). プ

ログラミング初心者のアルゴリズム学習を目的として,プログラミングに必須の変数,入出力,ルー

プなどの概念を動きを観察することによって学ぶことが出来る. また,このシステムで作成したフ

ローチャートは他の高級言語に変換することが出来る.

図 2.6: Visual Logicの動作画面

左図は作成したフローチャート,下図は各変数の値を拡大して表示している.

2.3.2 本研究との関連性

Visual Logicでは,フローチャートによりアルゴリズムを作成し実行を行うことによってアルゴ

リズムの学習を行う. 本研究では,フローチャートより PADの表現がよりアルゴリズムを簡潔に書

け,また構造化プログラミングの学習に適していると考え PADをアルゴリズムの学習に利用した.

3Visual Logic : http://www.visuallogic.org/ .

Page 13: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

第 2章 関連研究 12

2.4 桑田らの研究 [2]

2.4.1 概要

桑田らは,Cプログラミングでのアルゴリズム作成の学習を行う際に, PADを利用することで学

習者の理解支援を行うツールを実装した. このシステムでは,学習者はアルゴリズムを PAD形式で

対話的に作成し, 作成した PADを C言語形式のソースコードに変換を行う. 学習者は,作成した

PADが C言語でどのように表現されるのか観察しながら, Cプログラミングでのアルゴリズム作

成の学習を進める.

図 2.7: 桑田らの研究ツールの動作画面

2.4.2 本研究との関連性

本研究と同様に PADを利用しアルゴリズムの学習支援を行っている. 桑田らの研究では,学習者

が一からアルゴリズムを作成して学習を行うのに対し,本研究では予め用意されている PADを学

習者に組み立てさせることにより学習を行う方法を採用しているため,より手軽に学習を行うこと

が出来る.

また,桑田らの研究では,学習者が新しいアルゴリズムを作成するため解答というものが存在し

ない.そのため,作成したアルゴリズムが正しい動作を行うのか学習者自身で確かめなければなら

ない. 一方,本研究では解答の用意された問題に対し学習を行うため, 作成したアルゴリズムが正し

い動作を行うのかシステムが判断することが出来る.

Page 14: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

13

第3章 提案システム

3.1 システム概要

本研究では,プログラミング学習者に対しアルゴリズム問題と PADのブロックのみを提示し,解

答となる PADをパズルのように組み立てるだけで学習を行うことが出来るプログラミング学習シ

ステムを提案する.

また,上記のような学習を行うための問題解答インタフェースと, プログラミング教育の教員が

新たな問題を作成し登録を行う問題作成インタフェースの実装を行った.それぞれの詳細について

は次節以降で述べる.

3.2 問題解答インタフェース

システムを利用する際に,

• アルゴリズム問題

• 問題に対する解答の PAD

をプログラミング教育の教員が事前に用意しておく. システムは,解答の PADを部品(PADの一

命令)に分解し, 学習者に対し,アルゴリズムの問題と,分解された部品の集合のみを提示する.

学習者は与えられた問題に対して,その解答の PADとなるように分解された部品を組み立てて

いく. これにより,学習者は部品をパズルのように組み立てるだけで,プログラミングの学習を行う

ことが出来る.

PADの組み立ては,ブロックを PADの任意の位置にドラッグ&ドロップすることにより行うた

め,システムの操作はすべてマウス操作で行うことが出来る.

PADを利用することで,プログラムの処理をブロックで記述していくため,括弧の閉め忘れなど

の文法的なエラーが発生しないという利点がある.

3.2.1 画面構成

図 3.1にシステムの画面構成を示す.

システムの画面は,以下の4つで構成されている.

問題文  

学習者にアルゴリズム問題を表示している.

PAD組み立て部  

学習者がPADの組み立てを行うフィールドを表示している. PADのブロックをドラッグ&ド

ロップすることにより, PADの任意の位置に挿入したり,組み立てた PADからブロックを除

去できる.

Page 15: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

第 3章 提案システム 14

解答ボタン  

作成した PADと解答の PADとの比較を行うためのボタンを表示している. 不正解であった

場合,最初に間違っている PADのブロックを赤枠で囲み示す機能を持つ.

PAD実行ボタン  

現在構築中の PADに対して実行を行うボタン. このボタンを押すことにより PAD実行機能

画面に移行する.

3.2.2 利用できる記号

このシステムで利用する PADの記号を表 3.1に示した.

表 3.1: 使用する PAD記号

記号 名称 用法

代入式 代入式を処理する

キーボード入力 変数にキーボード入力を行う

画面出力 変数の値を画面に出力する

分岐 条件式を判断し処理を選択する

前判定ループ ループ終了条件式をループに入る前に判定する

後判定ループ ループ処理の後にループ終了条件式を判定する

3.2.3 PAD実行機能

このシステムでは,PADを組み立ててアルゴリズムの学習を行えるだけでなく, 構築途中の PAD

を実行し,PADがどのような振る舞いをするのか学習者が確かめることが出来る機能を持つ.

この機能を実行すると,現在構築中の PADを実行し, PADの最初から最後のステップまでの,変

数の変化を1ステップずつ見ていくことが出来る. 図 3.2にこの機能の画面構成を示す.

PAD実行機能の画面は,以下の8つで構成されている.

Page 16: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

第 3章 提案システム 15

PAD表示部  

構築中の PADを表示するフィールド. 現在のステップで実行するブロックを青枠で囲んで表

示する.

現在のステップ数  

現在のステップ数を表示するフィールド.

開始位置移動/実行終了位置移動ボタン  

現在のステップから,実行開始位置/実行終了位置まで移動するボタンを表示している.

NEXT/PREVIEWボタン  

現在のステップから,実行するステップを 1つ進める/戻るボタンを表示している.

式・結果  

現在のステップで実行するブロックの式と実行結果を表示している.

変数の値  

現在のステップでの,それぞれの変数の値を表示している.

出力  

現在のステップまでに,出力ブロックによって出力された値を表示している.

終了ボタン  

PAD実行機能を終了し,PAD組み立て画面表示に戻る.

3.3 問題作成インタフェース

このシステムでは,ユーザ自身で新しい問題を作り,登録することが出来る機能を持つ. 問題を投

稿するには,アルゴリズム問題文と問題の解答となる PADを作成し,その2つをセットとして新し

く登録する. この機能の対象として,プログラミング教育の教員を想定している. そのため,解答の

PADの作成方法は 4.2.2節で述べる文字列表現による書き込みを採用した.

図 3.3にこの機能の画面構成を示す.

問題作成インタフェースの画面は,以下の4つで構成されている.

問題文入力欄  

アルゴリズム問題を入力するためのテキストフィールドを表示している.

PADデータ入力欄  

問題文の解答となる PAD を入力するためのテキストフィールドを表示している. ここで

は,4.2.2節で紹介する PADstring言語の記法に沿って PADを表現し入力する.

投稿ボタン  

問題作成者の入力したアルゴリズム問題と作成した PADをセットで新しい問題として登録

するためのボタンを表示している.

PAD確認ボタン  

PAD組み立て部で作成した PADstring言語で書かれた PADを GUI上で確認するためのボ

タンを表示している.

Page 17: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

第 3章 提案システム 16

図 3.1: システムの画面構成

図 3.2: PAD実行機能の画面構成

Page 18: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

第 3章 提案システム 17

図 3.3: 問題作成インターフェースの画面構成

Page 19: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

18

第4章 システムの実装

4.1 システム構成

本システムは,クライアント側を Java Applet,サーバ側を Perlで作成された CGIで構成した.

クライアント側では,ユーザインタフェース表示とサーバとの通信を行う. クライアント側のプロ

グラムは Java4によって実装した. またサーバ側では,問題作成インタフェースで作成された問題

の登録を行う. 図 4.1にシステム構成図を示す.

図 4.1: システムの構成図

4.2 PADデータの内部表現

4.2.1 PADクラス

本研究では,ユーザの作成した PADと解答の PADとの比較を行ったり, PADの保存・実行のた

めに PADを解析しやすい形式のデータに変換する必要があった. そのため,PADをデータに変換

する PADクラスを実装した. PADクラスは代入式や分岐処理等のブロックの構造を持つクラスの

集合である PADElementクラスと PADクラスの配列を持つクラスである PADSeqenceクラスに

大きく2つに分けることが出来る. PADクラスの階層図を図 4.2に示す.

4Java テクノロジ- Sun Microsystem : http://jp.sun.com/java/ .

Page 20: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

第 4章 システムの実装 19

図 4.2: PADクラスの階層図

それぞれの説明を以下に示す.

PADElementクラス

• Assignクラス

代入式の文字列を保存する.

• Inputクラス

キーボード入力を行う対象の変数を保存する

• Outputクラス

画面出力を行う対象の変数を保存する.

• Ifクラス

分岐条件式と条件式が真/偽のとき実行する PADSeqenceクラスを内部に持つ.

• Whileクラス

前判定条件式と条件式が真のとき反復実行する PADSeqenceクラスを内部に持つ.

• Repeatクラス

後判定条件式と条件式が真のとき反復実行する PADSeqenceクラスを内部に持つ.

PADSeqenceクラス

PADクラスの配列を持ち,ブロックがどのような順序で並んでいるか保存する.

Page 21: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

第 4章 システムの実装 20

4.2.2 PADstring言語

上記で PADクラスについて述べたが,PADクラスのデータを保存する際や,問題作成時に PAD

データを書き込む際に使用するためPADのデータを文字列で表現するPADstring言語を作成した.

以下で PADstring言語の表現方法について示す.

• Assignクラス

ASSIGN

代入式

• Inputクラス

INPUT

変数

• Outputクラス

OUTPUT

変数

• Ifクラス

IF

分岐条件式

分岐条件式が真のとき実行する PADSeqenceクラスの PADstring言語

分岐条件式が偽のとき実行する PADSeqenceクラスの PADstring言語

• Whileクラス

WHILE

前判定反復条件式

反復条件式が真のとき反復実行する PADSeqenceクラスの PADstring言語

• Repeatクラス

REPEAT

後判定反復条件式

反復条件式が真のとき反復実行する PADSeqenceクラスの PADstring言語

• PADSeqenceクラス

BEGIN

配列に格納されているブロックの順番に PADstring言語で記述

END

図 4.3に「1~10の総和問題」を解く PADの PADstring言語での表現例を示す

Page 22: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

第 4章 システムの実装 21

図 4.3: PADstring言語表現例

4.3 PAD実行機能

PADを実行するに当たり,PADのそれぞれのブロックがどのような順序で実行されるのかを調

べるため,PADのデータに対して構文解析を行い構文木に変換する必要がある. しかし、PADが構

文木を表わしている為,PADクラスで表現された PADデータを調べることにより,PAD実行時ブ

ロックの実行順を調べることが出来る.

そして,実行順の1ステップずつそれぞれのブロックが持つ代入式や,条件式の解釈・評価を行

い,1ステップごとの変数の値を保存しておく. それにより,PAD実行による1ステップずつの変数

の変化を調べることが出来る. 計算式の解釈・評価にはオープンソースの四則演算実行クラス5を

使用した.

四則演算実行クラスは,式が書かれた文字列を解釈し計算を行う. 変数の型には整数型と論理型

が使用でき,演算子には Javaで使用する全ての演算子を利用できる.

5四則演算実行クラス(JDK1.4 版): http://www.ne.jp/asahi/hishidama/home/tech/soft/java/eval.html .

Page 23: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

22

第5章 システムの評価

システムを「問題解答インタフェース」と「問題作成インタフェース」の項目に分け, それぞれ

についての評価実験を行った.

5.1 問題解答インタフェースに関する評価

5.1.1 評価方法

事前に筆者が用意したタスク1からタスク3の3つのアルゴリズム問題を被験者に提案システム

を使って解答してもらった後,アンケートにより学習内容の理解度と使用感を評価した.

5.1.2 被験者

被験者は,本学情報・通信工学科の講義「情報工学工房」の受講者1年生5名であり, プログラ

ミング経験の少ない学生に対し実験を行った.

5.1.3 評価実験のタスク

評価実験の主旨,PADについての説明およびシステムの説明の後,3つのタスクを実行させた. た

だしタスク1では練習のため簡単な問題を用意した. それぞれのタスクの問題内容と解答に使用す

る PADのブロック数を表 5.1に示す.

表 5.1: タスクの内容タスク 内容 ブロック数

タスク1 総和問題 6

タスク2 階乗値の計算問題 9

タスク3 複数入力される入力値の最大値判定問題 8

5.1.4 評価実験のアンケート

タスク達成後,被験者にアンケートを実施した. アンケートの質問項目は以下の 12項目である.

Q1.タスク1を正答することは出来ましたか?

 1.はい  2.いいえ

Q2.タスク1の難易度を5段階で評価してください

 (簡単) 1 2 3 4 5 (難しい)

Page 24: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

第 5章 システムの評価 23

Q3.タスク2を正答することは出来ましたか?

 1.はい  2.いいえ

Q4.タスク2の難易度を5段階で評価してください

 (簡単) 1 2 3 4 5 (難しい)

Q5.タスク3を正答することは出来ましたか?

 1.はい  2.いいえ

Q6.タスク3の難易度を5段階で評価してください

 (簡単) 1 2 3 4 5 (難しい)

Q7.以前から Problem Analysis Diagram(PAD)の使い方を知っていましたか?

 1.はい  2.いいえ

Q8.このシステムを利用することによって Problem Analysis Diagram(PAD)の使い方が理解でき

ましたか?

 (理解できなかった) 1 2 3 4 5 (理解できた)

Q9.PAD実行機能を使用しましたか?

 1.はい  2.いいえ

Q10.Q7で「はい」と回答した方におたずねします

実行機能を使用することにより問題解答の役に立ちましたか?

 (役に立たなかった) 1 2 3 4 5 (役に立った)

Q11.通常のプログラミング学習法(実際に Javaや C言語を記述・コンパイル・実行して学習)に

比べ, 気軽に学習を行うことが出来ましたか?

(出来なかった) 1 2 3 4 5 (出来た)

Q12.このシステムの良かった点と悪かった点を記述してください

5.1.5 実験結果

表 5.2: Q1,Q3,Q5(各タスクを正答できたか)の結果評価(1:はい 2:いいえ) 1 2

タスク1 5 0

タスク2 5 0

タスク3 5 0

表 5.3: Q2,Q4,Q6(各タスクの被験者が感じた難易度)の結果評価(簡単 1 ⇔ 困難 5) 1 2 3 4 5 平均

タスク1 4 0 1 0 0 1.4

タスク2 1 1 2 1 0 2.6

タスク3 1 2 3 0 0 2.4

Page 25: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

第 5章 システムの評価 24

表 5.4: Q7の結果評価(1:はい 2:いいえ) 1 2

以前から PADを知っていたか 0 5

表 5.5: Q8の結果評価(悪 1 ⇔ 良 5) 1 2 3 4 5 平均

PADの使用法の理解 0 0 0 0 5 5.0

表 5.6: Q9の結果評価(1:はい 2:いいえ) 1 2

PAD実行機能を使用したか 5 0

表 5.7: Q10の結果評価(悪 1 ⇔ 良 5) 1 2 3 4 5 平均

PAD実行機能が有用か 0 1 0 2 2 4.0

表 5.8: Q11の結果評価(悪 1 ⇔ 良 5) 1 2 3 4 5 平均

気軽に学習を行えたか 0 1 0 2 2 4.0

Q12では以下のような意見や感想を頂いた.

良い点

• パズル感覚でアルゴリズムの学習が出来て楽しい.

• PAD実行機能によりプログラムがどのように動いているのか分かりやすかった.

• 直感的で分かりやすい

悪い点

• PADが縦に長くなったとき,上下に移動するためのスクロール操作が思っていたのと逆方向

• ブロックを PADに追加しても見た目に変化がないので,PADに追加できたのか分かりにくい

提案

• PADに配置されたブロックの枠線の色・太さを変えると配置されていることが分かりやすい

と思う

• ブロックの命令種ごとに一時的に表示・非表示を選択できると良い.

Page 26: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

第 5章 システムの評価 25

5.1.6 考察

アンケート結果の表 5.2を見ると,全員全ての問題に対し正答することが出来ていた.また表 5.3

より3つのタスクの問題を被験者がどの程度の難易度に感じたか調べたところ, それぞれ平均が

1.4,2.6,2.4とどれも比較的簡単に感じていた. この結果から,提案システムによりパズル形式でア

ルゴリズムの学習を行っても被験者は混乱を起こすことなく,スムーズに学習を行うことが出来て

いたことが分かる.

次に表 5.4を見ると,被験者全員が実験を行うまで PADを知らなかったと答えた.しかし,表 5.5

よりこのシステムを利用することにより PADの使用方法を理解できたかの質問に対し, 被験者全

員が 5と評価しており,PADの理解支援に対し非常に高い学習効果が得られた.

また,表 5.6を見ると被験者全員が問題解答中に PAD実行機能を使用したと答えた. 使用した被

験者に PAD実行機能について有用であったかの質問では,表 5.7のように平均 4.0と高評価が得ら

れた.評価で一人2をつけた被験者がいたが, 今回用意した問題では実行機能を使用せずとも簡単

に答えられたため,正答後の確認でしか使用しなかったためであり, もっと複雑な問題であれば役

に立つと思うという意見であった.

PAD実行機能に関するアンケートの意見としては,プログラム内の変数の変化の遷移を1ステッ

プずつ見ることが出来,プログラムがどう動いているのか理解しやすかったといった意見があった.

この意見から,PAD実行機能は問題解答の支援を行うだけでなく, プログラムの動作の理解支援の

効果もあることが分かる.

このシステムの学習法が通常のプログラミング学習法(実際に Javaや C言語を記述・コンパイ

ル・実行して学習)に比べ,気軽に学習を行うことが出来たかの質問では,表 5.8より平均 4.0と高

評価を得られた.アンケートの意見では,パズル感覚でアルゴリズムの学習が出来て楽しく学習で

きるといった意見や,マウス操作で学習できるので直感的で分かりやすいという意見があった.

システム全体の使用感に関する意見としては,スクロール操作が直感的でないという意見や, PAD

にブロックが配置されているのか分かりにくいといった意見があった. よって,今後より使いやす

いシステムを構築するため,これらの問題を改善していく.

5.2 問題作成インタフェースに関する評価

5.2.1 評価方法

事前に筆者が用意したアルゴリズム問題とその解答の PADを被験者に提示し, 被験者に提案シ

ステムを使って新たな問題として登録してもらい,アンケートによりシステムの使用感を評価した.

作成する問題には,「入力した値が素数であるか判定するアルゴリズム」を使用し,解答の PADに

使用する PADのブロック数は 9個であった.

5.2.2 被験者

被験者は電気通信大学の学生 9名であり,全員数年にわたりプログラミングの学習を受けている.

Page 27: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

第 5章 システムの評価 26

5.2.3 評価実験のアンケート

タスク達成後,被験者にアンケートを実施した. アンケートの質問項目は以下の 3項目である.

Q1.与えられた問題を作成し,登録できましたか?

 1.はい  2.いいえ

Q2.問題の作成方法の作りやすさを5段階で評価してください

 (作りづらい) 1 2 3 4 5 (作りやすい)

Q3.システムについてコメント等ありましたら自由に記入してください

5.2.4 結果

アンケートの結果を表 5.9,表 5.10に示した.

表 5.9: Q1の結果評価(1:はい 2:いいえ) 1 2

問題を登録できたか 9 0

表 5.10: Q2の結果評価(簡単 1 ⇔ 困難 5) 1 2 3 4 5 平均

問題作成の作りやすさ 0 3 0 3 3 3.7

Q3では以下のような意見や感想を頂いた.

良い点

• プログラムみたいに書けて楽だった

• 途中までの作成結果を確認できるので修正しやすい

悪い点

• 慣れないと難しい

• シンタックス的な構文エラーがあった場合明示して欲しい

提案

• 作成途中,随時作成したところまでの PAD図を作成画面の横に表示して確認したい

• PADをマウス操作で組み立てて問題作成したい

• C言語などの他の言語のプログラムから PADに変換し問題作成できると良い

Page 28: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

第 5章 システムの評価 27

5.2.5 考察

アンケート結果の表 5.9を見ると,全員問題を作成し登録できたと答えていた. また,筆者が問題

が正しく登録されているか個別に調べたところ,全て正しく登録されていた.

次に,問題作成インタフェースの使用感については,表 5.10より平均 3.7となっており,まずまず

の評価であった. しかし評価5を付ける者が3人いる一方で,評価2を付ける者も3人おり評価が

分かれる結果となった. これは,現在の問題作成方法である PADデータを文字列表現で作成しても

らうという方法にあり, アンケートでは慣れないと難しいといった意見や,PADをマウス操作で組

み立てて問題の PAD を作成したいといった意見があった.

そのため,今後現在の問題作成方法だけでなく,PADをマウス操作で組み立てて作成する方法や

C言語など他の言語のプログラムを入力すると PADに変換する方法など新たな問題作成方法を実

装し,問題作成者の作成しやすい方法を選択できるようにする.

また,その他の提案として,作成途中随時作成したところまでの PAD図を作成画面の横に表示し

て確認したいという意見があった.この機能を追加することにより,どこまで作成したのかや,入力

エラーがある場合より早くエラーを見つけることが出来ると予想されるため,実装していきたい.

Page 29: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

28

第6章 結論

6.1 結論

本研究では,与えられた問題文から PADのブロックを組み合わせて問題を解くアルゴリズムの

PADを作成するというプログラミング学習支援システムを提案し,学習者が解答を行うインタフェー

スと,プログラミング教育の指導者が新たな問題を作るインタフェースを実装した. その結果,パズ

ル感覚で気軽にプログラミングの学習を行うことが出来るため,プログラミング学習者のモチベー

ションを向上させることが出来た.

6.2 今後の課題

6.2.1 利用しやすいシステムの作成

評価実験から得られた結果と意見を参考をもとに,今回実装したシステムの改良を行うことで, よ

り使いやすいインターフェイスを目指す.

具体的に,問題解答インタフェースでは,

• スクロール操作の改良,

• ブロックが PADに組み込まれているのか明示的に示す,

問題作成インタフェースでは,

• 問題作成中シンタックス的な構文エラーを明示する,

• 問題作成中,作成途中の PADを随時横の画面で同時表示する,

を行う.

6.2.2 システム使用による学習効果の評価

今回の評価実験では,短期的使用による学習のし易さとシステムの使用感についてのみ評価を行っ

た. しかし,従来のプログラミング教育手法と比較してこのシステムがプログラミング教育に有用

であるか評価を行うことが出来なかったため, 今後有用性を調査していく必要がある.

6.2.3 新たな問題作成方法の実装

問題作成インタフェースの評価実験から得られた結果と意見を参考にし,現在の PADstring言語

の記述による解答の PAD作成方法だけでなく,PADをマウス操作で組み立てて作成する方法や C

言語など他の言語のプログラムを入力すると PADに変換する方法といった新たな問題作成方法を

実装し,問題作成者の作成しやすい方法を選択できるようにしていく.

Page 30: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

第 6章 結論 29

6.2.4 配列・関数の実装

現在のシステムでは,配列や関数といったプログラム要素の使用に対応していないため,今後実

装を行っていく. 配列や関数を利用できるよう実装することで,再帰処理やソートアルゴリズムな

ど, より複雑なアルゴリズムを作成でき, プログラミング学習者がより多くの問題に挑戦すること

が出来るようになる.

6.2.5 PADブロックの順不同問題への対応

現在のシステムでは,学習者の組み立てた PADが解答の PADと等しいか, ブロックの順序を確

かめることで確認している. しかし,解答の PADと同じ順序でなく,ブロックの順序を入れ替えて

も問題文を解くアルゴリズムが作成できてしまうことがあり,この場合正しいアルゴリズムにもか

かわらずシステムでは不正解と判断されてしまう.

この問題の対応策として2つの方法を現在考えている. 1つめの方法は,現在のブロックの順序

を確かめて比較を行うのではなく,PADを実行することにより正しいアルゴリズムであるか判断す

る. 2つめの方法は,ブロックを使う順序に制限を付け解答の PAD以外の正しいアルゴリズムとな

る PADを作成できないようにする.

今後他の方法も考えた上で, 問題の対策を行っていく.

Page 31: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

30

謝辞

本研究は電気通信大学情報通信工学科寺田研究室において,寺田 実准教授の御指導の下で行わ

れました. 寺田 実准教授には,本研究を進めるにあたり,様々な御助言や御指導を頂きました. 心

より御礼申し上げます.

また, 東京大学情報基盤センター助教の丸山 一貴氏にも同様に研究室輪講や論文執筆等で様々な

御助言や御指導を頂きました. 深く感謝致します.

博士課程四年の高須賀 清隆さん,修士課程二年の井桁 正人さん, 佐藤 和哉さん,修士課程一年

の田中 英人さん, 学部四年の大井 彩香さん, 太田 侑介さん, 神田 尚子さん, 添田 洋貴さん,野田

口 宗さんには,評価実験や研究についての様々な助言や研究室での生活に関することなど,他に

も様々な点でお世話になりました.本当にありがとうございました.

評価実験に御協力して頂いた,本学情報・通信工学科の講義「情報通信工学科」の受講者の方々

にも心から感謝致します.

Page 32: 平成22年度卒業論文 PADを利用したパズル型sp.cei.uec.ac.jp/thesis/inomata_sotsuron.pdf · pad は, 構造化プログラミングの連接, 選択, 反復と呼ばれる3つの基本制御構造の合成として

31

参考文献

[1] Y.Futamura, T.Kawai, H.Horikoshi, M.Tsutsumi. “Development of computer programs by

problem analysis Diagram(PAD)”. ICSE ’81 Proceedings of the 5th international conference

on Software engineering , pp.325-332, 1981.

[2] 石田真樹,桑田正行. “Cプログラミングの学習支援に関する研究 : PADエディタを用いたア

ルゴリズム学習支援システムの構築”. 情報処理学会研究会報告, 2000-CE-58, pp.41-48, 2000.