(57)【特許請求の範囲】
【請求項１】
移動可能なプログラミング学習用の装置であって、
複数のブロックを装着することが可能なように構成されたブロック装着部と、
前記ブロック装着部に装着されているブロックの種類および順序に応じて、前記装置の移動を制御する制御部と
を備え、
前記ブロック装着部は、逐次処理を定義するための第１のブロック装着部と、ループ処理を定義するための第２のブロック装着部とを含み、
前記第１のブロック装着部に装着されているブロックの種類および順序に応じて、前記逐次処理の種類および順序が定義され、
前記第２のブロック装着部に装着されているブロックの種類および順序に応じて、前記ループ処理が定義され、
前記制御部は、前記逐次処理または前記ループ処理に応じて前記装置の移動を制御する、装置。
【請求項２】
前記装置は、センサをさらに備え、
前記制御部は、前記センサから出力される信号に応じて分岐処理を行うか否かを決定し、その決定に応じて前記装置の移動を制御する、請求項１に記載の装置。
【請求項３】
前記センサは、前記装置の底部に搭載されたカラーセンサである、請求項２に記載の装置。
【請求項４】
前記複数のブロックおよび前記ブロック装着部は、前記複数のブロックのうちのどのブロックに対応するステップが実行中であるかを示すように構成されている、請求項１〜３のいずれか一項に記載の装置。
【請求項５】
前記ブロック装着部は、前記複数のブロックのうちの少なくとも１つが装着されたことを検知することが可能なようにさらに構成されている、請求項１〜４のいずれか一項に記載の装置。
【請求項６】
移動可能なプログラミング学習用の装置であって、
複数のブロックを装着することが可能なように構成されたブロック装着部と、
前記ブロック装着部に装着されているブロックの種類および順序に応じて、前記装置の移動を制御する制御部と
を備え、
前記ブロック装着部は、前記複数のブロックを装着するための複数のブロック装着領域を有するブロック装着基板を含み、前記複数のブロック装着領域のそれぞれには前記複数のブロックのうちのそれぞれのブロックを固定するためのそれぞれのバネ部材が設けられており、
前記それぞれのブロックは、前記それぞれのバネ部材と係合するそれぞれのスリット部が形成された側面壁を有し、
前記それぞれのブロックの側面壁には、前記それぞれのバネ部材と前記それぞれのブロックとが接触した状態で前記それぞれのブロックが前記それぞれのバネ部材に対して移動する距離が少なくなるように、前記それぞれのブロックの側面壁の端部から前記それぞれのスリット部の手前まで切り込まれた切欠きが形成されている、装置。
【請求項７】
前記ブロック装着部は、複数の開口部が形成されたブロックガイド基板を含み、
前記ブロックガイド基板の前記複数の開口部のうちのそれぞれの開口部の形状は、前記それぞれの開口部の縁が前記それぞれの開口部に挿入された前記それぞれのブロックの側面壁と点接触することにより前記それぞれのブロックが前後左右に位置決めされるように構成されている、請求項６に記載の装置。
【請求項８】
前記それぞれの開口部は、その外観から前記それぞれの開口部の方向性が認識されるように構成されている、請求項７に記載の装置。
【請求項９】
前記複数のブロックおよび前記複数の開口部は、前記それぞれのブロックが一方向においてのみ前記それぞれの開口部に挿入されることが可能であるように構成されている、請求項７または請求項８に記載の装置。
【請求項１０】
前記複数のブロックのうちのそれぞれのブロックは、その外観から前記それぞれのブロックの方向性が認識されるように構成されている、請求項１〜９のいずれか一項に記載の装置。
【請求項１１】
前記複数のブロックは、少なくとも、「前に進む」、「後ろに進む」、「右に曲がる」、「左に曲がる」、「ループ」の５種類のブロックを含む、請求項１〜１０のいずれか一項に記載の装置。
【請求項１２】
移動可能なプログラミング学習用の装置を動作させる方法であって、前記装置は、
複数のブロックを装着することが可能なように構成されたブロック装着部と、制御部とを備え、
前記ブロック装着部は、逐次処理を定義するための第１のブロック装着部と、ループ処理を定義するための第２のブロック装着部とを含み、
前記第１のブロック装着部に装着されているブロックの種類および順序に応じて、前記逐次処理の種類および順序が定義され、
前記第２のブロック装着部に装着されているブロックの種類および順序に応じて、前記ループ処理が定義され、
前記方法は、
前記制御部が、前記ブロック装着部に装着されているブロックの種類および順序に応じて、前記装置の移動を制御することであって、前記制御することは、前記制御部が前記逐次処理または前記ループ処理に応じて前記装置の移動を制御することを含む、こと
を含む、方法。
【請求項１３】
移動可能なプログラミング学習用の装置を動作させるためのプログラムであって、
前記装置は、複数のブロックを装着することが可能なように構成されたブロック装着部と、制御部とを含み、
前記ブロック装着部は、逐次処理を定義するための第１のブロック装着部と、ループ処理を定義するための第２のブロック装着部とを含み、
前記第１のブロック装着部に装着されているブロックの種類および順序に応じて、前記逐次処理の種類および順序が定義され、
前記第２のブロック装着部に装着されているブロックの種類および順序に応じて、前記ループ処理が定義され、
前記プログラムは、前記制御部によって実行されると、
前記ブロック装着部に装着されているブロックの種類および順序に応じて、前記装置の移動を制御することであって、前記制御することは、前記逐次処理または前記ループ処理に応じて前記装置の移動を制御することを含む、こと
を前記制御部に行わせる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラミング学習用の装置、方法およびプログラムに関する。
【背景技術】
【０００２】
従来、プログラミング教育は、汎用計算機を用いて行われてきた。また、初心者にも習得が容易な言語を用いてプログラミング教育を容易にする対戦型コンピュータゲーム装置が知られている（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平６−２３６１３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、ユーザがプログラミングの概念を体験的に学習することを可能にするプログラミング学習用の装置、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の移動可能なプログラミング学習用の装置は、複数のブロックを装着することが可能なように構成されたブロック装着部と、前記ブロック装着部に装着されているブロックの種類および順序に応じて、前記装置の移動を制御する制御部とを備えている。
【０００６】
本発明の１つの実施形態では、前記ブロック装着部は、逐次処理を定義するための第１のブロック装着部と、ループ処理を定義するための第２のブロック装着部とを含み、前記第１のブロック装着部に装着されているブロックの種類および順序に応じて、前記逐次処理の種類および順序が定義され、前記第２のブロック装着部に装着されているブロックの種類および順序に応じて、前記ループ処理が定義され、前記制御部は、前記逐次処理または前記ループ処理に応じて前記装置の移動を制御してもよい。
【０００７】
本発明の１つの実施形態では、前記装置は、センサをさらに備え、前記制御部は、前記センサから出力される信号に応じて分岐処理を行うか否かを決定し、その決定に応じて前記装置の移動を制御してもよい。
【０００８】
本発明の１つの実施形態では、前記センサは、前記装置の底部に搭載されたカラーセンサであってもよい。
【０００９】
本発明の１つの実施形態では、前記複数のブロックおよび前記ブロック装着部は、前記複数のブロックのうちのどのブロックに対応するステップが実行中であるかを示すように構成されてもよい。
【００１０】
本発明の１つの実施形態では、前記ブロック装着部は、前記複数のブロックのうちの少なくとも１つが装着されたことを検知することが可能なようにさらに構成されてもよい。
【００１１】
本発明の１つの実施形態では、前記ブロック装着部は、前記複数のブロックを装着するためのブロック装着基板を含み、前記ブロック装着基板は、前記複数のブロックのうちの１つを装着するためのブロック装着領域を有し、前記ブロック装着領域には前記ブロックを固定するためのバネ部材が設けられており、前記ブロックは、前記バネ部材と係合するスリット部が形成された側面壁を有し、前記ブロックの側面壁には、前記バネ部材と前記ブロックとが接触した状態で前記ブロックが前記バネ部材に対して移動する距離が少なくなるように、前記側面壁の端部から前記スリット部の手前まで切り込まれた切欠きが形成されてもよい。
【００１２】
本発明の１つの実施形態では、前記ブロック装着部は、前記複数の開口部が形成されたブロックガイド基板を含み、前記ブロックガイド基板の開口部の形状は、前記開口部の縁が前記開口部に挿入された前記ブロックの側面壁と点接触することにより前記ブロックが前後左右に位置決めされるように構成されてもよい。
【００１３】
本発明の１つの実施形態では、前記ブロックは、その外観から前記ブロックの方向性が認識されるように構成されてもよい。
【００１４】
本発明の１つの実施形態では、前記開口部は、その外観から前記開口部の方向性が認識されるように構成されてもよい。
【００１５】
本発明の１つの実施形態では、前記ブロックおよび前記開口部は、前記ブロックが一方向においてのみ前記開口部に挿入されることが可能であるように構成されてもよい。
【００１６】
本発明の１つの実施形態では、前記複数のブロックは、少なくとも、「前に進む」、「後ろに進む」、「右に曲がる」、「左に曲がる」、「ループ」の５種類のブロックを含んでもよい。
【００１７】
本発明の方法は、移動可能なプログラミング学習用の装置を動作させる方法であって、前記装置は、複数のブロックを装着することが可能なように構成されたブロック装着部と、制御部とを備え、前記方法は、前記制御部が、前記ブロック装着部に装着されているブロックの種類および順序に応じて、前記装置の移動を制御することを含む。
【００１８】
本発明のプログラムは、移動可能なプログラミング学習用の装置を動作させるためのプログラムであって、前記装置は、複数のブロックを装着することが可能なように構成されたブロック装着部と、制御部とを含み、前記プログラムは、前記制御部によって実行されると、前記ブロック装着部に装着されているブロックの種類および順序に応じて、前記装置の移動を制御することを前記制御部に行わせる。
【発明の効果】
【００１９】
本発明によれば、ユーザがプログラミングの概念を体験的に学習することを可能にするプログラミング学習用の装置、方法およびプログラムを提供することが可能である。
【図面の簡単な説明】
【００２０】
【図１Ａ】図１Ａは、本発明の１つの実施形態であるプログラミング学習用の装置（“ＰＥＴＳ”）１０の外観を示す斜視図である。
【図１Ｂ】図１Ｂは、複数のブロック２０の外観を示す斜視図である。
【図１Ｃ】図１Ｃは、「前に進む」ブロック、「後ろに進む」ブロック、「右に曲がる」ブロック、「左に曲がる」ブロック、「ループ」ブロックの上面図である。
【図２】図２は、装置１０の上面図である。
【図３Ａ】図３Ａは、３個のブロック２０が逐次処理用ブロック装着部７０の３個の開口部３０にそれぞれ装着された状態の装置１０の外観を示す斜視図である。
【図３Ｂ】図３Ｂは、図３Ａに示される状態の装置１０の上面図である。
【図４Ａ】図４Ａは、装置１０が前方に移動する様子を示す図である。
【図４Ｂ】図４Ｂは、装置１０が右に９０°曲がるように移動する様子を示す図である。
【図４Ｃ】図４Ｃは、装置１０が前方に移動する様子を示す図である。
【図４Ｄ】図４Ｄは、装置１０が移動した後の状態を示す図である。
【図５Ａ】図５Ａは、１個のブロック２０が逐次処理用ブロック装着部７０の１個の開口部３０に装着され、２個のブロック２０がループ処理用ブロック装着部８０の２個の開口部３０にそれぞれ装着された状態の装置１０の外観を示す斜視図である。
【図５Ｂ】図５Ｂは、図５Ａに示される状態の装置１０の上面図である。
【図６Ａ】図６Ａは、装置１０が前方に移動する様子を示す図である。
【図６Ｂ】図６Ｂは、装置１０が右に９０°曲がるように移動する様子を示す図である。
【図６Ｃ】図６Ｃは、装置１０が前方に移動する様子を示す図である。
【図６Ｄ】図６Ｄは、装置１０が右に９０°曲がるように移動する様子を示す図である。
【図６Ｅ】図６Ｅは、装置１０が移動した後の状態を示す図である。
【図７】図７は、装置１０の底面９０に搭載されたカラーセンサ１００を示す図である。
【図８Ａ】図８Ａは、装置１０が前方に移動する様子を示す図である。
【図８Ｂ】図８Ｂは、装置１０が右に９０°曲がるように移動する様子を示す図である。
【図８Ｃ】図８Ｃは、装置１０が前方に移動する様子を示す図である。
【図８Ｄ】図８Ｄは、装置１０が前方に移動する様子を示す図である。
【図９】図９は、制御部２００の構成の一例を示すブロック図である。
【図１０Ａ】図１０Ａは、プロセッサ部２１０によって実行される処理の手順の一例を示すフローチャートである。
【図１０Ｂ】図１０Ｂは、プロセッサ部２１０によって実行される処理の手順の一例を示すフローチャートである。
【図１０Ｃ】図１０Ｃは、プロセッサ部２１０によって実行される処理の手順の一例を示すフローチャートである。
【図１１】図１１は、装置１０の内部構造の一例を示す分解斜視図である。
【図１２Ａ】図１２Ａは、図１Ｂに示されるブロック２０を斜め上方から見た斜視図である。
【図１２Ｂ】図１２Ｂは、図１Ｂに示されるブロック２０を斜め下方から見た斜視図である。
【図１３Ａ】図１３Ａは、ブロックガイド基板６２に形成された開口部３０を示す上面図である。
【図１３Ｂ】図１３Ｂは、図１２Ａに示すブロック２０のＢ−Ｂ線部分の断面構造を示す上面図である。
【図１３Ｃ】図１３Ｃは、ブロック２０が開口部３０に挿入された状態で、ブロック２０のＢ−Ｂ線部分の断面構造と共に開口部３０を示す上面図である。
【図１４】図１４は、図１１に示されるＡ部分（１つのブロック装着領域１２０を含む部分）を拡大したものの斜視図である。
【図１５Ａ】図１５Ａは、ブロック２０がブロック装着領域１２０上に位置する状態を示す斜視図である。
【図１５Ｂ】図１５Ｂは、ブロック２０がブロック装着領域１２０に装着された状態を示す斜視図である。
【図１６Ａ】図１６Ａは、ブロック２０がブロック装着基板６４に装着される直前の様子を示す図である。
【図１６Ｂ】図１６Ｂは、ブロック２０の切欠き部２３ｂにブロック装着基板６４の板バネ６３が挿入される様子を示す図である。
【図１６Ｃ】図１６Ｃは、ブロック２０の切欠き部２３ｂの上縁部にブロック装着基板６４の板バネ６３が当接する様子を示す図である。
【図１６Ｄ】図１６Ｄは、ブロック装着基板６４の板バネ６３がブロック２０の切欠き部２３ｂとスリット部２３ａとの間の領域に当接した状態を示す図である。
【図１６Ｅ】図１６Ｅは、ブロック２０のスリット部２３ａにブロック装着基板６４の板バネ６３が係合した状態を示す図である。
【図１７Ａ】図１７Ａは、ブロック２０がブロック装着基板６４から取り外される直前の様子を示す図である。
【図１７Ｂ】図１７Ｂは、ブロック２０のスリット部２３ａとブロック装着基板６４の板バネ６３との係合が解除された状態を示す図である。
【図１７Ｃ】図１７Ｃは、ブロック装着基板６４の板バネ６３がブロック２０の切欠き部２３ｂの上縁部に当接した状態を示す図である。
【図１７Ｄ】図１７Ｄは、ブロック装着基板６４の板バネ６３とブロック２０の切欠き部２３ｂの上縁部との当接が解除された状態を示す図である。
【図１７Ｅ】図１７Ｅは、ブロック装着基板６４からブロック２０から取り外された状態を示す図である。
【図１８Ａ】図１８Ａは、ブロック２０がブロック装着基板６４に装着されていない状態でのブロック装着基板６４およびブロック装着検出回路２２０の電気的な回路構成の一例を示す図である。
【図１８Ｂ】図１８Ｂは、種類の異なる２つのブロック２０がブロック装着基板６４に装着された状態でのブロック装着基板６４およびブロック装着検出回路２２０の電気的な回路構成の一例を示す図である。
【図１８Ｃ】図１８Ｃは、ブロック２０がブロック装着基板６４に装着されていない状態でのブロック装着基板６４およびブロック装着検出回路２２０の電気的な回路構成の他の一例を示す図である。
【図１９Ａ】図１９Ａは、２つブロック２０のうちの一方がブロック装着基板６４に装着される前の状態を示す図である。
【図１９Ｂ】図１９Ｂは、２つのブロック２０のうちの一方がブロック装着基板６４に装着された後の状態を示す図である。
【図１９Ｃ】図１９Ｃは、２つのブロック２０のうちの他方がブロック装着基板６４に装着された後の状態を示す図である。
【図１９Ｄ】図１９Ｄは、図１９Ａに示される状態でのブロック装着領域１２０の電気的な回路構成の一例を示す図である。
【図１９Ｅ】図１９Ｅは、図１９Ｂに示される状態でのブロック装着領域１２０の電気的な回路構成の一例を示す図である。
【図１９Ｆ】図１９Ｆは、図１９Ｃに示される状態でのブロック装着領域１２０の電気的な回路構成を示す図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照しながら、本発明の実施の形態を説明する。
【００２２】
１．「プログラミング脳を育てる」ための新しい試み
子ども達がプログラミングを学ぶのに初めの一歩は何が最適であろうか。この疑問からスタートしたのが発明者らの研究である。色々なツールを使って子ども達にプログラミングを教えることを試みたが、どのツールを使っても必ず１人は脱落する子どもが出てきてしまう。それをなくしたい。
【００２３】
そのような願いをかなえるために、プログラミング学習用の新しいツールとして発明者らが考案したものが“ＰＥＴＳ”と命名された装置である。
【００２４】
ＰＥＴＳは、（例えば、車輪を用いて）移動可能であるように構成されている。また、ＰＥＴＳは、複数のブロックを装着することが可能なように構成されている。ブロックの種類は、例えば、「前に進む」、「後ろに進む」、「右に曲がる」、「左に曲がる」、「ループ」の５種類である。子ども達には、与えられたコースに対してＰＥＴＳをスタート地点からゴール地点まで移動させなさいという課題が与えられる。子ども達は、どの種類のブロックをどのような順序でＰＥＴＳに装着すればこの課題を達成することができるかを自分で考え、実際にブロックをＰＥＴＳに装着してはＰＥＴＳを走らせてみるという試行錯誤を繰り返す。このような試行錯誤を通して子ども達がプログラミングを学習することによって子ども達の「プログラミング脳を育てる」ことを試みている。
【００２５】
なお、本研究を通してＰＥＴＳが子ども達（例えば、小学生または小学校未就学児童）の「プログラミング脳を育てる」ために有効であることが分かってきたが、「プログラム脳を育てる」対象は子ども達に限定されない。ＰＥＴＳは、老人を含むあらゆる年代の人達の「プログラミング脳を育てる」または「プログラミング脳を活性化する」ために有効であることが期待されている。
【００２６】
２．プログラミング学習用の装置（“ＰＥＴＳ”）の基本的な構成
図１Ａは、本発明の１つの実施形態であるプログラミング学習用の装置（“ＰＥＴＳ”）１０の外観を示す斜視図である。装置１０は、複数のブロック２０（図１Ａには示されていない、図１Ｂを参照）を装着することが可能なように構成されたブロック装着部６０を含む。具体的には、ブロック装着部６０には、複数の開口部３０が形成されている。それぞれのブロック２０をそれぞれの開口部３０に装着することによって複数のブロック２０をブロック装着部６０に装着することが可能である。装置１０は、ブロック装着部６０に装着されたブロック２０の種類および順序に応じて移動可能であるように構成されている。
【００２７】
ここで、図１Ａに示される例では、装置１０の上面にブロック装着部６０が形成されており、ブロック装着部６０は、１２個の開口部３０に最大で１２個のブロック２０を装着することが可能なように構成されているが、ブロック装着部６０の構成はこれに限定されない。装置１０の上面以外の面にブロック装着部６０を形成するようにしてもよいし、任意の数の開口部３０に任意の数のブロック２０を装着することが可能であるようにブロック装着部６０を構成するようにしてもよい。さらに、図１Ａに示される例では、装置１０は、二輪の車輪を用いて移動可能であるように構成されているが、装置１０の構成はこれに限定されない。例えば、二輪の車輪の代わりに、四輪の車輪、無限軌道、二足歩行用の脚、四足歩行用の脚などの任意の移動手段を用いて装置１０を移動可能であるように構成するようにしてもよい。
【００２８】
図１Ｂは、複数のブロック２０の外観を示す斜視図である。ブロックの種類は、例えば、「前に進む」、「後ろに進む」、「右に曲がる」、「左に曲がる」、「ループ」の５種類であるが、これに限定されない。複数のブロック２０は、任意の種類のブロックを含むことが可能である。
【００２９】
図１Ｃは、「前に進む」ブロック、「後ろに進む」ブロック、「右に曲がる」ブロック、「左に曲がる」ブロック、「ループ」ブロックの上面図である。図１Ｃに示されるように、各ブロックの上面には、矢印が形成されている。これにより、どのブロックがどの種類のブロックであるかを視覚的に容易に認識することが可能である。具体的には、「前に進む」ブロックの上面には、前方を指す矢印が形成されており、「後ろに進む」ブロックの上面には、後方を指す矢印が形成されており、「右に曲がる」ブロックの上面には、右を指す矢印が形成されており、「左に曲がる」ブロックの上面には、左を指す矢印が形成されており、「ループ」ブロックの上面には、ループを指す矢印が形成されている。
【００３０】
ここで、図１Ｃに示される例では、各ブロックの上面の輪郭形状は、紙面の上方が「前方」を表し、紙面の下方が「後方」を表すように形成されているが、各ブロックの上面の輪郭形状はこれに限定されない。各ブロックの「前方」、「後方」を区別することが可能である限り、各ブロックは、任意の形状を有することが可能である。また、各ブロックは、一方向においてのみブロック装着部の開口部に装着されることが可能であるように構成されていることが好ましい。
【００３１】
３．プログラミング学習用の装置（”ＰＥＴＳ”）の基本的な動作
図２は、装置１０の上面図である。装置１０は、複数のブロック２０を装着することが可能なように構成されたブロック装着部６０を含む。ブロック装着部６０は、逐次処理を定義するための逐次処理用ブロック装着部（第１のブロック装着部）７０と、ループ処理を定義するためのループ処理用ブロック装着部（第２のブロック装着部）８０とを含む。図２に示される例では、１２個の開口部３０のうちの９個の開口部３０が逐次処理用ブロック装着部（第１のブロック装着部）７０の開口部３０として用いられ、１２個の開口部３０のうちの残りの３個の開口部３０がループ処理用ブロック装着部（第２のブロック装着部）８０の開口部３０として用いられるが、これに限定されない。逐次処理用ブロック装着部７０は、任意の数の開口部３０を有していてもよく、ループ処理用ブロック装着部８０もまた、任意の数の開口部３０を有していてもよい。また、装置１０は、スタートボタン５０を有している。スタートボタン５０が押下されると、装置１０に装着された複数のブロック２０の種類および順序に応じて装置１０が移動する動作が開始される。
【００３２】
図２に示される実線の矢印は、逐次処理用ブロック装着部７０の開口部３０に装着されたブロック２０が実行される順序を示す。すなわち、逐次処理用ブロック装着部７０に装着されたブロック２０は、実線の矢印によって示される順序で実行される逐次処理を定義する。図２に示される破線の矢印は、ループ処理用ブロック装着部８０の開口部３０に装着されたブロック２０が実行される順序を示す。すなわち、ループ処理用ブロック装着部８０に装着されたブロック２０は、破線の矢印によって示される順序で実行されるループ処理を定義する。
【００３３】
３．１  逐次処理に関連する動作
図３Ａは、３個のブロック２０が逐次処理用ブロック装着部７０の３個の開口部３０にそれぞれ装着された状態の装置１０の外観を示す斜視図である。
【００３４】
図３Ｂは、図３Ａに示される状態の装置１０の上面図である。一番左のブロック２０は、「前に進む」ブロックである。中央のブロック２０は、「右に曲がる」ブロックである。一番右のブロック２０は、「前に進む」ブロックである。
【００３５】
図３Ａおよび図３Ｂに示されるように３個のブロック２０が逐次処理用ブロック装着部７０の３個の開口部３０にそれぞれ装着された状態で、装置１０のスタートボタン５０が押下された場合に、装置１０は、逐次処理用ブロック装着部７０に装着されたブロック２０の種類および順序に応じて移動する。具体的には、装置１０は、逐次処理用ブロック装着部７０の１番目の開口部３０に装着されたブロック２０が「前に進む」ブロックであると決定し、この決定に応答して前方に移動する（ステップ１）。次に、装置１０は、逐次処理用ブロック装着部７０の２番目の開口部３０に装着されたブロック２０が「右に曲がる」ブロックであると決定し、この決定に応答して右に曲がるように移動する（ステップ２）。次に、装置１０は、逐次処理用ブロック装着部７０の３番目の開口部３０に装着されたブロック２０が「前に進む」ブロックであると決定し、この決定に応答して前方に移動する（ステップ３）。
【００３６】
なお、逐次処理用ブロック装着部７０の１番目、２番目、３番目の開口部３０がどの位置にある開口部３０であるかは予め決められている。図３Ｂに示される例では、図２に示される実線の矢印によって示される順序に沿って、１番目の開口部３０が最下行の１番左の開口部３０であり、２番目の開口部３０が最下行の左から２番目の開口部３０であり、３番目の開口部３０が最下行の左から３番目の開口部３０であるとして説明しているが、これに限定されない。また、装置１０が前方に移動する際にどの距離だけ前方に移動するのかも予め決められている。その距離は、例えば、コースの１マス分の距離であるが、これに限定されない。さらに、装置１０が右に曲がる際にどの角度で右に曲がるのかも予め決められている。その角度は、例えば、９０°であるが、これに限定されない。
【００３７】
以下、図４Ａ〜図４Ｄを参照して、図３Ａおよび図３Ｂに示されるように３個のブロック２０が逐次処理用ブロック装着部７０の３個の開口部３０にそれぞれ装着された状態で、装置１０のスタートボタン５０が押下された場合に、装置１０が、与えられたコース４００上をどのように移動するかを説明する。ここで、与えられたコース４００は、３×３のマスからなり、スタート地点は与えられたコース４００の左下のマスであると仮定する。
【００３８】
図４Ａは、装置１０が、１番目の開口部３０に装着されたブロック２０が「前に進む」ブロックであると決定したことに応答して、装置１０が、スタート地点から１マス分、前方に移動する様子を示す（ステップ１）。
【００３９】
図４Ｂは、装置１０が、２番目の開口部３０に装着されたブロック２０が「右に曲がる」ブロックであると決定したことに応答して、装置１０が、ステップ１で移動した後のマスと同じマスにおいて、右に９０°曲がるように移動する様子を示す（ステップ２）。
【００４０】
図４Ｃは、装置１０が、３番目の開口部３０に装着されたブロック２０が「前に進む」ブロックであると決定したことに応答して、装置１０が、ステップ２で移動した後のマスから、１マス分、前方に移動する様子を示す（ステップ３）。
【００４１】
図４Ｄは、装置１０が、ステップ３で移動した後の状態を示す。
【００４２】
このようにして、３個のブロック２０が逐次処理用ブロック装着部７０の３個の開口部３０にそれぞれ装着された状態でスタートボタン５０が押下されることにより、３個のブロック２０に対応する上述したステップ１、２、３が逐次実行される。ユーザは、図４Ａ〜図４Ｄに示されるように装置１０が移動する様子を観察することによって、３個のブロック２０に対応する上述したステップ１、２、３が逐次実行される様子を体験的に学習することが可能である。
【００４３】
なお、実行中のステップと実行中でないステップとを区別して示すために、実行中のステップに対応するブロック２０と実行中でないステップに対応するブロック２０とを区別して示すことが好ましい。このことは、例えば、実行中のステップに対応するブロック２０から光が出射されるのに対して、実行中でないステップに対応するブロック２０から光が出射されないようにすることによって達成される。ブロック２０自体が発光体であってもよいが、コストや消費電力を考慮すると、ブロック装着部６０に内蔵された１つ以上の光源（例えば、１つ以上のＬＥＤ光源）からの光（例えば、赤色光）がブロック２０を介して外部に出射されるようにブロック装着部６０およびブロック２０を構成することが好ましい。例えば、ブロック２０の上面の矢印部分を透過性材料で形成するようにしてもよい。
【００４４】
図４Ａに示される装置１０の上面図は、ステップ１に対応するブロック２０から光を出射することによって、ブロック２０が実行中である様子を示す。図４Ｂに示される装置１０の上面図は、ステップ２に対応するブロック２０から光を出射することによって、ブロック２０が実行中である様子を示す。図４Ｃに示される装置１０の上面図は、ステップ３に対応するブロック２０から光を出射することによって、ブロック２０が実行中である様子を示す。図４Ｄに示される装置１０の上面図は、ブロック２０のすべてから光を出射することによって、プログラムの実行が終了した様子を示す。図４Ａ〜図４Ｄに示される上面図において、黒塗りの矢印によって示される部分は、光が出射されている部分を示す。
【００４５】
同様にして、ブロック２０から出射される光の明滅によって、ブロック２０の装着完了、プログラム実行の初期状態、エラー表示などの少なくとも１つを示すようにブロック装着部６０およびブロック２０を構成するようにしてもよい。
【００４６】
３．２  ループ処理に関連する動作
図５Ａは、１個のブロック２０が逐次処理用ブロック装着部７０の１個の開口部３０に装着され、２個のブロック２０がループ処理用ブロック装着部８０の２個の開口部３０にそれぞれ装着された状態の装置１０の外観を示す斜視図である。
【００４７】
図５Ｂは、図５Ａに示される状態の装置１０の上面図である。逐次処理用ブロック装着部７０に装着されたブロック２０は、「ループ」ブロックである。ループ処理用ブロック装着部８０に装着された左のブロック２０は、「前に進む」ブロックであり、右のブロック２０は、「右に曲がる」ブロックである。
【００４８】
図５Ａおよび図５Ｂに示されるように１個のブロック２０が逐次処理用ブロック装着部７０の１個の開口部３０に装着され、２個のブロック２０がループ処理用ブロック装着部８０の２個の開口部３０にそれぞれ装着された状態で、装置１０のスタートボタン５０が押下された場合に、装置１０は、逐次処理用ブロック装着部７０およびループ処理用ブロック装着部８０に装着されたブロックの種類および順序に応じて移動する。具体的には、装置１０は、逐次処理用ブロック装着部７０の１番目の開口部３０に装着されたブロック２０が「ループ」ブロックであると決定し、この決定に応答してループ処理を繰り返す。このループ処理がどのようなものであるかは、ループ処理用ブロック装着部８０に装着されたブロックの種類および順序に応じて定義されている。具体的には、「ループ処理」は、ループ処理用ブロック装着部８０の１番目の開口部３０に装着された「前に進む」ブロック２０およびループ処理用ブロック装着部８０の２番目の開口部３０に装着された「右に曲がる」ブロック２０によって定義されている。
【００４９】
また、ループ処理を繰り返す回数は予め決められている。図５Ｂに示される例では、ループを繰り返す回数は２回であるものとして説明するが、これに限定されない。ループ処理を繰り返す回数は任意の回数であってよい（例えば、３回ループ、５回ループなど）。特に、ループ処理を繰り返す回数は１回であってもよい。この場合は、ループ処理が繰り返されることがないため所謂サブルーチンと同等の処理である。あるいは、「１回ループ」ブロック、「２回ループ」ブロック、「３回ループ」ブロック、「５回ループ」ブロックなどループ回数がそれぞれ異なる複数の種類の「ループ」ブロックを設けるようにしてもよい。
【００５０】
以下、図６Ａ〜図６Ｅを参照して、図５Ａおよび図５Ｂに示されるように１個のブロック２０が逐次処理用ブロック装着部７０の１個の開口部３０に装着され、２個のブロック２０がループ処理用ブロック装着部８０の２個の開口部３０にそれぞれ装着された状態で、装置１０のスタートボタン５０が押下された場合に、装置１０が、与えられたコース６００上をどのように移動するかを説明する。ここで、与えられたコース６００は、３×３のマスからなり、スタート地点は与えられたコース６００の左下のマスであると仮定する。
【００５１】
装置１０は、逐次処理用ブロック装着部７０の１番目の開口部３０に装着されたブロック２０が「ループ」ブロックであると決定したことに応答して、装置１０が、ループ処理を繰り返す。
【００５２】
図６Ａは、装置１０が、１回目のループ処理の１番目のブロックとして定義されているブロック２０（すなわち、ループ処理用ブロック装着部８０の１番目の開口部３０に装着されたブロック２０）が「前に進む」ブロックであることを決定し、この決定に応答して、スタート地点から１マス分、前方に移動する様子を示す（ステップ１）。
【００５３】
図６Ｂは、装置１０が、１回目のループ処理の２番目のブロックとして定義されているブロック２０（すなわち、ループ処理用ブロック装着部８０の２番目の開口部３０に装着されたブロック２０）が「右に曲がる」ブロックであることを決定し、この決定に応答して、ステップ１で移動した後のマスと同じマスにおいて、右に９０°曲がるように移動する様子を示す（ステップ２）。
【００５４】
図６Ｃは、装置１０が、２回目のループ処理の１番目のブロックとして定義されているブロック２０（すなわち、ループ処理用ブロック装着部８０の１番目の開口部３０に装着されたブロック２０）が「前に進む」ブロックであることを決定し、この決定に応答して、ステップ２で移動した後のマスから１マス分、前方に移動する様子を示す（ステップ３）。
【００５５】
図６Ｄは、装置１０が、２回目のループ処理の２番目のブロックとして定義されているブロック２０（すなわち、ループ処理用ブロック装着部８０の２番目の開口部３０に装着されたブロック２０）が「右に曲がる」ブロックであることを決定し、この決定に応答して、ステップ３で移動した後のマスと同じマスにおいて、右に９０°曲がるように移動する様子を示す（ステップ４）。
【００５６】
図６Ｅは、装置１０が、ステップ４で移動した後の状態を示す。
【００５７】
このようにして、１個のブロック２０が逐次処理用ブロック装着部７０の１個の開口部３０に装着され、２個のブロック２０がループ処理用ブロック装着部８０の２個の開口部３０に装着され状態でスタートボタン５０が押下されることにより、１個のブロック２０から呼び出されたループ処理（すなわち、２個のブロック２０によって定義されたループ処理）が、所定の回数（例えば、２回）分、繰り返し実行される。ユーザは、図６Ａ〜図６Ｅに示されるように装置１０が移動する様子を観察することによって、１個のブロック２０から呼び出されたループ処理が繰り返し実行される様子を体験的に学習することが可能である。
【００５８】
なお、ループ処理中においても、実行中のステップと実行中でないステップとを区別して示すために、実行中のステップに対応するブロック２０と実行中でないステップに対応するブロック２０とを区別して示すことが好ましい。このことは、例えば、実行中のステップに対応するブロック２０から光が出射されるが、実行中でないステップに対応するブロック２０から光が出射されないようにすることによって達成される。ブロック２０自体が発光体であってもよいが、コストや消費電力を考慮すると、ブロック装着部６０に内蔵された１つ以上の光源（例えば、１つ以上のＬＥＤ光源）からの光（例えば、赤色光）がブロック２０を介して外部に出射されるようにブロック装着部６０およびブロック２０を構成することが好ましい。例えば、ブロック２０の上面の矢印部分を透過性材料で形成するようにしてもよい。
【００５９】
図６Ａに示される装置１０の上面図は、ステップ１に対応するブロック２０から光を出射することによって、ステップ１に対応するブロック２０が実行中である様子を示す。図６Ｂに示される装置１０の上面図は、ステップ２に対応するブロック２０から光を出射することによって、ステップ２に対応するブロック２０が実行中である様子を示す。図６Ｃに示される装置１０の上面図は、ステップ３に対応するブロック２０から光を出射することによって、ステップ３に対応するブロック２０が実行中である様子を示す。図６Ｄに示される装置１０の上面図は、ステップ４に対応するブロック２０から光を出射することによって、ステップ４に対応するブロック２０が実行中である様子を示す。図６Ｅに示される装置１０の上面図は、ブロック２０のすべてから光を出射することによって、プログラムの実行が終了した様子を示す。図６Ａ〜図６Ｅに示される上面図において、黒塗りの矢印によって示される部分は、光が出射されている部分を示す。
【００６０】
同様にして、ブロック２０から出射される光の明滅によって、ブロック２０の装着完了、プログラム実行の初期状態、エラー表示などのうちの少なくとも１つを示すようにブロック装着部６０およびブロック２０を構成するようにしてもよい。
【００６１】
３．３  分岐処理に関連する動作
図７は、装置１０の底面９０に搭載されたカラーセンサ１００を示す。カラーセンサ１００は、装置１０の底面９０に対向する面の色を検出し、検出された色を示す信号を出力する。装置１０は、カラーセンサ１００から出力される信号に応じて、分岐処理を実行する。ただし、カラーセンサ１００は、装置１０が「前に進む」ブロックまたは「後ろに進む」ブロックに応じて移動したときにのみ作動されるものとする。
【００６２】
以下、図８Ａ〜図８Ｄを参照して、図３Ａおよび図３Ｂに示されるように３個のブロック２０が逐次処理用ブロック装着部７０の３個の開口部３０にそれぞれ装着された状態で、装置１０のスタートボタン５０が押下された場合に、装置１０が、与えられたコース８００上をどのように移動するかを説明する。ここで、与えられたコース８００は、３×３のマスからなり、３×３のマスの中心のマスの色は赤色（図８Ａ〜図８Ｄでは、斜線で示す）であるが、それ以外のマスの色は白色であり、スタート地点は与えられたコース８００の左下のマスであると仮定する。
【００６３】
図８Ａは、装置１０が、１番目の開口部３０に装着されたブロック２０が「前に進む」ブロックであると決定したことに応答して、装置１０が、スタート地点から１マス分、前方に移動する様子を示す（ステップ１）。装置１０は、ステップ１で移動した後のマスにおいて、カラーセンサ１００から出力される信号を判定する。この場合、カラーセンサ１００から出力される信号は「白色」を示す信号であるから、装置１０は、処理を続行する。
【００６４】
図８Ｂは、装置１０が、２番目の開口部３０に装着されたブロック２０が「右に曲がる」ブロックであると決定したことに応答して、装置１０が、ステップ１で移動した後のマスと同じマスにおいて、右に９０°曲がるように移動する様子を示す（ステップ２）。
【００６５】
図８Ｃは、装置１０が、３番目の開口部３０に装着されたブロック２０が「前に進む」ブロックであると決定したことに応答して、装置１０が、ステップ２で移動した後のマスから、１マス分、前方に移動する様子を示す（ステップ３）。装置１０は、ステップ２で移動した後のマスにおいて、カラーセンサ１００から出力される信号を判定する。この場合、カラーセンサ１００から出力される信号は「赤色」を示す信号であるから、装置１０は、処理を最初の処理（すなわち、１番目の開口部３０に装着されたブロック２０に対応する処理）の直前に分岐させる。その結果、装置１０は、ステップ３で移動した後のマスから、ステップ１〜３を再実行することになる。
【００６６】
図８Ｄは、ステップ１の再実行により、１番目の開口部３０に装着されたブロック２０が「前に進む」ブロックであると決定したことに応答して、装置１０が、スタート地点から１マス分、前方に移動する様子を示す（ステップ４）。装置１０は、ステップ４で移動した後のマスにおいて、カラーセンサ１００から出力される信号を判定する。この場合、カラーセンサ１００から出力される信号は「白色」を示す信号であるから、装置１０は、処理を続行する。
【００６７】
このようにして、３個のブロック２０が逐次処理用ブロック装着部７０の３個の開口部３０にそれぞれ装着された状態でスタートボタン５０が押下されることにより、３個のブロック２０に対応する上述したステップ１、２、３が逐次実行され、カラーセンサ１００によって検出された色が所定の条件を満たすか否かに応じて、分岐処理を実行するか否かが決定される。ユーザは、図８Ａ〜図８Ｄに示されるように装置１０が移動する様子を観察することによって、分岐処理が実行される様子を体験的に学習することが可能である。
【００６８】
なお、分岐処理を実行するために満たすべき条件およびその条件が満たされた場合の処理の分岐先は、上述した例に限定されない。例えば、分岐処理を実行するために満たすべき条件は、「カラーセンサ１００から出力される信号が「青色」を示す信号である場合」であってもよいし、「カラーセンサ１００から出力される信号が「緑色」を示す信号である場合」であってもよい。さらに、その条件が満たされた場合の処理の分岐先は、処理の任意の地点であり得る。例えば、その条件が満たされた場合の処理の分岐先は、「１つ前の処理に戻る」であってもよいし、「３つ前の処理に戻る」であってもよい。
【００６９】
また、上述したカラーセンサ１００に代えて、カラーセンサ以外のセンサを用いることも可能である。そのようなセンサは、装置１０の外部の情報を検出しその検出された情報を示す信号を出力するセンサであれば任意のセンサであり得る。また、このようなセンサは、装置１０の外部の情報を検出することができる限り、装置１０の任意の場所に搭載されることが可能である。
【００７０】
４．プログラミング学習用の装置（”ＰＥＴＳ”）の処理
図１Ａを参照して説明したように、装置１０は、ブロック装着部６０に装着されているブロック２０の種類および順序に応じて、装置１０の移動を制御する。このような制御は、制御部２００によって行われる。制御部２００は、装置１０の筐体（例えば、図１１に示される筐体１０ａ）内に収納されている。
【００７１】
図９は、制御部２００の構成の一例を示すブロック図である。制御部２００は、プロセッサ部２１０と、メモリ部２１２と、ブロック装着検出回路２２０と、センサ出力回路２３０と、光源駆動回路２４０と、モータ駆動回路２５０とを含む。
【００７２】
プロセッサ部２１０は、装置１０の全体の動作を制御する。メモリ部２１２には、処理を実行するために必要とされるプログラムやそのプログラムの実行に必要とされるデータ等が格納されている。ここで、プログラムをどのようにしてメモリ部２１２に格納するかは問わない。例えば、プログラムは、メモリ部２１２にプリインストールされていてもよい。あるいは、プログラムは、インターネットなどのネットワークを介してダウンロードされることによってメモリ部２１２にインストールされるようにしてもよいし、光ディスクやＵＳＢなどの記憶媒体を介してメモリ部２１２にインストールされるようにしてもよい。メモリ部２１２に格納されているプログラムは、例えば、上述した逐次処理、ループ処理、分岐処理を実行するプログラムである。プロセッサ部２１０は、メモリ部２１２に格納されているプログラムを読み出し、そのプログラムを実行する。これにより、装置１０は、ブロック装着部６０に装着されたブロック２０の種類および順序に応じて移動することが可能である。
【００７３】
ブロック装着検出回路２２０は、ブロック装着部６０（図１Ａを参照）に接続されている。ブロック装着検出回路２２０は、ブロック２０がブロック装着部６０に装着されていることを検出し、ブロック装着部６０に装着されているブロック２０の種類に対応する電圧を示す信号をプロセッサ部２１０に出力する。
【００７４】
センサ出力回路２３０は、カラーセンサ１００の出力に接続されている。センサ出力回路２３０は、カラーセンサ１００の出力を示す信号をプロセッサ部２１０に出力する。
【００７５】
光源駆動回路２４０は、プロセッサ部２１０からの命令に応じて、光源（例えば、ＬＥＤ）駆動することによって光源から出射される光の明滅を制御する。これにより、ブロック２０から出射される光（例えば、赤色光）の明滅が制御される。
【００７６】
モータ駆動回路２５０は、モータ２５２に接続されている。モータ駆動回路２５０は、プロセッサ部２１０からの命令に応じて、モータ２５２を駆動する。モータ２５２が駆動されることにより、モータ２５２の回転力がギア機構２５４を介して車輪２５６に伝達される。車輪２５６が回転することにより、装置１０が移動することが可能である。なお、場合には、モータ２５２の回転力を直接的に車輪２５６に伝達する場合には、ギア機構２５４を省略することも可能である。モータ２５２の電源としては、例えば、バッテリ（図示せず）を用いることが可能である。
【００７７】
なお、図９に示される制御部２００に含まれる構成要素は、単一のハードウェア部品で構成されていてもよいし、複数のハードウェア部品で構成されていてもよい。制御部２００の構成は、特定のハードウェア構成には限定されない。
【００７８】
図１０Ａ〜図１０Ｃは、プロセッサ部２１０によって実行される処理の手順の一例を示すフローチャートである。この処理は、例えば、プログラムの形式でメモリ部２１２に格納されている。プロセッサ部２１０は、メモリ部２１２に格納されているプログラムを読み出し、そのプログラムを実行する。
【００７９】
プロセッサ部２１０によって実行される処理は、前処理ステップ（ステップ１００１〜１００４）と、逐次処理ステップ（ステップ１００５〜１０１０）と、分岐処理ステップ（ステップ１０１１〜１０１５）と、ループ処理ステップ（ステップ１０１６〜１０２２）とを含む。
【００８０】
４．１  前処理ステップ（ステップ１００１〜１００４）
前処理ステップは、ステップ１００１から開始される。ステップ１００２において、プロセッサ部２１０は、スタートボタン５０が押下されたか否かを決定する。スタートボタン５０が押下されない限り、プロセッサ部２１０の処理は、ステップ１００２から先に進まない。スタートボタンが押下されると、処理は、ステップ１００３に進む。
【００８１】
ステップ１００３において、プロセッサ部２１０は、ブロック装着部６０に装着されているブロック２０の種類および順序を検出し、検出された情報をブロックリストに保存する。具体的には、プロセッサ部２１０は、逐次処理用ブロック装着部７０に装着されているブロック２０の種類および順序を検出し、検出された情報を逐次処理用ブロックリストに保存するとともに、ループ処理用ブロック装着部８０に装着されているブロック２０の種類および順序を検出し、検出された情報をループ処理用ブロックリストに保存する。逐次処理用ブロックリストおよびループ処理用ブロックリストのそれぞれは、どの種類のブロックがどのような順序で装着されているかを示すリストである。
【００８２】
例えば、逐次処理用ブロック装着部７０に９個の開口部３０が形成されている場合には、逐次処理用ブロックリストは、９個のポケットを備えている。各ポケットは、逐次処理用ブロック装着部７０に形成されている開口部３０に装着されているブロック２０に対応する。逐次処理用ブロックリストのそれぞれのポケットには、検出されたブロック２０の順序に従って、検出されたブロック２０の種類を示す値が格納される。
【００８３】
例えば、ループ処理用ブロック装着部８０に３個の開口部３０が形成されている場合には、ループ処理用ブロックリストは、３個のポケットを備えている。各ポケットは、ループ処理用ブロック装着部８０に形成されている開口部３０に装着されているブロック２０に対応する。ループ処理用ブロックリストのそれぞれのポケットには、検出されたブロック２０の順序に従って、検出されたブロック２０の種類を示す値が格納される。
【００８４】
プロセッサ部２１０は、これらのブロックリストに従って処理を実行する。
【００８５】
ステップ１００４において、プロセッサ部２１０は、変数を初期化する処理を実行する。具体的には、ｊ＝１、ｋ＝１、ｌ＝１、ｌｅｎｇｔｈ  Ａ＝逐次処理用ブロックリストの長さ、ｌｅｎｇｔｈ  Ｂ＝ループ処理用ブロックリストの長さという演算が実行される。
【００８６】
４．２  逐次処理ステップ（ステップ１００５〜１０１０）
ステップ１００５において、プロセッサ部２１０は、ｊの値とｌｅｎｇｔｈ  Ａの値とを比較することにより、ｊ≦ｌｅｎｇｔｈ  Ａという不等式が成立するか否かを判定する。ステップ１００５における判定結果が「Ｙｅｓ」である場合には、処理は、ステップ１００６に進む。ステップ１００５における判定結果が「Ｎｏ」場合には、ステップ１０１０に進み、逐次処理ステップは終了する。
【００８７】
ステップ１００６において、プロセッサ部２１０は、ループ処理用ブロックリストのｊ番目のブロックがどの種類のブロックであるかを判定する。逐次処理用ブロックリストのｊ番目のブロックが「ループ」ブロックであると判定された場合には、処理は、ループ処理ステップのためにステップ１０１６に進む。逐次処理用ブロックリストのｊ番目のブロックが「ループ」ブロックでないと判定された場合には、処理は、ステップ１００７に進む。
【００８８】
ステップ１００７において、プロセッサ部２１０は、逐次処理用ブロックリストのｊ番目のブロックに応じた動作を実行する。
【００８９】
ステップ１００８において、プロセッサ部２１０は、ループ処理用ブロックリストのｊ番目のブロックがどの種類のブロックであるかを判定する。逐次処理用ブロックリストのｊ番目のブロックが「前に進む」ブロックまたは「後ろに進む」ブロックであると判定された場合には、処理は、分岐処理ステップのためにステップ１０１１に進む。逐次処理用ブロックリストのｊ番目のブロックが「前に進む」ブロック、「後ろに進む」ブロックのいずれでもないと判定された場合には、処理は、ステップ１００９に進む。
【００９０】
ステップ１００９において、プロセッサ部２１０は、変数ｊの値を１だけインクリメントする（ｊ＝ｊ＋１）。その後、処理は、ステップ１００５に戻る。このようにして、ステップ１００５における判定結果が「Ｎｏ」になるまで、処理は、ステップ１００５〜１００９を繰り返す。
【００９１】
４．３  分岐処理ステップ（ステップ１０１１〜１０１５）
ステップ１０１１において、プロセッサ部２１０は、ブロックに応じた動作を実行した後、カラーセンサ１００から出力される信号が「赤色」を示す信号であるか「青色」を示す信号であるか「緑色」を示す信号であるか「白色」を示す信号であるかを判定する。
【００９２】
カラーセンサ１００から出力される信号が「赤色」を示す信号であると判定された場合には、ステップ１０１２において、プロセッサ部２１０は、ｊの値を１に設定する。その後、処理は、ステップ１００５に戻る。
【００９３】
カラーセンサ１００から出力される信号が「青色」を示す信号であると判定された場合には、ステップ１０１３において、プロセッサ部２１０は、ｊの値を２だけデクリメントする（ｊ＝ｊ−２）。その後、処理は、ステップ１００５に戻る。
【００９４】
カラーセンサ１００から出力される信号が「緑色」を示す信号であると判定された場合には、ステップ１０１４において、プロセッサ部２１０は、ｊの値を３だけデクリメントする（ｊ＝ｊ−３）。その後、処理は、ステップ１００５に戻る。
【００９５】
カラーセンサ１００から出力される信号が「白色」を示す信号であると判定された場合には、ステップ１０１５において、プロセッサ部２１０は、ｊの値を１だけインクリメントする（ｊ＝ｊ＋１）。その後、処理は、ステップ１００５に戻る。
【００９６】
４．４  ループ処理ステップ（ステップ１０１６〜１０２２）
ステップ１０１６において、プロセッサ部２１０は、「ループ」ブロックによって繰り返される処理の回数ｎを設定する。ここで、ｎは所定の値であってもよいし、「ループ」ブロックによって設定される値であってもよい。例えば、「２回ループ」する場合には、ｎ＝２に設定される。
【００９７】
ステップ１０１７において、プロセッサ部２１０は、ｌの値とｎの値とを比較することにより、ｌ≦ｎという不等式が成立するか否かを判定する。ステップ１０１７における判定結果が「Ｙｅｓ」である場合には、処理は、ステップ１０１８に進む。ステップ１０１７における判定結果が「Ｎｏ」である場合には、処理は、ステップ１００５に進む。
【００９８】
ステップ１０１８において、プロセッサ部２１０は、ｋの値とｌｅｎｇｔｈ  Ｂの値とを比較することにより、ｋ≦ｌｅｎｇｔｈ  Ｂという不等式が成立するか否かを判定する。ステップ１０１８における判定結果が「Ｙｅｓ」である場合には、処理は、ステップ１０２０に進む。ステップ１０１８における判定結果が「Ｎｏ」である場合には、ステップ１０１９において、プロセッサ部２１０は、ｌの値を１だけインクリメントする（ｌ＝ｌ＋１）。その後、処理は、ステップ１０１７に戻る。
【００９９】
ステップ１０２０において、プロセッサ部２１０は、ループ処理用ブロックリストのｋ番目のブロックに応じた動作を実行する。
【０１００】
ステップ１０２１において、プロセッサ部２１０は、ループ処理用ブロックリストのｋ番目のブロックがどの種類のブロックであるかを判定する。ループ処理用ブロックリストのｋ番目のブロックが「前に進む」ブロックまたは「後ろに進む」ブロックであると判定された場合には、処理は、ステップ１０１１に進む。ループ処理用ブロックリストのｋ番目のブロックが「前に進む」ブロック、「後ろに進む」ブロックのいずれでもないと判定された場合には、処理は、ステップ１０２２に進む。
【０１０１】
ステップ１０２２において、プロセッサ部２１０は、ｋの値を１だけインクリメントする（ｋ＝ｋ＋１）。その後、処理は、ステップ１０１８に戻る。このようにして、ステップ１０１８における判定結果が「Ｎｏ」になるまで、処理は、ステップ１０１８〜１０２２を繰り返す。
【０１０２】
５．プログラミング学習用の装置（”ＰＥＴＳ”）の内部構造
図１１は、装置１０の内部構造の一例を示す分解斜視図である。
【０１０３】
装置１０は、複数のブロック２０を装着することが可能なように構成されたブロック装着部６０を含む。ブロック装着部６０は、筐体１０ａに取り付けられている。ブロック装着部６０は、ブロックガイド基板６２とブロック装着基板６４とを含む。
【０１０４】
ブロックガイド基板６２には、複数の開口部３０が形成されている。ブロックガイド基板６２は、ブロック装着基板６４に対向するようにブロック装着基板６４上に配置されている。ブロックガイド基板６２の開口部３０に対向するブロック装着基板６４の部分には、ブロック装着領域１２０が形成されている。ここで、開口部３０は、装置１０が前に進む方向を基準としてブロック２０がブロック装着領域１２０に装着されるように構成されている。
【０１０５】
５．１  ブロック２０の構造
装置１０の内部構造の詳細を説明する前に、ブロック２０の構造の詳細を説明する。
【０１０６】
図１２Ａは、図１Ｂに示されるブロック２０を斜め上方から見た斜視図である。
【０１０７】
図１２Ｂは、図１Ｂに示されるブロック２０を斜め下方から見た斜視図である。
【０１０８】
図１２Ａおよび図１２Ｂに示されるように、ブロック２０は、前面壁２１と背面壁２２と右側面壁２３と左側面壁２４と上面壁２５とを有する。前面壁２１は、ブロック２０がブロック装着部６０に装着されたときに、装置１０が前に進む方向を向いている壁である。背面壁２２は、ブロック２０がブロック装着部６０に装着されたときに、装置１０が後ろに進む方向に向いている壁である。右側面壁２３は、前面壁２１側から前方を見たときに右側に位置する壁である。左側面壁２４は、前面壁２１側から前方を見たときに左側に位置する壁である。上面壁２５は、前面壁２１、背面壁２２、右側面壁２３、左側面壁２４の上端側に位置する壁である。
【０１０９】
ここで、右側面壁２３の下端部には、スリット部２３ａが形成されている。さらに、右側面壁２３の下端縁には、切欠き部２３ｂが形成されている。上面壁２５には、ブロック２０の種類を示す表記部２７が設けられている。表記部２７には、個々のブロックによる命令の内容が示されている。さらに、前面壁２１の下端には、ブロック２０の種類を表す抵抗値を有する抵抗体２６が取り付けられている。この抵抗体２６に基づいて発生する電圧によってブロック２０の種類を電気的に検出することが可能である。
【０１１０】
さらに、ブロック２０は、その外観からブロック２０の方向性が認識されるように構成されていることが好ましい。例えば、図１２Ｂに示されるように、ブロック２０の前面壁２１の幅がブロック２０の背面壁２２の幅より広くなっていてもよい。それに加えて、または、それに代えて、図１２Ａに示されるように、上面壁２５の輪郭形状は、ブロック２０の「前方」と「後方」とが区別することができるように形成されていてもよい。これにより、ブロック２０の外観からブロック２０の「前方」と「後方」とを区別することが可能である。従って、ブロック２０の外観からブロック２０の「右方」と「左方」とを区別することもまた可能である。
【０１１１】
５．２  ブロックガイド基板６２
図１３Ａは、ブロックガイド基板６２に形成された開口部３０を示す上面図である。
【０１１２】
図１３Ｂは、図１２Ａに示すブロック２０のＢ−Ｂ線部分の断面構造を示す上面図である。
【０１１３】
図１３Ｃは、ブロック２０が開口部３０に挿入された状態で、ブロック２０のＢ−Ｂ線部分の断面構造と共に開口部３０を示す上面図である。
【０１１４】
ブロックガイド基板６２に形成された開口部３０は、開口部３０の中心に対して装置１０の前側に位置する開口部前縁３１ａと、開口部３０の中心に対して装置１０の後側に位置する開口部後縁３２ａと、開口部３０の左右に位置する開口部右縁３３ａおよび開口部左縁３４ａとを有する。開口部３０は、開口部前縁３１ａを上底とし、開口部後縁３２ａを下底とするとほぼ等脚台形の形状を有する。
【０１１５】
開口部前縁３１ａは、中央部分が前方側に凹んだ形状となっている。開口部後縁３２ａの中央部分には、開口部３０の内側に迫り出した後縁迫出し部３２ａ１が形成されている。また、開口部右縁３３ａの開口部前縁３１ａに隣接する部分には開口部３０の内側に迫り出した右迫出し部３３ａ１が形成され、開口部左縁３３ａの開口部前縁３１ａに隣接する部分には、開口部３０の内側に迫り出した左迫出し部３４ａ１が形成されている。
【０１１６】
開口部３０は、ブロック２０と同様に、その外観から方向性が認識されるように構成されていることが好ましい。例えば、図１３Ａに示されるように、開口部３０は、左右方向に対称であり、かつ、前後方向に非対称である形状を有していてもよい。これにより、開口部３０の外観から開口部３０の「前方」と「後方」とを区別することが可能である。従って、開口部３０の外観から開口部３０の「右方」と「左方」とを区別することもまた可能である。
【０１１７】
さらに、ブロック２０および開口部３０は、ブロック２０が一方向においてのみ開口部３０に挿入されることが可能であるように構成されていることが好ましい。例えば、図１３Ｃに示されるように、ブロック２０および開口部３０は、ブロック２０の前面壁２１が開口部３０の開口部前縁３１ａに接触し、かつ、ブロック２０の背面壁２２が開口部３０の開口部後縁３２ａに接触する態様で、ブロック２０を開口部３０に対して位置合わせをした場合にのみ、ブロック２０が開口部３０に挿入されることが可能であるように構成されてもよい。これにより、ブロック２０が誤った方向で開口部３０に挿入されることを防止することが可能である。
【０１１８】
ブロック２０が開口部３０に挿入されたとき、ブロック２０の右側面壁２３が右迫出し部３３ａ１に当接し、ブロック２０の左側面壁２３が左迫出し部３４ａ１に当接することにより、ブロック２０が開口部３０内で左右方向に位置決めされる。また、ブロック２０が開口部３０に挿入されたとき、ブロック２０の前面壁２１の右側縁が開口部３０の開口部前縁３１ａの右側端部に当接し、ブロック２０の前面壁２１の左側縁が開口部３０の開口部前縁３１ａの左側端部に当接し、ブロック２０の背面壁２２が開口部３０の開口部後縁３２ａの後縁迫出し部３２ａ１に当接することにより、ブロック２０が開口部３０内で前後方向に位置決めされる。
【０１１９】
このようにブロックガイド基板６２の開口部３０の形状は、開口部３０の縁が開口部３０に挿入されたブロック２０の側面壁と点接触することによりブロック２０が前後左右に位置決めされるように構成されている。
【０１２０】
このようにブロックガイド基板６２の開口部３０内に挿入されたブロック２０と開口部３０の内側との接触面積を小さくすることにより、ブロック２０を開口部３０に挿入したときの抵抗を小さくすることができる。
【０１２１】
５．３  ブロック装着基板６４
ブロック装着基板６４は、ブロック２０を装着するための基板である。図１１に示される例では、ブロック装着基板６４は、１２個のブロック装着領域１２０を有しているが、これに限定されない。ブロック装着基板６４は、任意の数のブロック装着領域１２０を有することが可能である。ブロック装着基板６４は、各ブロック装着領域１２０に１つのブロック２０が装着されるように構成されている。
【０１２２】
５．４  ブロック装着領域１２０
図１４は、図１１に示されるＡ部分（１つのブロック装着領域１２０を含む部分）を拡大したものの斜視図である。
【０１２３】
ブロック装着領域１２０の周囲には、ブロック２０の前面壁２１が当接する前支持支柱６５ａと、ブロック２０の背面壁２２が当接する後支持支柱６５ｂと、ブロック２０の右側面壁２３が当接する右支持支柱６５ｃと、ブロック２０の左側面壁２４が当接する左支持支柱６５ｄとが設けられている。ここで、右支持支柱６５ｃには、ブロック２０の右側面壁２３に形成されたスリット部２３ａおよび切欠き部２３ｂと係合するバネ部材として板バネ６３が取り付けられている。ここで、切欠き部２３ｂは、ブロック２０の側面壁には、バネ部材とブロック２０とが接触した状態でブロック２０が板バネ６３に対して移動する距離が少なくなるように、側面壁の端部からスリット部２３ａの手前まで切り込まれていることが望ましい。ブロック装着領域１２０には、ブロック２０がブロック装着領域１２０に装着されたとき、ブロック２０の前面壁２１の下端部に取り付けられた抵抗体２６と接触するように、一対の抵抗接続端子６６ａ、６６ｂが取り付けられている。さらに、ブロック装着領域１２０には、ブロック装着領域１２０にブロック２０が装着されたときにブロック装着領域１２０を光らせるための発光素子が設けられている。発光素子２４１は、例えば、発光ダイオードである。ただし、発光素子２４１は、発光ダイオードに限定されない。発光素子２４１は、ブロック装着領域１２０にブロック２０が装着されたときに、ブロック２０が装着されたことを発光により知らせることができるものであればどのようなものでもよい。
【０１２４】
図１５Ａは、ブロック２０がブロック装着領域１２０上に位置する状態を示す斜視図である。
【０１２５】
図１５Ｂは、ブロック２０がブロック装着領域１２０に装着された状態を示す斜視図である。
【０１２６】
以下、図１５Ａおよび図１５Ｂを参照して、ブロック２０がブロック装着基板６４に装着される様子を説明する。
【０１２７】
図１５Ａに示されように、ブロック２０をブロックガイド基板６４の開口部３０に挿入して下方に押し込むと、図１５Ｂに示されるように、ブロック２０は、対応するブロック装着領域１２０上に装着された状態となる。この状態では、ブロック２０の前面壁２１、背面壁２２、左側面壁２４は、ブロック装着領域１２０の周囲に位置する前支持支柱６５ａ、後支持支柱６５ｂ、左支持支柱６５ｄに当接している。ブロック２０の右側面壁２３は、右支持支柱６５ｃに取り付けられた板バネ６３により押し付けられるとともに、板バネ６３の一部が右側面壁２３のスリット部２３ａに係合した状態となっている。これにより、ブロック２０がブロック装着領域１２０に保持されている。また、この状態では、ブロック２０の前面壁２１の裏側に取り付けられている抵抗体２６に、ブロック装着領域１２０に設けられている一対の抵抗接続端子６６ａ、６６ｂが接触してこの一対の抵抗接続端子６６ａ、６６ｂの間に抵抗体２６が接続された状態となっている。
【０１２８】
以下、ブロック２０をブロック装着領域１２０に対して着脱する際にブロック２０のスリット部２３ａおよび切欠き部２３ｂとブロック装着基板６４の板バネ６３との係合状態が変化する様子を具体的に説明する。
【０１２９】
５．５  ブロック２０の装着
図１６Ａ〜図１６Ｅは、ブロック２０がブロック装着基板６４に装着されるときにブロック２０のスリット部２３ａおよび切欠き部２３ｂとブロック装着基板６４の板バネ６３との係合状態が変化する様子をブロック装着開始前の状態からブロック装着完了までに渡って示す。なお、図１６Ａ〜図１６Ｅでは、ブロックガイド基板６２は図示を省略している。
【０１３０】
図１６Ａに示されるように、ブロック２０をブロック装着領域１２０上に配置し、ブロック２０をブロックガイド基板６２の開口部３０を通過させてブロック装着領域１２０に近づける。
【０１３１】
ブロック２０の右側面壁２３の下端には切欠き部２３ｂが形成されているので、図１６Ｂに示されるように、切欠き部２３ｂの上端が板バネ２３ｂに接触するまで、右側面壁２３が板バネ６３に接触しない。
【０１３２】
その後、図１６Ｃに示されるように、ブロック２０をブロック装着領域１２０にさらに近づけると、図１６Ｄに示されるように、板バネ６３が切欠き部２３ｂとその上のスリット部２３ａとの間の右側面壁２３ｂに乗り上げることにより初めて板バネ２３ｂが右側面壁２３ｂを押さえつけることとなる。
【０１３３】
ブロック２０をブロック装着領域１２０にさらに近づけると、図１６Ｅに示されるように、板バネ６３が切欠き部２３ｂの上に位置するスリット部２３ａに係合することとなる。
【０１３４】
このように、ブロック２０の右側面壁２３の下端には切欠き部２３ｂが形成されているので、図１６Ｂに示されるように、切欠き部２３ｂの上端が板バネ２３ｂに接触するまで、右側面壁２３が板バネ６３に接触しないことから、ブロック２０をブロック装着領域１２０に装着するときに、ブロック２０を板バネ６３に抗して押し込む距離を短くすることができる。
【０１３５】
５．６  ブロック２０の取り外し
図１７Ａ〜図１７Ｅは、ブロック２０がブロック装着基板６４から取り外されるときにブロック２０のスリット部２３ａおよび切欠き部２３ｂとブロック装着基板６４の板バネ６３との係合状態が変化する様子をブロック取り外し前の状態からブロック取り外し完了までに渡って示す。なお、図１７Ａ〜図１７Ｅでは、ブロックガイド基板６２は図示を省略している。
【０１３６】
図１７Ａに示されるように、ブロック２０をブロック装着領域１２０から引き抜くように持ち上げると、図１７Ｂに示されるように、板バネ６３が切欠き部２３ｂとその上のスリット部２３ａとの間の右側面壁２３ｂに乗り上げることにより、スリット部２３ａと板バネ２３ｂとの係合がはずれたことの手ごたえが得られる。
【０１３７】
その後、図１７Ｃに示されるように、ブロック２０をブロック装着領域１２０から引き抜くようにさらに持ち上げると、板バネ６３は、ブロック２０の右側面壁２３の下端に形成されている切欠き部２３ｂに入り込み、板バネ６３が切欠き部２３ｂの上縁部に当接した状態となる。この状態では、図１７Ｃに示されるように、ブロック２０には板バネ２３ｂによって上方向の力が働き、ブロック２０が浮き上がってくる感触が得られる。この状態ではブロック２０を引き抜く力を与えなくてもブロック２０は自然と上方に移動する。
【０１３８】
その後、板バネ２３ｂから切欠き部２３ｂの上縁部への力が及ばなくなった状態で、図１７Ｄおよび図１７Ｅに示されるように、ブロック２０を上方へ持ち上げることによりブロック２０をブロックガイド基板６２から引き抜くことができる。
【０１３９】
このようにブロック２０をブロック装着領域１２０から引き抜くように持ち上げると、板バネ６３とスリット部２３ａとの係合が解除された後、板バネ６３がブロック２０の右側面壁２３の下端に形成されている切欠き部２３ｂに入り込むので、ブロック２０には板バネ２３ｂによって上方向の力が働き、ブロック２０が浮き上がってくる感触が得られる。
【０１４０】
５．７  ブロック装着基板６４の電気的な回路構成
図１８Ａは、ブロック２０がブロック装着基板６４に装着されていない状態でのブロック装着基板６４およびブロック装着検出回路２２０の電気的な回路構成の一例を示す。
【０１４１】
図１８Ｂは、種類の異なる２つのブロック２０がブロック装着基板６４に装着された状態でのブロック装着基板６４およびブロック装着検出回路２２０の電気的な回路構成の一例を示す。
【０１４２】
図１９Ａは、２つのブロック２０のうちの一方がブロック装着基板６４に装着される前の状態を示す。
【０１４３】
図１９Ｂは、２つのブロック２０のうちの一方がブロック装着基板６４に装着された後の状態を示す。
【０１４４】
図１９Ｃは、２つのブロック２０のうちの他方がブロック装着基板６４に装着された後の状態を示す。
【０１４５】
図１９Ｄ〜図１９Ｆは、それぞれ、図１９Ａ〜図１９Ｃに示される状態でのブロック装着領域１２０の電気的な回路構成の一例を示す。
【０１４６】
各ブロック装着領域１２０には、発光素子２４１と固定抵抗Ｒ０とが設けられている。固定抵抗Ｒ０の一端は、電源に接続されている。固定抵抗Ｒ０の他端は、測定端子２２１に接続されている。この測定端子２２１は、一対の抵抗接続端子６６ａ、６６ｂの一方である。一対の抵抗接続端子６６ａ、６６ｂの他方は接地されている。ブロック２０がブロック装着領域１２０に装着されると、一対の抵抗接続端子６６ａ、６６ｂがブロック２０の抵抗体２６に接続されることにより、一対の抵抗接続端子６６ａ、６６ｂの間に、各ブロック２０の種類に応じた抵抗値の抵抗が接続されることとなる。
【０１４７】
例えば、図１８Ｂ、図１９Ｂ、図１９Ｃに示されように、第１のブロック装着領域１２０に第１のブロック２０が装着され、第２のブロック装着領域１２０に第２のブロック２０が装着された場合、図１９Ｅおよび図１９Ｆに示されるように、第１のブロック装着領域１２０では、一対の抵抗接続端子６６ａ、６６ｂの間には抵抗Ｒ１が接続され、第２のブロック装着領域１２０では、一対の抵抗接続端子６６ａ、６６ｂの間には抵抗Ｒ２が接続される。なお、図１８Ａおよび図１９Ａに示されるように、ブロック装着領域１２０にブロック２０が装着されていない場合は、図１８Ａおよび図１９Ｄに示されるように、一対の抵抗接続端子６６ａ、６６ｂの間は開放された状態となっている。
【０１４８】
ブロック装着検出回路２２０は、各ブロック到着領域１２０の測定端子２２１に接続されたマルチプレクサ２２０ａと、マルチプレクサ２２０ａの出力端子２２１ａに接続された電圧検出回路２２０ｂとを有する。
【０１４９】
なお、固定抵抗Ｒ０は、各ブロック装着領域１２０に必ずしも１個設ける必要はない。例えば、固定抵抗Ｒ０は、図１８Ｃに示されるように、ブロック装着検出回路２２０の内部に１個だけ設けるようにしてもよい。
【０１５０】
図１８Ｃは、図１８Ａに示されるブロック装着基板６４およびブロック装着検出回路２２０の電気的な回路構成の他の一例を示す。図１８Ｃに示される例では、ブロック装着検出回路２２０において、単一の固定抵抗Ｒ０がマルチプレクサ２２０ａの出力端子２２１ａと電源との間に接続されている。
【０１５１】
６．プログラミング学習用の装置（”ＰＥＴＳ”）の代替的な構成
上述した実施形態では、装置１０は、（移動可能な）車型の装置であるとして説明したが、本発明は、これに限定されない。例えば、装置１０は、車型以外の任意の型（例えば、車以外の乗り物型、動物型、人型など）の装置であってもよい。あるいは、装置１０は、物理的に実際に移動可能な物体である代わりに、コンピュータ画面上で移動可能な物体であってもよい。例えば、複数のブロック２０をコンピュータに接続されたコントローラに装着することによって、ブロック２０の種類および順序に応じて、コンピュータ画面上で移動可能な物体が移動する実施形態もまた本発明の範囲内に含まれる。
【０１５２】
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。
【産業上の利用可能性】
【０１５３】
本発明は、ユーザがプログラミングの概念を体験的に学習することを可能にするプログラミング学習用の装置、方法およびプログラム等を提供するものとして有用である。
【符号の説明】
【０１５４】
１０  プログラミング学習用の装置
２０  ブロック
３０  開口部
５０  スタートボタン
６０  ブロック装着部
７０  逐次処理用ブロック装着部（第１のブロック装着部）
８０  ループ処理用ブロック装着部（第２のブロック装着部）
９０  底面
１００  カラーセンサ
２００  制御部
２１０  プロセッサ部
２１２  メモリ部
【図１Ａ】
0006321066.tif 000002
【図１Ｂ】
0006321066.tif 000003
【図１Ｃ】
0006321066.tif 000004
【図２】
0006321066.tif 000005
【図３Ａ】
0006321066.tif 000006
【図３Ｂ】
0006321066.tif 000007
【図４Ａ】
0006321066.tif 000008
【図４Ｂ】
0006321066.tif 000009
【図４Ｃ】
0006321066.tif 000010
【図４Ｄ】
0006321066.tif 000011
【図５Ａ】
0006321066.tif 000012
【図５Ｂ】
0006321066.tif 000013
【図６Ａ】
0006321066.tif 000014
【図６Ｂ】
0006321066.tif 000015
【図６Ｃ】
0006321066.tif 000016
【図６Ｄ】
0006321066.tif 000017
【図６Ｅ】
0006321066.tif 000018
【図７】
0006321066.tif 000019
【図８Ａ】
0006321066.tif 000020
【図８Ｂ】
0006321066.tif 000021
【図８Ｃ】
0006321066.tif 000022
【図８Ｄ】
0006321066.tif 000023
【図９】
0006321066.tif 000024
【図１０Ａ】
0006321066.tif 000025
【図１０Ｂ】
0006321066.tif 000026
【図１０Ｃ】
0006321066.tif 000027
【図１１】
0006321066.tif 000028
【図１２Ａ】
0006321066.tif 000029
【図１２Ｂ】
0006321066.tif 000030
【図１３Ａ】
0006321066.tif 000031
【図１３Ｂ】
0006321066.tif 000032
【図１３Ｃ】
0006321066.tif 000033
【図１４】
0006321066.tif 000034
【図１５Ａ】
0006321066.tif 000035
【図１５Ｂ】
0006321066.tif 000036
【図１６Ａ】
0006321066.tif 000037
【図１６Ｂ】
0006321066.tif 000038
【図１６Ｃ】
0006321066.tif 000039
【図１６Ｄ】
0006321066.tif 000040
【図１６Ｅ】
0006321066.tif 000041
【図１７Ａ】
0006321066.tif 000042
【図１７Ｂ】
0006321066.tif 000043
【図１７Ｃ】
0006321066.tif 000044
【図１７Ｄ】
0006321066.tif 000045
【図１７Ｅ】
0006321066.tif 000046
【図１８Ａ】
0006321066.tif 000047
【図１８Ｂ】
0006321066.tif 000048
【図１８Ｃ】
0006321066.tif 000049
【図１９Ａ】
0006321066.tif 000050
【図１９Ｂ】
0006321066.tif 000051
【図１９Ｃ】
0006321066.tif 000052
【図１９Ｄ】
0006321066.tif 000053
【図１９Ｅ】
0006321066.tif 000054
【図１９Ｆ】
0006321066.tif 000055