平成
24
年度
学士学位論文
迷路を題材とした
子ども用プログラミング学習ツールの開発
Development of the programming’s learning tool
for children be derived from maze
1130353
田中 忍
指導教員
高田 喜朗
2013
年
3
月
1
日
要 旨
迷路を題材とした
子ども用プログラミング学習ツールの開発
田中 忍
近年, 情報技術の発達と普及にともない, プログラミングに関する知識を持つ人材の必要 性, また, 早期のプログラミング教育の必要性が高まっている. しかし, C言語やJavaなど のテキスト形式のプログラミング言語は, 英単語や独特の文法でプログラムを作成するため, 小学生などの初等教育段階の子どもがそれらのプログラミング言語でプログラミングに興味 を持ちプログラミングに関する知識を理解するのは難しいと考えられる. そこで本研究では, 初等教育段階の子どもがプログラミングに興味を持ち遊び感覚でアル ゴリズムやプログラムの処理の流れなどを理解するために, 迷路を題材とした子ども用プロ グラミング学習ツールを開発する. 提案システムは, 子どもでも容易にできるようにボタン を押して命令を追加していき迷路の中にいるキャラクターをゴールに導くようプログラムさ せる環境というものになった. そして, 小学1年生と6年生の1人ずつ計2名が提案システムを用いて予備的な実験を 行った. 実験結果から, 提案システムでプログラミングに興味を持たせ, それをある程度持続 させられることと少しの助言を与えれば提案システムで自然に繰り返し命令など使えるよう になることが確認できた. キーワード 迷路, 子ども用プログラミングツール, プログラミング学習Abstract
Development of the programming’s learning tool
for children be derived from maze
Shinobu Tanaka
Out of growth and diffusion of information technology in recent days, demand of people with programming knowledge or demand of early programming instruction are increasing. In text programming language such as C and Java a program is written using English words and a particular grammar, and thus, it is difficult for children such as elementary school students to take an interest in programming and understand programming knowledge by these programming language.
Therefore in this study, for making children of elementary education step take an interest in programming and understand algorithms and programming process etc, we develop a programming learning tool for children based on solving maze. The proposed system is an environment in which a user creates a program to lead a character in a maze to the goal by adding instructions using buttons.
Then, we conducted an ecperinent on one first grade and one sixth grade of ele-mentary school students. From the experimental result, we coufirwed that children of elementary education step could take an interest in programming and continue it for more than twentyminutes, as well as that they learned to use flow-control instructions such as repetition by the proposed system.
目次
第1章 はじめに 1 1.1 研究背景 . . . 1 1.2 論文の構成 . . . 2 第2章 関連研究 3 2.1 Scratch . . . 3 2.2 すご@ぷろ . . . 5 2.3 Google Blockly . . . 7 第3章 提案システム 10 3.1 提案システムの構成 . . . 10 3.2 提案システムの外観 . . . 11 3.3 命令について . . . 15 3.4 クリアとゲームオーバーについて . . . 17 第4章 実験 21 4.1 実験内容 . . . 21 4.2 被験者からの意見と考察 . . . 22 第5章 まとめ 23 5.1 結論. . . 23 5.2 今後の課題 . . . 24 謝辞 25目次
図目次
1.1 C言語のプログラム . . . 1 1.2 Javaのプログラム . . . 1 2.1 Scratchの外観. . . 3 2.2 Squeak Etoysの外観 . . . 4 2.3 部屋のイメージ図 . . . 5 2.4 すご@ぷろのプログラミング . . . 6 2.5 図2.4の擬似コード . . . 6 2.6 Google Blocklyの外観 . . . 7 2.7 レベル4のステージ . . . 8 2.8 レベル10のステージ . . . 8 3.1 提案システムの外観 . . . 11 3.2 ウィンドウの左側 . . . 12 3.3 選択メニューがなくボタンが入力不可である状態 . . . 13 3.4 ウィンドウの中央 . . . 13 3.5 ウィンドウの右側 . . . 14 3.6 キャラクターの実行例 . . . 15 3.7 「1マスまえへすすむ」の実行例 . . . 15 3.8 「まえにかべがあったらひだりにかいてん」の実行例 . . . 16 3.9 「ひだりにみちがあればひだりにかいてん」の実行例 . . . 16 3.10 「まえにかべがあるまでまえへすすむ」の実行例 . . . 17 3.11 「わかれみちがあるマスまでまえへすすむ」の実行例 . . . 17図目次 3.13 ゴールのマスに着いていない例 . . . 18 3.14 前に壁のマスがあるときにまえへすすむ系の命令を実行したときの例 . . . . 19 3.15 チェックポイントを通過せずにゴールのマスにいる例 . . . 19 3.16 分かれ道があるマスがないときの「わかれみちがあるマスまでまえへすす む」の実行例 . . . 20 A.1 迷路の初期の状態 . . . 27 A.2 ゲームオーバーになった状態 . . . 27 A.3 再挑戦した迷路の初期の状態 . . . 28 A.4 クリアした状態 . . . 28
第
1
章
はじめに
1.1
研究背景
近年, 情報技術の発達と普及にともない, プログラミングに関する知識を持つ人材の必要 性, また, 早期のプログラミング教育の必要性が高まっている. しかし, 一般的にプログラミングで用いるC言語やJavaなどのテキスト形式のプログラ ミング言語でプログラムを作成するときには, 図1.1, 1.2のように英単語や独特の文法で記 述しなければならないため, 小学生などの初等教育段階の子どもがそれらのプログラミング 言語でプログラミングに興味を持ちプログラミングに関する知識を理解するのは難しいと考 えられる. #include <stdio.h> int main(void){ printf("Hello World \n"); return(0); } 図1.1 C言語のプログラムpublic class Sample{
public static void main(String args[]){ int a,b,c; a = 1; b = 2; c = a + b; System.out.println(c); } } 図1.2 Javaのプログラム
1.2 論文の構成 C言語やJavaなどのテキスト形式のプログラミング言語ではなく, 命令が記述されたタイ ルを組み合わせることによってプログラムを作成できる環境である Scratch[1][2]のような 視覚的にわかりやすくプログラミングができる環境が望ましいと考えられる. しかし, それだけでは, 子どもがプログラミングに興味を持ちプログラミングに関する知 識を理解することは期待できない. そこで, 先行研究で開発されたすご@ぷろ[3]やGoogle Blockly[4] のような, ゲーム形式の問題をプログラミングで解くツールが有用と考えられる. このようなツールを使って初等教育段階の子どもが問題をプログラミングで解くことによ り, その楽しさを感じて遊び感覚でプログラミングに関する知識を理解できるのではないか と考えられる. 本研究では, 初等教育段階の子どもがプログラミングに興味を持ち遊び感覚でアルゴリズ ムやプログラムの処理の流れなどを理解させるために, 迷路を題材とした子ども用プログラ ミング学習ツールを開発する. 迷路を採用した理由として, 迷路の中にいるキャラクターをゴールに導くアルゴリズムを 考えるのは子どもでも容易にでき, そのアルゴリズムをもとに作成したプログラムでキャラ クターがどういう動きをするのかを確認することによりプログラムの処理の流れを理解でき るのではないかと考えたからである. また, プログラムの長さが短ければ高得点が入ったりチェックポイントを通過しなければ クリアにはならないなどといった機能を付け加えることで子どもにシステムを飽きさせず, 長さが短いプログラムの作成に挑戦したりすることでより深く考えることが期待できる.
1.2
論文の構成
本論文の以降の構成は, 2章では, 関連研究に触れ, 参考にした点, 提案システムとの異な る点について述べる. 3章では, 提案システムの構成, 利用方法や動作について述べる. 4章 では, 提案システムの評価について被験者をとり実験した内容と結果を述べる. 5章では, ま とめと今後の課題について述べる.第
2
章
関連研究
2.1
Scratch
Scratch は, Squeak Etoysをベースにして MITメディアラボのライフロングキンダー ガーテングループが開発した小学生向けの教育用のプログラミング環境である[1][2]. 図2.1
は, Scratchの外観であり, 命令が書かれたタイルを組み合わせることでスプライト(画像オ ブジェクト)を動かすプログラムを作成する.
2.1 Scratch
Squeak Etoysは, 「パーソナルコンピュータの父」といわれているAlan Kay博士が開 発した小学生向けの教育用のプログラミング環境である[5]. 図2.2は, Squeak Etoysの外 観であり, 命令が書かれたタイルを組み合わせることで利用者が書いた絵を動かすプログラ ムを作成する. 図2.2 Squeak Etoysの外観 C言語やJavaなどのテキスト形式のプログラミング言語のような環境ではなく, Scratch やSqueak Etoysのような視覚的にわかりやすいプログラミング環境で子どもでも容易にプ ログラミングが出来ると考え, Scratchを参考にして, 提案システムも視覚的にわかりやすい プログラミング環境の実装を検討した.
2.2 すご@ぷろ
2.2
すご
@
ぷろ
すご@ぷろは「双六をモチーフにしたプログラミング」の略でプログラミング学習ツール として開発された. すご@ぷろは部屋にいるキャラクターを脱出させるプログラムを作成す る環境であり, 部屋の中にはコインがありキャラクターがコインの上を通過するとポイント が入り, 問題ごとに設定されたポイントを獲得しないとクリアできないと設定なっている. また, 部屋に落ちているそれぞれのコインのマスを通過すると, 以下のポイントを獲得する. • 銀コイン: 1ポイント • 金コイン: 5ポイント • 黒コイン: −2ポイント 部屋のイメージ図は図2.3のようになる. 図2.3 部屋のイメージ図2.2 すご@ぷろ すご@ぷろは, 図2.4のように命令を記述した双六のマスを並べることによりプログラミ ングを行う. また, 図2.4の意味を擬似コードで表すと, 図2.5のようになる[3]. 図2.4 すご@ぷろのプログラミング
do {
前へ進む
;
if (
前がカベ
) {
右を向く
;
} else {
前へ進む
;
}
} while(!
出口につく
);
図2.5 図2.4の擬似コード すご@ぷろと提案システムの異なる点として以下のような点が挙げられる. 1. すご@ぷろは, 双六のマスを並べることによりプログラムを作成する. 提案システムは, ボタンを押して命令を追加していくことによりプログラムを作成す る. そのようにした理由として, ボタンを押してプログラムを作成する方が図2.4のよ うにプログラムを作成するより子どもでも容易にプログラミングできると考えたからで ある. 2. すご@ぷろは, キャラクターの向きを変える命令には, 条件式を付け加えていない. 提案システムは, 条件式を満たさないとキャラクターの向きを変わらないようになって いる. そうすることにより,条件式の命令を必ず用いて, 条件分岐の概念を理解できるよ うになることが期待される.2.3 Google Blockly
2.3
Google Blockly
Google Blocklyは, Google が開発したプログラミング環境である. Google Blocklyは,
オープンソースソフトウェアのホスティングサイト「Google Code」で公開されている[6]. 図2.6は, Google Blocklyの外観である. Scratchのように命令が書かれたタイルを組み合わせることでキャラクターをゴールに導 くプログラムを作成する. また, レベル(難易度)を選択することができ, レベルによりタイ ルの種類,迷路ステージ, 使うタイルの数の制限が変わる. 図2.6ではレベル7が選択されて いて, タイルの種類が5個で, 使えるタイルの数が10個である. 図2.6 Google Blocklyの外観 また, 図2.7ではレベル4が選択されている. レベル4ではタイルの種類が4個で, 使え る命令の数が5個である.
2.3 Google Blockly
図2.7 レベル4のステージ
また, 図2.8ではレベル10が選択されている. レベル10ではタイルの種類が図 2.8のタ イルの置き場所にある分のタイルがあり, 使える命令の数が無制限である.
2.3 Google Blockly Google Blocklyと提案システムの異なる点として以下のような点が挙げられる. 1. Google Blocklyは, レベルによって使う命令の数が制限されることがある. 提案システムは, ステージが変わっても使う命令の数は制限されない. そのようにした 理由として, 使う命令の数が制限されることにより子どもがプログラムを作成するとき にかなり難しくなりすぎると考えたからである. しかし, 使う命令の数が少なければ, 高 得点が入るという機能が提案システムにはある. 2. Google Blocklyは, キャラクターの向きを変える命令には, 条件式を付け加えていない. 提案システムは, 条件式を満たさないとキャラクターの向きを変える命令が実行しない ようになっている. 2.2節で述べたように, そうすることにより, 条件分岐の概念を理解 できるようになることが期待される.
第
3
章
提案システム
3.1
提案システムの構成
初等教育段階の子どもにアルゴリズムやプログラムの処理の流れを理解させるための学習 ツールとして, 迷路の中にいるキャラクターをゴールに導くプログラムさせる環境を開発し た. 本システムにより, 子どもがプログラミングに興味を持ちキャラクターをゴールに導く ようプログラムを作成し, そのプログラムによってキャラクターがどういうふうに動作する のかを確認することで, アルゴリズムやプログラムの処理の流れ等を理解できるようになる ことが期待される. また, キャラクターの動作のプログラミングは, 子どもでも容易にできるように Javaや C言語などのテキスト形式のプログラミング言語で作成するのではなく, ボタンを押して命 令を追加していくという方法で作成する. 命令は, 「まえにかべがあれば○○にかいてん」, 「まえにかべがあるまでまえへすすむ」などを使用でき, その命令で条件分岐や繰り返しとな どの概念を理解させる. そして, 本システムを子どもに飽きさせないために以下のような機能を付け加える. • 難しさを調節するために迷路のマスの数を変えることができる • チェックポイントを通過しなければクリアできない • クリアすれば得点が入り, プログラムの命令の数が少ないほど高い点が入る3.2 提案システムの外観
3.2
提案システムの外観
提案システムの外観は, 図3.1のようになる. なお, 今回のシステムは, 文献[7][8][9] を参 考にしながらJavaで製作した. 図3.1 提案システムの外観 ウィンドウの左側には, 命令を追加する場所を決める選択メニュー(図の3.2 1⃝), 左隣に 書いてある命令を追加する5つのボタン( 2⃝), 命令の内容を変更する3つの選択メニュー ( 3⃝), テキストエリアに記述している命令を削除する場所を決める選択メニュー( 4⃝), その 場所の命令を削除するボタン( 5⃝), 命令を削除する範囲を決める2つの選択メニュー( 6⃝と 7 ⃝), その範囲の命令を削除するボタン( 8⃝), テキストエリアに記述しているすべての命令を 削除するボタン( 9⃝)が配置されている.3.2 提案システムの外観 図3.2 ウィンドウの左側 1 ⃝の選択メニューは, テキストエリアに何も記述されていない場合, 選択肢が「1」だけで あるが, 何も記述されていないテキストエリアに命令を1つ追加すると「2」という選択肢が 増え, その後も1つずつ命令を追加し続けると, 「3」, 「4」, 「5」,... と選択肢も増え続け る. また, テキストエリアに記述されている命令を1つ削除すると, 1⃝の選択メニューの選 択肢の中の最も大きい数が削除される. 3 ⃝の選択メニューの選択肢は, 「ひだり」と「みぎ」だけである. テキストエリアに何も記述されていない場合, 4⃝の選択メニューは, 図3.3のように選択 肢がなく, 5⃝と⃝9のボタンは, 入力不可の状態となる. 何も記述されていないテキストエリ アに命令を1つ追加すると「1」という選択肢が増え, 5⃝と⃝9のボタンは, 入力可能の状態 となる. その後,1つずつ命令を追加し続けると, 1⃝の選択メニューと同様に「2」, 「3」, 「4」,...と選択肢も増え続ける. また, テキストエリアに記述されている命令を1つ削除する と, 4⃝の選択メニューの選択肢の中の最も大きい数が削除される. テキストエリアに記述されている命令の数が1つ以下である場合, 6⃝と⃝7の選択メニュー は, 図3.3のように選択肢がなく, 8⃝のボタンは, 入力不可の状態となる.
3.2 提案システムの外観 図3.3 選択メニューがなくボタンが入力不可である状態 テキストエリアに記述されている命令が2つである場合, 6⃝には「1」, 7⃝には「2」とそ れぞれ1つの選択肢が増え, 8⃝のボタンは, 入力可能の状態となる. また, 命令を追加し続け ると, 1⃝と⃝4同様に, 6⃝と⃝7も選択肢が増え続ける. 中央には, 命令が記述されるテキストエリア(図3.4の⃝),1 キャラクターがテキストエリ アに記述している命令を実行するためのボタン( 2⃝)が配置している. 図3.2の⃝2の5つのボタンのいずれかを押すと,図3.2の⃝1の選択メニューに沿って図3.4 のようにテキストエリアに「(図3.2の⃝1の選択メニューで指定した数) ばんめ: (図3.2の 2 ⃝のボタンの左隣に書かれている命令)」という文字列が記述される. 2 ⃝のボタンは, テキストエリアに記述している場合には入力可能な状態, そうでない場合 には不可の状態になる.
3.2 提案システムの外観 右側には,問題となる迷路(図3.5の⃝),1 迷路のマスの数を変えるボタン( 2⃝),ゲームオー バーになったステージをもう一度やり直すボタン( 3⃝), ステージを変えるボタン( 4⃝)が配 置している. 図3.5 ウィンドウの右側 命令を実行するキャラクターは矢印(→), チェックポイントは星(☆)で表され, 白のマス は道, 黒のマスは壁のマス, 白のマスに「ゴール」と書いてあるマスをゴールのマスとする. また, 初期状態でのキャラクターの向きはランダムに選ばれる. チェックポイントのマスを 通過すると, 星のマークはなくなり道のマスとなる. また, 迷路のマスの数は, 8×8, 9×9, 10×10のいずれかを選択でき, それぞれ3つの異なるステージを用意している. 3 ⃝のボタンは, ゲームオーバーにならないと入力可能な状態にならない. 図3.4の⃝2のボタンを押すと, 図3.6のようにテキストエリアにキャラクターが実行して いく命令に右矢印(→)が記述され, キャラクターがテキストエリアに記述されている命令を 順番に実行する.
3.3 命令について 図3.6 キャラクターの実行例
3.3
命令について
この節では, 各々の命令の説明をする. • 1マスまえへすすむ 図3.7のように矢印の指す方向に沿って1マス前へ進む. 図3.7 「1マスまえへすすむ」の実行例 • まえにかべがあれば○○にかいてん 矢印の指す方向の前の1マスが壁のマスであれば左また右に回転する. 図3.8は, 「ま えにかべがあったらひだりにかいてん」の実行例である.3.3 命令について 図3.8 「まえにかべがあったらひだりにかいてん」の実行例 • ○○にみちがあれば○○にかいてん 矢印の左側また右側のマスに道のマスがあれば左また右に回転する. 図3.9は, 「ひだ りにみちがあればひだりにかいてん」の実行例である. 図3.9 「ひだりにみちがあればひだりにかいてん」の実行例 • まえにかべがあるまでまえへすすむ 図3.10のように矢印の指す方向に沿って指す方向の1つ前のマスが壁のマスであるマ スに着くまで前へ進む.
3.4 クリアとゲームオーバーについて 図3.10 「まえにかべがあるまでまえへすすむ」の実行例 • わかれみちがあるマスまでまえへすすむ 図の 3.11ように矢印の指す方向に沿ってさす方向の 1つ前の前のマスと左側と右側の マスの3つのマスの中の2つ以上が道のマスであるマスに着くまで前へ進む. 図3.11 「わかれみちがあるマスまでまえへすすむ」の実行例
3.4
クリアとゲームオーバーについて
この迷路の問題をクリアにするためには, 以下の3つの条件を満たさないといけない. • テキストエリアに書いてある命令をすべて使う • 迷路の中にあるすべてのチェックポイントを通過 •3.4 クリアとゲームオーバーについて クリアしたとき得点が入るようになり, 図3.12のように迷路の上に「クリア ○○点」と いう文字列が表示される. 得点は, 迷路の問題に対して最小数の命令で解くと最大 100点入 る. また, 最小数の命令で解いていない場合, (問題を解いた命令の数-問題を解く最小数の命 令の数)×5点分を減点することになり, 最小で0点となる. 図3.12 クリアの例 次に, ゲームオーバーについての説明をする. まず, 図3.13のようにすべての命令を使ってもゴールのマスにいないときにゲームオー バーになり, 迷路の上に「ざんねん ゴールまでいけなかった」という文字列が表示される. 図3.13 ゴールのマスに着いていない例
3.4 クリアとゲームオーバーについて 図3.14のように矢印の指す方向の1つ前のマスが壁のマスであるときに, 「1マスまえへ すすむ」,「まえにかべがあるまでまえへすすむ」,「わかれみちがあるマスまでまえへすす む」を実行したときにゲームオーバーになる. また, 迷路の上に「ざんねん まえにかべがあ る」という文字列が表示される. 図3.14 前に壁のマスがあるときにまえへすすむ系の命令を実行したときの例 図3.15のようにチェックポイントがあるマスをすべて通過せずにゴールのマスにいても ゲームオーバーになる. また, 迷路の上に「ざんねん チェックポイントが○つのこっている」 という文字列が表示される.
3.4 クリアとゲームオーバーについて
図3.16のように矢印の指す方向に分かれ道があるマスがないときに「わかれみちがある マスまでまえへすすむ」を実行したときにゲームオーバーになる.
第
4
章
実験
4.1
実験内容
プログラミングの経験がない小学1年生と6年生1人ずつ, プログラミングの経験がある 本学の情報学群4年生4人に提案システムを利用してもらった. 最初に, 8×8マスの迷路の問題を解くのに挑戦してもらった. 最初の約10∼15分, 回転す るべき方向や使う命令を間違えたり悩んでいた様子であったため, 助言を与えながらプログ ラムの作成を続けた. その後, 上記の様子はなく, 繰り返しの命令などを使ってプログラムを 作成し問題を解くことができた. また, 問題を解くのにかかった時間は, 6年生の被験者は約 20分, 1年生の被験者は約28分であった. その後, 1年生の被験者には, 8×8, 9×9マスの順 に解いてもらった. その2問を解いたときには, 悩んでいた様子や助言を与えることも少な くなり, 解く時間も順に約16分, 15分と減少していった. 情報学群の被験者は, 小学生の被験者のような悩んだ様子がほとんどなく 10分以内で問 題を解くことができた. また, 小学生と情報学群の被験者は, キャラクターの向きを変えるときには回転するべき 方向とは違う向きの方向に変える命令を使うことがよくあった. この理由として, 「 であれ ばひだり(またはみぎ)にかいてん」という命令を理解するのが難しかったと考えられる. 情報学群のある被験者が挑戦した迷路の問題とその問題を解いたときのソースコードを付 録Aに掲載する.4.2 被験者からの意見と考察
4.2
被験者からの意見と考察
小学生の被験者から「最初は難しかったが慣れてきたら楽しかった」, 「頭を使うゲーム であり楽しかった」などの意見があった. また, 情報学群の学生の被験者から「頭を使うの で脳トレみたいに感じる」,「手軽に頭を使えるシステムということで楽しかった」,「キャ ラクターやボタンなどをアイコンで示して欲しい」などの意見があった. これらの結果からこのシステムは, 子どもにプログラミングに興味を持たせ, それをある 程度持続させられること, また, 少し助言を与えれば, このシステムを使って自然に繰り返し 命令など使えるようになることが確認できた.第
5
章
まとめ
5.1
結論
情報技術の発達や普及により, プログラミングに関する知識を持つ人材の必要性, また, 早 期のプログラミング教育の必要性が高まっている. C言語やJavaなどのテキスト形式のプ ログラミング言語は, 英単語や独特の文法で記述しなければならないため, 小学生などの初 等教育段階の子どもがそれらのプログラミング言語でプログラミングに興味を持ちプログラ ミングに関する知識を理解するのは難しいと考えられる. そこで本研究では, この問題を解 決するために迷路を題材としたプログラミング学習ツールを開発を行った. 提案システムは, 子どもでも容易にできるようにボタンを押して命令を追加していき迷路 の中にいるキャラクターをゴールに導くようプログラムさせる環境というものになった. ま た, このシステムを子どもに飽きさせないためにチェックポイントやステージを変更する機 能などを付け加えた. そして, 小学1年生と小学6年生1人ずつ, 本学の情報学群4年生4人計6人の被験者に 提案システムで迷路の問題を解くプログラムの作成という内容の予備的な実験を行った. 小 学生の被験者による実験結果から, 少しの助言を与えれば提案システムで自然に繰り返し命 令など使えるようになることが確認できた. また, 小学生と大学生の被験者から「最初は難 しかったが慣れてきたら楽しかった」, 「手軽に頭を使えるシステムということで楽しかっ た」などの意見があったためプログラミングに興味を持たせ, それをある程度持続させられ ることも確認できた.5.2 今後の課題
5.2
今後の課題
今回は, プログラミングの経験のない小学1年生と6年生1人ずつ, 本学の情報学群4年 生3人計5名に対して予備的な実験を行ったが, 今後, より多くの被験者を対象に評価実験 を行い, 提案システムの有効性を調べる必要がある. また, 他の年代の人にもこのシステムで プログラミングに興味を持てるかどうかを示すために, 今回の被験者以外の年代の人による 実験を行う必要がある. また, 被験者から「キャラクターやボタンなどはアイコンなどを用いて示してほしい」, 「迷路のステージを自分で作ることのできる機能があればより興味を持たせられるのではな いか」などの機能の追加に関する意見, 「矢印が右向きのときに左に回転という命令で上向 きになることを小学生が理解できるのか」, 「最初は使う命令を制限して問題を解くたびに 使う命令を追加したほうがいい」などのシステムの改善に関する意見があった. それらの意 見に沿ったシステムの改善や機能の追加も今後の課題である.謝辞
本研究を進めるにあたり, 助言, 御指導をいただきました高知工科大学情報学群高田 喜朗 准教授に心より感謝申し上げます. また, 本研究の副査を快く引き受けてくださった岩田 誠 教授, 妻鳥 貴彦准教授にも感謝申し上げます. そして, 様々なご助言, 御指導をいただきまし た高田研究室の皆様にも心より感謝申し上げます. 本研究の実験に貴重な時間を割いていただき参加してくださった被験者の皆様, ご協力い ただき心より感謝申し上げます. また, 学生生活を支えてくださった高知工科大学の同期の学友の皆様, 先輩の皆様, 教職員 の皆様, そして課外活動でお世話になりました日本たばこ産業の社員の皆様, 香美市商工会 の皆様にも心より感謝申し上げます. 最後に本学で勉強を与える機会を与えてくれ, 精神面, 経済面などで支えてくれた家族に も心より感謝申し上げます.参考文献
[1] “Scrach”, http://Scratch.mit.edu/
[2] “Scrachとは”, http://etoys.jp/scratch/scratch.html
[3] 蛭田雄一,桑原悟, 柴原一友, 但馬康宏,小谷善行, “すご@ぷろ:双六をモチーフとしたビ ジュアルプログラミング言語”,情報処理学会 研究報告, 2008–CE–93, pp.41–48, 2008. [4] “blockly - A visual programming editor - Google Project Hosting”,
https://code.google.com/p/blockly/ [5] “スクイークEtoys(Squeak Etoys)”,
http://etoys.jp/squeak/squeak.html
[6] “「Google Blockly」 : キーボード不要、レゴのような開発ツール”, http://wired.jp/2012/06/06/google-blockly/
[7] 桑原恒夫, “3日で解るJava 例題学習方式 [第2版]”, 共立出版, 2000.
[8] Harvey M. Deitel, Paul J. Deitel, “Javaプログラミング vol.2”, 小嶋隆一 訳, ピアソ ンエデュケーション, 1999.
[9] “Java Platform, Standard Edition 6 API仕様 - Docs Oracle”, http://docs.oracle.com/javase/jp/6/api/.
付録
A
実験データ
図A.1は, 情報学群のある被験者が挑戦した迷路の問題の初期の状態で図 A.2は, ゲーム オーバーになった状態である. 図A.1 迷路の初期の状態 図A.2 ゲームオーバーになった状態 そして, 下記のソースコードは, そのときの作成したプログラムを表す. 1ばんめ:まえにかべがあればひだりにかいてん 2ばんめ:まえにかべがあればひだりにかいてん 3ばんめ:わかれみちがあるマスにつくまでまえへすすむ 4ばんめ:みぎにみちがあればみぎにかいてん 5ばんめ:まえにかべがあるまでまえへすすむ 6ばんめ:ひだりにみちがあればひだりにかいてん 7ばんめ:わかれみちがあるマスにつくまでまえへすすむ9ばんめ:まえにかべがあるまでまえへすすむ 10ばんめ:まえにかべがあればみぎにかいてん 11ばんめ:1マスまえへすすむ (ここでゲームオーバーとなったためこれ以降の命令は実行せず) 12ばんめ:まえにかべがあればひだりにかいてん 13ばんめ:まえにかべがあるまでまえへすすむ 14ばんめ:まえにかべがあればみぎにかいてん 15ばんめ:まえにかべがあるまでまえへすすむ 16ばんめ:まえにかべがあればみぎにかいてん 17ばんめ:1マスまえへすすむ 18ばんめ:ひだりにみちがあればひだりにかいてん 19ばんめ:まえにかべがあるまでまえへすすむ 20ばんめ:まえにかべがあればみぎにかいてん 21ばんめ:まえにかべがあるまでまえへすすむ 22ばんめ:まえにかべがあればみぎにかいてん 23ばんめ:まえにかべがあるまでまえへすすむ 図A.3 は, その被験者が再挑戦したときのその迷路の問題の初期状態, 図A.4は, クリア したときの状態を表す. また, 初期状態でのキャラクターの向きはランダムに選ばれるため, 図A.1とA.3ではキャラクターの向きが異なっている. 図A.3 再挑戦した迷路の初期の状態 図A.4 クリアした状態
そして, 下記のソースコードは, クリアしたときのプログラムを表す. 1ばんめ:わかれみちがあるマスにつくまでまえへすすむ 2ばんめ:みぎにみちがあればみぎにかいてん 3ばんめ:わかれみちがあるマスにつくまでまえへすすむ 4ばんめ:まえにかべがあればひだりにかいてん 5ばんめ:わかれみちがあるマスにつくまでまえへすすむ 6ばんめ:わかれみちがあるマスにつくまでまえへすすむ 7ばんめ:みぎにみちがあればみぎにかいてん 8ばんめ:まえにかべがあるまでまえへすすむ 9ばんめ:まえにかべがあればみぎにかいてん 10ばんめ:1マスまえへすすむ 11ばんめ:まえにかべがあればひだりにかいてん 12ばんめ:まえにかべがあるまでまえへすすむ 13ばんめ:みぎにみちがあればみぎにかいてん 14ばんめ:まえにかべがあるまでまえへすすむ 15ばんめ:みぎにみちがあればみぎにかいてん 16ばんめ:1マスまえへすすむ 17ばんめ:ひだりにみちがあればひだりにかいてん 18ばんめ:まえにかべがあるまでまえへすすむ 19ばんめ:みぎにみちがあればみぎにかいてん 20ばんめ:まえにかべがあるまでまえへすすむ 21ばんめ:みぎにみちがあればみぎにかいてん 22ばんめ:まえにかべがあるまでまえへすすむ