(57)【特許請求の範囲】
【請求項１】
コンピュータプログラミング又はコンピュータプログラミング学習のためのプログラミング支援具であって、
処理の内容が記載される内容表示面を、両端面を除く側周面に有した正四角柱形状をなす実体物であるパーツを複数備え、
前記各パーツは、同一形状であるとともに、順次処理、選択処理及び繰返し処理の３種類の処理毎に色が異なるように構成してあり、かつ、
前記各パーツは、前記内容表示面を同じ方向に向けた姿勢で、他のパーツと接触しながら並べて配置することができる接触面又は接触辺を有し、複数のパーツの並び順によって所望のプロセスを表現可能に構成してあり、
前記パーツの端面には、当該パーツに記載された処理内容の下層ルーチンを指し示す連携パーツが接続されるようにしてあることを特徴とするプログラミング支援具。
【請求項２】
パーツが、立体の短辺の少なくとも３倍以上の長さを持つ正四角柱であり、その両端面を除く側周面に前記内容表示面が設定してあることを特徴とする、請求項１記載のプログラミング支援具。
【請求項３】
請求項１又は２記載のプログラミング支援具を利用して、プログラムを生成し実行するシステムであって、
前記パーツの内容表示面に示された処理内容と、複数のパーツの配置から、文字などのコードデータとレイアウトデータを読み込む手段と、
読み取ったコードデータおよびレイアウトデータを認識する手段と、
認識したデータと格納済みのデータから、プログラム要素とプログラム構成データを解析する解析手段と、
解析したデータからプログラムを生成するプログラム生成部と、
できたプログラムと格納済みの実行用データを用いて制御実行するプログラム実行装置を備えることを特徴とする、プログラム生成実行システム。
【請求項４】
請求項３に記載のプログラム生成実行システムと、該プログラム生成実行システムが生成したプログラムの内容や作成状況を、通信回線を使って、所定のプログラム学習支援サーバーに送信する手段を持つことを特徴とする、プログラム学習支援システム。
【請求項５】
請求項３に記載のプログラム生成実行システムと、該プログラム生成実行システムのデータを受けて、プログラム学習進度を把握し、学習進度に応じ、格納されているプログラム学習支援情報を送信する手段を持つサーバーがあることを特徴とするプログラム学習支援システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、幼児を含む子供やプログラム学習者のプログラム学習やプログラム開発訓練、あるいはプログラム開発者の新規プログラム開発の補助、支援を行うプログラミング支援具等に関するものである。
【背景技術】
【０００２】
近年、人工知能（AI）や、あらゆるモノとインターネットをつなぐ「モノのインターネット（IoT）」などがますます進歩、発展することが見込まれており、コンピュータシステムや通信システムなどのＩＣＴは、生活、ビジネス、学究などあらゆる場面で、人の行動・思考などを補助し支援するツールとして不可欠のものとなってきている。
ＩＣＴは大きくハードとソフトに分けられるが、ソフト、特にアプリケーションソフトを構築するための思考や認識が、ＩＣＴ社会で生きていくためには必然となってきており、小学生や未就学児にもそれらを学習させる方向で政府や教育機関も動いている。【０００３】
ところで、コンピュータソフトは適切な教材により基本から学習すれば、小学生や未就学児でも理解し、プログラムを組むことが可能である。
さらにプログラム学習は、人の行動や思考を整理し理解することにもつながり、一般的な学習やビジネスにも、さらにはプログラムの新規開発にも有用であると考えられる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2018-077342号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のプログラミング学習は、特許文献１に示すように、コンピュータのディスプレイ上で行われるため、コンピュータを使えるという基本能力が要求されるうえ、結局のところ、ディスプレイといういわば、バーチャルな中での学習となるため、身近な生活の中でプログラミング的思考を働かせる能力を育むことは難しい。したがって、例えば、就学未満の４〜５才の子供にプログラミング的思考、あるいは階層構造的な論理思考を学習させるためには、残念ながら、従来のものは、極めて不満足なものといわざるを得ない。【０００６】
なお「プログラム」とは、コンピュータが解釈し、処理（命令）により動作できる記述データのことであるが、ここでは本願発明のパーツの組合せ自体もプログラムと見なし、単に「プログラム」と言う場合もある。【０００７】
プログラムは、複雑なものであっても、単純な構造の組合せで成り立っている。複雑なプログラムであるほど、単純化し視覚的に見える様にすれば、ＮＳチャートに示されるように、構造化プログラミングが可能で、論理的にも、直観的にもわかり易いものになる。
構造化プログラミングのフローチャート（流れ図）は、順次（逐次／連接）、選択（case／条件判断／if文）、繰返し（反復／ループ／for文）の各処理を基本に、その応用である、順の入替あるいは逆転、値による決定、連携または連結などにより表すことができる。
構造化プログラミングは、大規模なプログラムを分担して作成する場合や、プログラムの初歩を学ぶのにも適している。なお、今日のプログラミングの主流であるオブジェクト指向プログラミングも、構造化プログラミングである。【０００８】
ゼロからのプログラミング学習者にとっては、プログラムがどのようなものであり、どのようなプログラムにすれば自分の思った通りのプログラムになるのか、理解し易いものが望まれている。見て（視覚的に）、手に取って（触覚的に）、組立てる（行動する）ことにより、感覚的に、直観的にわかるものが、プログラム入門者の学習に向いている。しかしながら、このようなものが従来見当たらないのが実情である。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、プログラミング支援具のパーツは、文字・数字・記号・マークなど（以下「文字など」と称する）が記載された、あるいは記載することができる複数のパーツであって、その組み合わせまたは配置配列（以下「レイアウト」と称する）により、利用者が視覚的に、あるいは触覚的にプログラムを組立てられるように構成されている。
そのため、文字などやパーツの形状が異なる場合はその形状やレイアウトの構造が理解できれば、プログラムの構成や流れ、処理を、容易に早く理解、認識することができる。【００１０】
プログラミング支援具は、プログラムを作成するプログラム作成用パーツであって、処理内容が記載されたあるいは記載できる（以下単に「記載」と称する）処理パーツと、ケースが記載されたケースパーツと、該ケースに関連することが目視できるように区別表示されたパーツと、該ケースに対応する個別要素（選択肢）の内容が記載されたパーツと、処理やケースを繰り返すことを示す繰返しパーツと、それらに付属して様々な意味を付加する付属パーツを、複数備えている。
なお、個別要素とは、個々の選択肢や処理、ケース、判断などのことで、個別要素パーツとは、処理パーツや選択肢パーツ、ケースパーツ、判断パーツなどを言う。個別要素はプログラム要素とも対応している。
なお、プログラム要素とは、コンピュータに対する命令（処理）を記述するための、要素すなわちプログラムに使う指示・命令語やプログラムに使われるデータである。【００１１】
パーツとは、プログラミング支援具を構成する部品であって、各パーツは片手で持ち動かせる範囲の大きさと重さであって、現実に手で持つことができるものを言い、コンピュータに繋がったディスプレイなどの表示画面上に現れた、表示要素たるパーツのことではない。
片手で持ち動かせる範囲の大きさと重さとは、平面サイズ（置かれたパーツを上から見たサイズ）で概ね１平方センチメートル以上1000平方センチメートル以下、重さで２ｋｇ以下である。大きめのものは、プログラムの学習時に講師などが使用し、受講生に見せるものなどが想定される。
なお、プログラム学習者が使う大きさは、平面サイズ（置かれたパーツを上から見たサイズ）で、概ね１平方センチメートル以上100平方センチメートル以下、重さで300ｇ以下である。【００１２】
処理パーツは、順次処理（逐次処理、連接処理）の内容を示す。
ケースパーツは、個別要素パーツを伴って、それらの個別要素パーツの処理内容を示す。
処理内容は、単に個別要素パーツをグルーピングしそのタイトルとなるものや、選択肢を伴い選択処理を示すものや、判断内容を記載した個別要素パーツを伴って判断処理を示すものや、数値入力を促す表示で入力された数値により個別要素パーツを処理することを示すものなどがある。
判断パーツは、Ｙ判断パーツやＮ判断パーツなどを伴って、判断を促す。【００１３】
繰返しパーツは、繰返しの範囲と繰返しの処理を示す。
付属パーツは、処理パーツやケースパーツ、繰返しパーツに付属し、それらと共に処理の内容に特定の要素を加える働きをする。【００１４】
接続パーツは、処理の流れであるプログラムラインを関係付けることを示す。関係は、単に「接続」の意味だけのものもあれば、無線接続など特別な接続を意味するものや、双方向の接続、通常の１対１とは異なる接続、１対２の接続やクロスする接続など、様々な意味を持たせても良い。
なお、接続処理は、順次処理の一種である。【００１５】
「記載」について詳述する。「記載」とは、印刷、ペイント、刻印、印刷物などの貼付け、レーザーマーキング、手書き、電磁的方法による表示、など手段は問わない。手書き、電磁的方法による表示であれば、記載されたものを適宜変更することができる。
「記載」は、既に記載済みのものだけでなく、筆記具などで書けるようにしたパーツに筆記具で書いたもの、その他、磁石や粘着シート、薄型液晶シートなどに表記させたものや、紙などに記載したものなどを貼り付けたりする場合も含む。
なお、「記載」に関しては、文字などの他、色や柄（パターン）でもよいが、わかり易く、認識し易いのは文字・数字である。
また、実施例のいくつかは、表現している言葉をひらがなにしているが、これは幼児や小学生低学年を意識したからであり、利用者によって、漢字交じり文字、アルファベット、記号、絵文字等でもよい。
また、点字にすることによって、視覚障害者も使えるものになる。【００１６】
また、地模様については、パターンの印刷や着色の代わりに、素材や表面の凹凸や手触りで違いを表現することも可能であり、その場合は手探りでわかるため、視覚障害者も使えるものとなる。
また、パーツ内に空洞を設け、パーツの種類ごとに鈴や砂、木片、樹脂片、金属片など様々なものを入れることで、パーツを持ち上げ振ると鳴る音に違いができ、音でパーツの種類を知ることができる。これにより、視覚障害者もわかり易く、また幼児もより興味を持ち易いものとなる。【００１７】
基本的なパーツの形は、１０文字程度の短文が記載できるよう、またレイアウトのし易さ、見易さ、わかり易さなどから、またパーツの単純化のため、横長の長方形であることが好ましい。また、パーツの縦方向の長さ（いわゆる「幅」に該当する。パーツを平面に置いて垂直に上方から見た平面視の形の上下方向（縦方向）の長さ：以下「単位」と称する）は最小を１単位として、基本整数単位の１単位で統一され、さらに複数の個別要素パーツの縦方向の長さも整数単位で統一されていることが好ましい。
さらに横方向の長さも同じに統一され、処理パーツとケースパーツの長さ他、他のパーツの長さも含め、整数単位でそれぞれ統一されていることが、プログラムのイメージに近いものとなり、かつ組み易さからも好ましい。【００１８】
これにより各パーツを組立てることも、レイアウトもし易くなり、画像認識によるプログラムの読取りもしやすくなる。
パーツはカード型などの平面的なものでもよい。その場合は、裏表の２面に文字などが記載できる。
パーツが、立方体の正方形を構成する辺（縦方向の長さ：１単位）の少なくとも３倍（３単位）以上の長さを持つ正四角柱の角柱であると、該長方形の４面に文字などを記載することができる。これにより少ないパーツで、多種の文字などが記載できるので、パーツの利用範囲が広がり、より好ましい。【００１９】
パーツの記載は平面上に置いた場合に少なくともパーツの記載の１つが、置いた平面と平行な面に現れることが好ましい。これは、人が視点を動かさずともレイアウトしたパーツ全体を見え易くするためと、実行可能なプログラムに変換するための撮影をし易くするためである。【００２０】
処理とは、プログラムを構成するコンピュータの命令実行あるいはその内容のことで、プログラムの開始や終了を表すもの、プログラムの処理内容を表すもの、プログラムの実行途中のイベントや処理状況を表すものなどがある。
ケースは、ある特定の処理や状態を表し、選択肢の個別要素を伴う。ケースにはそのケース専用の個別要素とのみ組み合わせとなるものもあれば、様々な個別要素と組になるケースもある。ケースには、他の処理と区別し易いよう、例えば、文字などの色や、文字などを記載する面の色やパターンにより、視覚的に異なる表現が施されているとよい。なお、視覚障害者向けなどでは、触覚的に異なる表現が施されていることが好ましい。
ケースにはそのケースのみに伴われる個別要素となるものがあるが、この場合、ケースにも当該個別要素にも同じ仕上げやマークなどを使って、お互い組みになることがわかり易くなっているとよい。
ケースパーツは、横に長いかぎ型「『」で、他のパーツの平面視上下方向の最短の長さを１単位とした場合、左側の上下方向の長さを２単位の長さとすることで、処理パーツとの区別や、ケースパーツの使い方がわかり易くなる。【００２１】
異なる内容が記載された複数のパーツは、縦方向に上から下へ一列に、地模様などのついたケースパーツの下には、同じ地模様などのついた個別要素パーツまたは、付属パーツがくるというルールに従って並べ組み合わせられる。すなわちレイアウトされることで、簡単なプログラム構成する。
処理パーツとケースパーツと個別要素パーツのレイアウトは、そのままではコンピュータ上で実行できるものではないが、実質的なプログラムをそのレイアウト上に作成することができる。
できたプログラムを、何らかの形で処理実行するには、プログラムをデジタルで扱えるようコード化し、あるいはコンパイラ言語の場合は、実行できるプログラムの形に変換することが必要である。【００２２】
レイアウトされた処理パーツや、ケースパーツ、選択肢パーツ、繰返しパーツの文字などの記載は、画像として入力され、ＯＣＲなどにより認識される場合や、予めテキストデータ情報が入った１次元コードや２次元コードないしは３次元コードやＩＣタグ等により、文字コードデータに変換される。さらに文字コードデータは、ブロックとしてまとめられ、データベースなどのデータを基に解析されプログラム要素のデータとなる。
例えば、「おゆうぎ」であれば格納済みデータの“「おゆうぎ」を指定するケースデータ”として認識される。
また、記号やマークに特別な意味が付加されており、文字コード認識の段階を経ず、あるいはＱＲコード（登録商標）などで画像認識の段階も経ず直接、その意味が認識されるよう設定されていてもよい。
なおデータベースとは、あらかじめ記憶装置などに格納されている、整理されている情報の集まりである。【００２３】
レイアウトされた処理パーツや、ケースパーツ、選択肢パーツ、繰返しパーツの文字などや、地模様や、パーツの形や、パーツのレイアウト自体も、画像として読取り後、データベースのデータを基に解析され、命令語など、意味のあるプログラム要素データとして認識される。
例えば、レイアウトで文字が下に１単位ずれていれば次の処理段階であることを示す、あるいはパーツの形が「『」であればケースパーツである、あるいは文字のブロック（塊）の後にスペースがあって数字があれば「回数」などを示す、のように設定されており、そのように認識される。【００２４】
プログラム生成部では、この解析された文字などのプログラム要素データと、レイアウトのプログラム要素データをもとに、データベースの格納済みの基本プログラムなどを参照するなどして、プログラムを生成していく。【００２５】
なお、プログラム要素１つだけでは単なる指示コマンドに過ぎないためプログラムとは言い難いく、複数のプログラム要素により、プログラムが可能となる。言い換えれば、プログラムを作成するためには少なくとも２つのプログラム要素が必要となる。
レイアウトは要素が複数あって成立する。従って、プログラム要素をレイアウトすれば、プログラムが成立する。
文字などの記載や、地模様だけのパーツもプログラム要素となるが、プログラム要素は１つである。
パーツが１つであっても、文字などの記載と地模様などの仕上げの２つのプログラム要素で、プログラムが成立する。
２つのプログラム要素を持つパーツによるレイアウトは、２つのプログラム要素にレイアウトのプログラム要素を加え、３つのプログラム要素があるといえる。【００２６】
データの格納は、プログラム実行端末内の記憶装置（メモリ）であっても、実行端末内のデータフォルダであっても、インターネットやイントラネット等のネットワークでつながったサーバー内であっても良い。【００２７】
文字などの記載からコードデータを、またパーツの形状や組み合わされたパーツの配置からプログラム構成データを読み取る方法は、デジタルカメラやスマートフォンの撮像装置により撮影された画像を、ＯＣＲ機能などを使って画像認識し、あるいはプログラム要素である文字コードに変換するものである。
各パーツのレイアウトは、改行など文章のレイアウトとみなして、同様に変換、認識される。また、地模様や色も、データベースに格納されているデータと照合してプログラム要素である地模様コードやカラーコードに変換される。
なお、実行端末に撮影機能が付属せず、別の機材で撮影したデータを、プログラム実行端末で実行するものであっても、当然かまわない。
なお、ＯＣＲとは、Optical Character Readerの略で、光学的文字認識装置であり、手書きや印刷された文字などの画像データを、コンピュータなどが利用できるデジタルの文字コードに変換する装置である。【００２８】
ＯＣＲについては、Ｗａｔｓｏｎ（登録商標）などによる画像認識によるもの、平面スキャナーによる画像から認識するもの、ＮＦＣなどのＩＣタグと平面的で位置も含めて読み取れる読み取り装置を組み合わせたもの、ＩＣタグ距離センサーによるものなどが考えられる。
なお、Ｗａｔｓｏｎとは、WatsonVisualRecognitionのことで、ＩＢＭ（登録商標）が開発した画像認識機能で、インターネットを通じてサービスが提供されているシステムである。【００２９】
文字などと同時に一次元コードやＱＲコード（登録商標）などの二次元コードや三次元コードなどの記載や、ＩＣタグなどを利用すれば、ＯＣＲ機能を使うまでもなく、スマートフォンなどの読み取りアプリケーションを使って、文字コードを取得することができる。
なお、ＱＲコード（登録商標）とは、マトリックス型二次元コードのことで、平面に、単色で小さな面積に多くのコードデータを記載することができる。【００３０】
その他、ＮＦＣなどのＩＣチップを利用する電磁気的な方法、特許文献３に示す方法などがあるが、ＯＣＲによる画像認識の方が簡単で、コスト的にも有利とみられる。
ＮＦＣとは、近接場型の無線通信で（Nearfieldradiocommunication）、通信エリアは数センチからおよそ1メートル程度で、非接触通信とも呼ばれている。
ＮＦＣを使う場合は、パーツ側にＮＦＣのＩＣチップを、パーツを組み立て置く台に、ＮＦＣ対応リーダーを複数、通信距離を数ｃｍにして設置し、組み立て置かれたパーツの種類と記載された内容、レイアウトを読み取るなどの方法による。【００３１】
特許文献４に記載の測距センサーを使って、パーツの位置を三角測量で算出する方法もあるが、文字等の読みとりが難しく、センサーを取り付けるプラットフォームなどにコストがかかり合理的ではない。【００３２】
作成されたプログラムが、そのまま実行できるレベルのものであれば、アプリケーションを立ち上げ実行キーを押すことでプログラムが実行され、その様子を見ることができる。そうでない場合はデータベースの格納済みの基本プログラムと比較しながら、不足の補充や追加生成や訂正がされるか、あるいは、実行時エラー、論理エラー、ボリュームエラーなどのエラー表示、訂正指示などが出される。
プログラム実行装置は、実行用データから、表示データや制御データを読み込み、プログラムを実行する。【００３３】
でき上ったプログラム、あるいは、エラー表示、訂正指示などは、プログラムの実行によって、端末のディスプレイに表示される。
プログラムがディスプレイ上で実行したもの、例えばアニメキャラクターの幼稚園での１日を見ることで、利用者のプログラムに対する興味や関心が強くなり、プログラム学習の意欲も増す。
ケースパーツを使ったプログラムで、途中で選択ボタンなどが現れるようなプログラムであれば、パーツのレイアウトとプログラムの選択との関係などの理解も深まり、より一層プログラム学習に興味を示すようになる。
実行処理は、ディスプレイ上の画像として実行表示されるものでも、またロボットや車のおもちゃなどの実動ツールで実行されるものでもよい。【００３４】
格納済みデータは、新たな文字などを追加登録できるようにすることで、認識できる文字などを増やすことができる。またレイアウトのデータも追加設定・登録することで新たなレイアウトを認識し、プログラム生成の能力を拡張することができる。【００３５】
また、本願発明は、端末で生成されたプログラムや、追加登録された文字などの記載、レイアウト設定、プログラム生成履歴、エラーの発生状況などのプログラム学習の内容が、実行端末の通信機能により、インターネットなどの通信回線を使って、プログラム教育サーバーに送ることができるシステムである。
また、プログラム教育サーバーは、プログラミングに要するスピード、習熟スピード、学習プログラムの種別、間違いのポイントやその内容や履歴、追加登録された文字など、レイアウト設定、やり直しの回数などから端末ごとに理解度や学習進を算出し、要求があれば、端末ごとの学習進状況に応じ格納されているプログラム学習支援情報や、プログラム学習支援ノウハウ、新たに追加登録された文字などの記載内容、レイアウト設定情報などを各端末に送付する。
また、プログラム教育サーバーは、学習する団体やクラス、学校などを登録しておけば、団体やクラス、学校ごとの情報を送付し、さらに、地域や都道府県ごとの情報も蓄積し、プログラム教育の普及や改善、発展に利用される。【００３６】
また、本願発明は、文字などの記載と、複数の記載のレイアウトから、読み込んだ文字などのコードデータとレイアウトデータを認識する手段と認識したデータと格納済みのデータから、プログラム要素とプログラム構成データを解析する解析手段と、解析したデータからプログラムを生成するプログラム生成部とを備えることを特徴とする、プログラム作成プログラムである。
解析したデータからプログラムを生成するのは、レイアウトされた処理パーツや、ケースパーツ、選択肢パーツ、繰返しパーツの文字などの記載と配置からコードデータとプログラム構成データを読み取り、プログラム生成する場合と同様である。【００３７】
また、本願発明は、文字などの記載と、複数の記載のレイアウトから、読み込んだ文字などのコードデータとレイアウトデータを認識する手段と認識したデータと格納済みのデータから、プログラム要素とプログラム構成データを解析する解析手段と、解析したデータからプログラムを生成するプログラム生成部とを備えることを特徴とする、プログラムを生成する方法である。
解析したデータからプログラムを生成するのは、レイアウトされた処理パーツや、ケースパーツ、選択肢パーツ、繰返しパーツの文字などの記載と配置からコードデータとプログラム構成データを読み取り、プログラム生成する方法と同様である。
【発明の効果】
【００３８】
本願発明は、プログラム学習ツールであるが、プログラムを組むだけであればコンピュータやタブレットなどの電子機器は必要としない。また、ノートや筆記具も用いずただパーツをルールに従って並べるという、あるいは紙にプログラム要素たる言葉を記載するという、極めて単純な作業により、ディスプレイ上でキャラクターを動かしたり、実際に手に取ることができる物を動かしたりすることができるプログラムを組むことができる。
また、そのプログラムを身近にあるスマートフォンなどのツールを使って、直ぐに実行することができるので、プログラムの概念、基本構成、機能の学習に、非常に効果的である。
特に、物事の理解や認識の能力が未発達な、幼児や小学生低学年の者には、目に見えて手で触れるパーツを並べるという直観的に把握し易いものを使っての学習であるため、有効なプログラム学習ツールと言える。
【図面の簡単な説明】
【００３９】
【図１】本願発明の処理パーツを使った順次プログラムのレイアウトを示す図である。
【図２】ケースパーツとその使用例を示す図で、Ａはプログラムのレイアウト図、Ｂは余りのパーツ群を示す図である。
【図３】ケースパーツとその他の使用例を示す図である。
【図４】Ａは、図２に示す実施例２のパーツ全部におゆうぎケースパーツ１つを追加した内容のプログラムのレイアウト図、Ｂは選択肢パーツの説明図である。
【図５】繰返し付属パーツの説明図である。
【図６】正四角柱の処理パーツの斜視図である。
【図７】ケース内容と繰り返し回数を併記したケースパーツの図である。
【図８】繰返し付属パーツの組み合わせ使用説明図である。
【図９】他のケースパーツと繰返し付属パーツの使用例を示す図である。
【図１０】他のケースパーツと繰返し付属パーツの使用例を示す図である。
【図１１】他のケース付属パーツと繰返し付属パーツの説明図である。
【図１２】繰返しとその終了についての説明図である。
【図１３】接続パーツとその使い方の説明図である。
【図１４】ケースパーツの他の使い方の説明図である。
【図１５】プログラムの流れが複数同時進行する場合の、パーツの使い方の例を示す図である。
【図１６】プログラムの流れが複数同時進行する場合の、接続パーツと他のパーツの使い方の例を示す図である。
【図１７】様々な接続パーツを示す図である。
【図１８】連携パーツの使用説明図である。
【図１９】連携パーツの他の使用説明図である。
【図２０】選択肢が３つある場合のケースの使用例を示す図である。
【図２１】選択肢が３つある場合のケースの使用例で、付属パーツが欠けている場合を示す図である。
【図２２】ケースの中にさらにケースがある場合の使用例を示す図である。
【図２３】ケースの中にさらにケースがある場合で、付属パーツに欠けがある場合の説明図である。
【図２４】ケースの中にさらにケースがある場合で、他の付属パーツに欠けがある場合の説明図である。
【図２５】ケースの中にさらにケースがある場合で、他の付属パーツに欠けがある場合の説明図である。
【図２６】ケースの中に選択肢パーツと処理パーツを入れた使用例。Ａは、パラメータ無しの付属パーツを使った例を示す図、Ｂは、Ｙ判断付属パーツとＮ判断付属パーツを使った例を示す図である。
【図２７】ケースの中に選択肢パーツと処理パーツを入れた他の使用例。Ａは、ケースパーツの選択肢に選択肢パーツ１つと処理パーツが１つの計２つのパーツがレイアウトされた例、Ｂは、Ｙ判断付属パーツとＮ判断付属パーツに加えＥ判断付属パーツを使った例を示す図である。
【図２８】Ｙ判断付属パーツとＮ判断付属パーツに加えＥ判断付属パーツを使った例で、ＢはＹ判断をした時のプログラム、ＣはＮ判断をした時のプログラムを示す図である。
【図２９】繰返しパーツの使用説明図。Ａは、繰返す処理パーツが１つの場合、Ｂは、繰返す処理パーツが２つの場合の図である。
【図３０】二重になった繰返しパーツの使用例を示す図である。
【図３１】二重になった繰返しパーツの他の使用例を示す図である。
【図３２】判断パーツと判断レイアウトの説明図である。
【図３３】パーツの組み合わせを撮影しているところを示す図である。
【図３４】撮影された画像データと、認識したデータへの変換を示す表である。
【図３５】本願システムの基本ブロック図である。
【図３６】撮影機能付きプログラム実行端末のブロック図である。
【図３７】プログラムを実行しているプログラム実行端末の表示を示す図である。
【図３８】プログラムを実行する装置と通信回線を使って連携しているサーバーとを示すシステム図である。
【図３９】連携パーツを使った実施例を示す図である。
【図４０】連携パーツをくっつける孔をもった個別要素パーツの図である。
【図４１】連携パーツを使った他の実施例を示す図である。
【図４２】ロボットを動かす本願プログラミング支援具のレイアウト例である。
【図４３】ビジネス用途で使われた本願プログラミング支援具のレイアウト例である。
【図４４】黒文字楊枝に利用した本願発明の説明図である。
【図４５】Ａは、レイアウトされた枠の中に文字などを記載し、出力したものを示す図、Ｂは、レイアウトされた文字などを記載したものを出力したものを示す図である。
【図４６】他の実施例におけるプログラミング学習課題を示す図である。
【図４７】同課題で用いられるプログラミング支援具のパーツを示す図である。
【図４８】同課題で用いられるプログラミング支援具のパーツを示す図である。
【図４９】同課題で用いられるプログラミング支援具のパーツを示す図である。
【図５０】同課題で用いられるプログラミング支援具のパーツを示す図である。
【図５１】同課題で用いられるプログラミング支援具のパーツを示す図である。
【図５２】同課題で用いられるプログラミング支援具のパーツを示す図である。
【図５３】同課題で用いられるプログラミング支援具のパーツを示す図である。
【図５４】同課題の解答例を示す図である。
【図５５】他の実施例でのパーツの連結構造を示す図である。
【発明を実施するための形態】
【００４０】
以下、本発明の実施の形態のいくつかについて、詳細に説明する。
本願発明は、実施例にあるような、積木型のパーツとスマートフォンのアプリケーションをセットにし、幼稚園や保育園、あるいは小学生低学年の学童保育の場に導入され、使用されると考えられる。
また、パーツを多数組み合わせることで、より複雑なプログラムを組むことができ、小学生や中学生になっても、有効なプログラム学習として使用可能である。
【００４１】
さらに、プログラム作成を仕事としている者も、考えを整理し、新たな発想を生み出すために、本願発明のプログラミング支援具を活用できる。
また、あらかじめ検討に値する処理パーツ、ケースパーツ、個別要素パーツなどを用意しておくことで、新規のプログラムを効率よく抜けなく作成することができるため、ビジネスソリューションなどのプログラム開発にも有用である。
【００４２】
図１に示すのは本願発明の実施例１で、処理パーツ１を上から順に並べており、順次処理のプログラムを表す。
処理パーツ１は、カードタイプではなく、正四角柱の立体ブロックである。ブロックは縦方向を１単位とすると、横方向の長さは５単位となっている。
プログラムは、上から順番に実行されるよう設定されている。
以上で、プログラムの作成は終わるが、実際にどのような動きになるかがわかれば、学習意欲も増す。そこで、ディスプレイ上で、アニメーション動画などで、できたプログラムが実行されるようにする。
【００４３】
これらのパーツのレイアウトが示すプログラムは、
「ようちえんにいく」  →  「たいそう」をする  →  「おゆうぎ」をする  →  「きゅうしょく」を食べる  →  「おひるね」をする  →  「おうちにかえる」  
の内容であり、撮影機能付きプログラム実行端末上で、幼稚園児のアニメキャラクターが、幼稚園に行き、体操をして、お遊戯をし、給食を食べ、お昼寝をした後、お家に帰る、となる。
なお、これらのパーツは幼稚園児を対象としたパーツであるため、プログラム実行端末では幼稚園児のアニメキャラクターが動くよう設定されているが、利用者の設定により、シーンやアニメキャラクターが変わるなど、設定するとよい。
【００４４】
図２Ａに示す実施例２は、プログラムのレイアウトの中に、おゆうぎケースパーツ２-ｃが組み込まれたものである。おゆうぎケースパーツ２-ｃのケース仕上げ２-３は地が斜線模様である。なお、仕上げとはパーツ表面の仕上げのことであり、素材そのまま、塗装、印刷、機械加工、レーザー加工など様々な仕上げがある。
はないちもんめ選択肢パーツ３-ａおよびとおりゃんせ選択肢パーツ３-ｂは、選択肢仕上げ３-１付き選択肢パーツ３で、その左側の選択肢仕上げ３-１は、おゆうぎケースパーツ２-ｃと同じ地模様が施されている。地模様は、単色のパターン画像であっても、パターンのない地色であっても、写真などの画像であっても良い。
【００４５】
これらのパーツのレイアウトが示すプログラムは、
「ようちえんにいく」  →  「たいそう」をする  →  「はないちもんめ」か「とおりゃんせ」のどちらかのお遊戯をする  →  「きゅうしょく」を食べる  →  「おひるね」をする  →  「おうちにかえる」
の内容である。
【００４６】
図２Ｂは、実施例２をレイアウトした時の残りのパーツである。
おはなしケースパーツ２-ｆは、おゆうぎケースパーツ２-ｃと異なるケース仕上げ２-３であるので、それぞれのケースパーツ２が取り得る選択肢パーツ３がどれであるかがわかり易い。ケースパーツ仕上げ２-３は、ケースパーツ２と選択肢パーツ３を表すものとして全て統一しても良い。
【００４７】
図３に示す実施例３は、実施例２と全く同じプログラムを意味している。
はないちもんめ選択肢パーツ３-ａは、実施例２のものとは異なり、選択肢仕上げ３-１の部分がない。そのため、パラメータ無し選択付属パーツ４-２を伴って、選択肢パーツとして機能する。
とおりゃんせ選択肢パーツ３-ｂも、選択肢仕上げ３-１の部分はないが、はないちもんめ選択肢パーツ３-ａの右にレイアウトすることで、はないちもんめ選択肢パーツ３-ａ同様、選択肢パーツ３であることを示している。
このレイアウトにより、パーツのレイアウト全体の長さを短くし、合わせて付属パーツ４一つで、二つの選択肢があるプログラムが組める。なお、選択肢パーツ３を右にさらに３つ４つとレイアウトすることもできるが、レイアウト全体が横長になる。
【００４８】
はないちもんめ選択肢パーツ３-ａの横幅は４単位であり、繰返し付属パーツの横幅も１単位であるため、処理パーツ１の横幅５単位とも横幅が揃う。
選択肢仕上げ３-１の部分の横方向の長さは１で、選択肢仕上げ３-１の部分の形は立方体になる。
ケースパーツ２および選択肢パーツ３の左端面にも地模様があると、レイアウトしたパーツの組合せを左側から見た時に地模様が揃い、好ましい。
なお、処理パーツ１などの横幅は５単位に限るものではなく、文字など１-２が記載し易く、パーツが扱い易い大きさであればよい。文字など１-２が記載し易く、パーツが扱い易い大きさの処理パーツ１の横幅は概ね４単位から１０単位である。
【００４９】
図４に示す実施例４は、実施例２の図Ｂに相当するパーツも全部使い、さらにケースパーツ２を１つ追加し作った、実施例のレイアウト図である。
おゆうぎケースパーツ２-ｃは、その下に選択肢パーツ地模様３-１のある選択肢パーツ３もしくは、付属パーツ４を伴った選択肢パーツ３がレイアウトされるが、そのときケース仕上げ２-３と同じ地模様が「『」状に並ぶ。選択肢パーツ３は２つ以上であれば選択することができ、数の上限はないが３つ前後がよく使われる。選択肢パーツ３が一つの場合は、選択処理がそのまま実行処理になる。
おはなしケースパーツ２-ｆは、地模様の代わりにケースパーツ２であることを示すラインのケースマーク２-４が左側に記載されている。おはなしケースパーツ２-ｆの下に、ケースマーク２-４が記載された付属パーツ４を伴って、選択肢パーツ３がレイアウトされている。
これらのパーツのレイアウトが示すプログラムは、
「ようちえんにいく」  →  「たいそう」をする  →  「はないちもんめ」か「とおりゃんせ」か「ちゃんばら」の内のどれかのお遊戯をする  →  「きゅうしょく」を食べる  →  「おひるね」をする  →  「あんたがたどこさ」か「かごめかごめ」のどちらかのお遊戯をする  →  「おそとあそび」をする  →  「おえかき」をする  「えほん」か「かみしばい」かどちらかのお話を聞く  →  「おうちにかえる」  
の内容である。
図４Ｂは、選択肢パーツ３と選択肢付属パーツ４-１をむき出したものである。
【００５０】
図５に示す実施例５は、プログラムのレイアウトの中のおゆうぎケースパーツ２ｃの右に、繰返し回数４-７２の付いた繰返し付属パーツ４-７で、繰返しの数値が「２」であることから、これらのパーツのレイアウトが示すプログラムは、
「ようちえんにいく」  →  「たいそう」をする  →  「はないちもんめ」のお遊戯を２回繰返す  →  「きゅうしょく」を食べる  →  「おひるね」をする  →  「おうちにかえる」  を示している。
なお、ここで示すパーツは、処理パーツ１とケースパーツ２が、正四角柱で、その長方形の４面に異なる４種類の記載がある。また、付属パーツ４は立方体である。繰返し付属パーツ４-７は立方体で、繰返し回数４-７２が記載されており、その６面に「１・２・３・４・５・６」の数値がそれぞれ記載されている。
繰返し付属パーツ４-７に磁石を埋め込み、鉄を含んだおゆうぎケースパーツ２-ｃにくっつくように、あるいは面ファスナーや、凹凸で、繰返し付属パーツ４-７がおゆうぎケースパーツ２-ｃとセットになるようにしても良い。
【００５１】
図６は、ようちえんにいく処理パーツ１-ａの、斜視図で、正四角柱の長方形の４側面の処理パーツ上面１-１ｕには「ようちえんにいく」が、処理パーツ前面１-１ｍには「ようちえんからかえる」が記載されているが、四角柱の左右端面の正方形である処理パーツ側面１-１ｓには記載がない。
【００５２】
図７は、おゆうぎケースパーツ２-ｃを示すが、繰返し回数の「２」も記載されている。これは繰返しの意味も持つケースパーツ２であり、繰返し付属パーツ４-７無しで２回の繰り返しを意味するが、２回と限定されるので、使う場面が限られている。変数の記載が、手書きや、書き換え可能なものとすることで、繰返し回数を変更でき、使い勝手が良くなる。
【００５３】
図８に示す実施例６は、繰返し付属パーツ４-７を２つ使い、２桁以上の繰り返しを示しており、このプログラムの場合は、おゆうぎの「はないちもんめ」を１０回繰り返す、の内容である。
【００５４】
図９に実施例７を示す。
ケースパーツ２は、その左上に実施例４とは異なるケースマーク２-４を記載している。これにより、このパーツがケースパーツ２であることが分かり、撮影機能付きのプログラム実行端末１０で撮影した時は、「おゆうぎ」の記載と相まっておゆうぎケースパーツ２-ｃと認識される。
はないちもんめ選択肢パーツ３-ａおよびとおりゃんせ選択肢パーツ３-ｂの左にレイアウトされている付属パーツ４にはケースマーク２-４が記載され、選択付属パーツ４であることが分かり、撮影機能付きのプログラム実行端末１０で撮影した時も、選択付属パーツ４-２と認識される。
【００５５】
おゆうぎケースパーツ２-ｃの右には、繰返し付属パーツ４-７であることを示す繰返しの仕上げ４-７３の代わりに、繰返し付属パーツ記号４-７０のついた繰返し付属パーツ４-７がレイアウトされている。
おゆうぎケースパーツ２-ｃの横幅は短く、実施例６では５単位であったところが４単位になっている。繰返し付属パーツ４-７が、パーツをレイアウトした長方形の中にきれいに収まっているので、見た目がすっきりしている。
これらのパーツのレイアウトが示すプログラムは、
「ようちえんにいく」  →  「たいそう」をする  →  「はないちもんめ」か「とおりゃんせ」のどちらかのお遊戯をする、これを２回繰り返す  →  「きゅうしょく」を食べる  →  「おひるね」をする  →  「おうちにかえる」  
の内容である。
【００５６】
図１０に実施例８を示す。
おゆうぎケースパーツ２-ｃは、横に長いかぎ型「『」でその大きさは、左右長い部分の縦の幅が１単位、横幅が４単位であり、左端の上下に長い部分の縦の幅が２単位、横幅が１単位となっている。この形により、おゆうぎケースパーツ２-ｃは、選択肢パーツ３を最低一つを伴うものであることが想起され、プログラムの理解や学習に寄与する。
【００５７】
図１０のＡは、ケースパーツ２-ｃの右に、繰返し付属パーツ４-７の繰返しマーク４-７１が無いものをレイアウトしているが、繰返しの仕上げ（地模様）により繰返しであることがわかる。この場合の繰返しは、回数ではないことから、「給食まで何回も繰り返す」というようにルールづけたり、「任意の回数繰返す」とルールづけたりすることができる。
【００５８】
図１０のＢは、おゆうぎケースパーツ２-ｃの右に、繰返し付属パーツ４-７の繰返し回数４-７２があるものをレイアウトし、繰返しが２回であることを示している。
これらのパーツのレイアウトが示すプログラムは、図９の実施例７と全く同じ、
「ようちえんにいく」  →  「たいそう」をする  →  「はないちもんめ」か「とおりゃんせ」のどちらかのお遊戯をする、これを２回繰り返す  →  「きゅうしょく」を食べる  →  「おひるね」をする  →  「おうちにかえる」  
の内容である。
【００５９】
図１１に示す実施例９は、繰返しマーク４-７１のついた繰返し付属パーツ４-７を使った、プログラムの組合せを示す。
おゆうぎ処理パーツ１-ｃの左側に、ケース付属パーツ４-６があり、合わせておゆうぎケースパーツ２-ｃと同じ意味となる。
「はないちもんめ」「とおりゃんせ」は、横幅が５単位と、他の処理パーツと同じであるが、左側に、ケース付属パーツ４-６をレイアウトすることでそれぞれ、はないちもんめ選択肢パーツ３-ａ、とおりゃんせ選択肢パーツ３-ｂと同じ意味になる。
おゆうぎ処理パーツ１-ｃの右側に、繰返しマーク４-７１が記載された、繰返し付属パーツ４-７がレイアウトされている。
これらのパーツのレイアウトが示すプログラムは、実施例７と異なり、
「ようちえんにいく」  →  「たいそう」をする  →  「はないちもんめ」か「とおりゃんせ」のどちらかのお遊戯をする、これを給食の時間になるまで繰り返す  →  給食の時間になったら「きゅうしょく」を食べる  →  「おひるね」をする  →  「おうちにかえる」  
の内容である。
【００６０】
なお、ケース付属パーツ４-６の形や仕上げは、撮影機能付きのプログラム実行端末１０で読み取ることができれば、丸や十字形や星型やランダムな形などでもよいが、レイアウトのしやすさから言えば四角い形状が好ましい。また四角い形であると、磁石や面ファスナーなどを使って、他のパーツにもつけやすい。
丸や十字形や星型など、多様な形にするメリットは、他のパーツと区別し易く、視覚的に認識し易いことである。
【００６１】
図１２に示す実施例１０は、おゆうぎケースパーツ２-ｃの右にレイアウトした繰返し付属パーツ４-７のさらに右にきゅうしょく処理パーツ１-ｄをレイアウトしている。この場所へのきゅうしょく処理パーツ１-ｄのレイアウトは、「給食までお遊戯を繰り返す」とうい処理をより明確にあるいは強調するためで、このレイアウトの示すプログラムは、実施例９と同じである。
【００６２】
図１３に示す実施例１１は、実施例１０のレイアウトは、おゆうぎケースパーツ２-ｃの右に繰返し付属パーツ４-７を、その右に続けて右方向接続パーツ６-１Ｒを、さらに右にきゅうしょく処理パーツ１-ｄをレイアウトし、その下におひるね処理パーツ1-ｅ、おうちにかえる処理パーツ１-ｇをレイアウトしたもので、このレイアウトの示すプログラムの実行は、実施例１０と同じものとなるが、プログラムとしては給食以後の流れが、給食以前とは別の流れにあることを示している。
【００６３】
図１４に示す実施例１２は、はないちもんめ選択肢パーツ３-ａ、とおりゃんせ選択肢パーツ３-ｂの下に、おゆうぎケースパーツ２-ｃと、繰返し付属パーツ４-７をレイアウトしたもので、プログラムが実行する内容は実施例１０と同じ、
「ようちえんにいく」  →  「たいそう」をする  →  「はないちもんめ」か「とおりゃんせ」のどちらかのお遊戯をする、これを給食の時間になるまで繰り返す  →  給食の時間になったら「きゅうしょく」を食べる  →  「おひるね」をする  →  「おうちにかえる」  
の内容である。
【００６４】
本実施例は、あらかじめ「給食までお遊戯を繰り返す」とし、実施例１１では「お遊戯の繰返しを終えて給食にする」というように、繰返しの終了のきっかけを、「給食」にするか「お遊戯」にするかどちらにするかを決めておくなどの取り決めにより、より高度なプログラムの制作が可能となる。
【００６５】
図１５に示す実施例１３は、右側にプログラムの流れと並行して、左側にもプログラムの流れがあるマルチタスクの場合のプログラムの作成方法を示す。
お遊戯は「はないちもんめ」と「とおりゃんせ」があるが、園児などの場合、それぞれ指導する先生が決まっており「はないちもんめ」は「ゆりせんせい」、「とおりゃんせ」は「みつあみせんせい」となっていることを示す。
このパーツのレイアウトが示すプログラムは、
「ようちえんにいく」  →  「たいそう」をする  →  ｛「はないちもんめ」を「ゆりせんせい」とする  か  「とおりゃんせ」を「みつあみせんせい」とする  のどちらか｝のお遊戯を２回する  または  先生が終わりと言ったら  →  「きゅうしょく」を食べる  →  「おひるね」をする  →  「おうちにかえる」
の内容である。
【００６６】
より高度な利用方法としては、左列に、クライアントシステムのプログラムを、右列にサーバーシステムのプログラムをレイアウトし、通信を伴う複雑なプログラムの理解や検討、作成などに使用する。
【００６７】
第１６図に示す実施例１４は、実施例１３のはないちもんめ選択肢パーツ３-ａと、とおりゃんせ選択肢パーツ３-ｂの右に、左方向接続パーツ６-１Ｌを加えたもので、実施例１２と比べると、先生が職員室から教室に出向いて行ってから、お遊戯が始まることを明確に示している。
【００６８】
図１７は、さまざまな接続パーツを示したもので、Ａは左方向の接続パーツ、Ｂは右方向の接続パーツ、Ｃは双方向の接続パーツ、ＤはＣの横幅を２単位にしたもの、ＥはＣの縦の長さを２単位にしたもの、ＦはＥと同じ外形で段違いの接続パーツ、ＧはＥと同じ外形で斜め段違いの接続パーツでその意味するところはＦの接続パーツと同じ、ＨはＥと同じ外形で順次処理が逆転するクロスの接続パーツ、Ｉは２つの処理パーツあるいは個別要素パーツから１つのパーツに接続する接続パーツを示す。
【００６９】
これらの接続パーツ６は、左列のクライアントシステムのプログラムと、右列のサーバーシステムのプログラムの通信や連携を示す場合などに用いる。
形や記載内容は、用途によって種々追加変更を行うとよい。
なお、Ａは左右を逆に置くことで、Ｂすることもできる。またＡの接続パーツ６の矢印を記載した反対の面に、Ｃの接続パーツ６に記載されている双方向矢印を記載などすることで、１つの接続パーツ６を幾通りにも使えるようにもできる。同様に、ＤＥＦＧＨＩは外形が同じなので、異なる面に異なる記載を施すことで、少ないパーツで、多種の接続機能を持たせることができる。
【００７０】
１８図に示す実施例１５は、連携パーツ７を使ったプログラムのレイアウトを示している。
はないちもんめ選択肢パーツ３-ａの右についた連携パーツ７-Ａと、はないちもんめ伴奏パーツ３-ａ２の左に付く連携パーツ７-Ａが連携していることを示し、とおりゃんせ選択肢パーツ３-ｂの右についた連携パーツ７-Ｂと、とおりゃんせ伴奏パーツ３-ｂ２の左に着く連携パーツ７-Ｂが連携していることを示している。
Ａのメインプログラムに対し、ＢとＣはサブプログラムで、はないちもんめのお遊戯では、はないちもんめの伴奏が、とおりゃんせのお遊戯は、とおりゃんせの伴奏がならされることを示している。
このパーツのレイアウトが示すプログラムは、
「ようちえんにいく」  →  「たいそう」をする  →  「はないちもんめ」のお遊戯か「とおりゃんせ」のお遊戯かどちらかをする  →  「はないちもんめ」のお遊戯をするときは「はないちもんめの伴奏」がならされる  ／  「とおりゃんせ」のお遊戯をするときは「とおりゃんせの伴奏」がならされる  →  「きゅうしょく」を食べる  →  「おゆうぎ」をする  →  「おうちにかえる」
の内容である。
【００７１】
図１９に示す実施例１６のレイアウトは、実施例１５において、はないちもんめ選択肢パーツ３-ａの右に連携パーツ７-Ａが、はないちもんめ伴奏３ａ２の左にも連携パーツ７-Ａがレイアウトされ、はないちもんめ選択肢パーツ３-ａとはないちもんめ伴奏パーツ３-ａ２が連携していることを示し、お遊戯の実行では、もらわれていく処理パーツ１-ｆによりはないちもんめの花嫁が貰われていくシーンまでを実行するところまでを示している。  また、とおりゃんせ選択パーツ３-ｂの右に連携パーツ７-Ｂが、とおりゃんせ伴奏パーツ３-ｂ２の左にも連携パーツ７-Ｂがレイアウトされ、とおりゃんせ選択パーツ３-ｂと、とおりゃんせ伴奏パーツ３-ｂ２が連携していることを示し、とおりゃんせ伴奏パーツ３-ｂ２の右には連携パーツ７-Ｃが、ばつケースパーツ２-ｄの左にも連携パーツ７-Ｃがレイアウトされ、とおりゃんせ伴奏パーツ３-ｂ２とばつケースパーツ２-ｄが連携していることを示している。お遊戯の実行では、とおりゃんせで捕まった者に課せられた罰を選択し、実行するところまでを示している。
【００７２】
このパーツのレイアウトが示すプログラムは、
「ようちえんにいく」  →  「たいそう」をする  →  「はないちもんめ」をするとき「はないちもんめの伴奏」が奏でられ、その後指名された者が「もらわれていく」  ／  「とおりゃんせ」をするとき「とおりゃんせの伴奏」が奏でられる  →  とおりゃんせで捕まった者は「ばつ」を受け、「おに」になるか「ぬける」かを選択する  →  「きゅうしょく」を食べる  →  「おゆうぎ」をする  →  「おうちにかえる」
の内容である。
【００７３】
図２０の実施例１７は、おやつケースパーツ２-ａに、選択肢パーツ３-ｈ／３-ｉ／３-ｋがレイアウトされている。選択肢パーツ３の左にはパラメーター無し選択付属パーツ４-２がレイアウトされている。
これらのパーツのレイアウトが示すプログラムは、
「ようちえんにいく」  →  「たいそう」をする  →  「みかん」か「いちごケーキ」か「クッキー」の内のどれかのおやつを食べる  →  「おゆうぎ」をする  →  「きゅうしょく」を食べる  →  「おひるね」をする  →  「おうちにかえる」
の内容である。
【００７４】
図２１の実施例１８は、実施例１７から、みかん選択肢パーツ３-ｈとクッキー選択肢パーツ３-ｋの左側に付属していたパラメータ無し選択付属パーツ４-２が外されたレイアウトである。
これらのパーツのレイアウトが示すプログラムは、
「ようちえんにいく」  →  「たいそう」をする  →  おやつの種類は「みかん」と「いちごケーキ」と「クッキー」があるが今食べられるのは「いちごケーキ」だけなので「いちごケーキ」を食べる  →  「おゆうぎ」をする  →  「きゅうしょく」を食べる  →  「おひるね」をする  →  「おうちにかえる」
の内容である。
【００７５】
図２２の実施例１９は、実施例１７からの選択肢のケーキにさらに、「いちごケーキ」の選択肢と、「チーズケーキ」の選択肢があることを示している。おやつケースパーツ２-ａの中に、ケーキケースパーツ２-ｂが入っている形で、入れ子のプログラムのレイアウトとなっている。
これらのパーツのレイアウトが示すプログラムは、
「ようちえんにいく」  →  「たいそう」をする  →  おやつの種類は「みかん」と「ケーキ」と「クッキー」があり、ケーキには「いちごケーキ」と「チーズケーキ」がある。どれか１つを食べる  →  「おゆうぎ」をする  →  「きゅうしょく」を食べる  →  「おひるね」をする  →  「おうちにかえる」
の内容である。
【００７６】
図２３の実施例２０は、実施例１９からおやつケースパーツ２-ａの選択肢でもあるケーキケースパーツ２-ｂのいちごケーキ選択肢パーツ３-ｉの左にレイアウトされていたパラメータ無し選択付属パーツ４-２を取り去ったレイアウトとなっている。
これらのパーツのレイアウトが示すプログラムは、
「ようちえんにいく」  →  「たいそう」をする  →  おやつの種類は「みかん」と「ケーキ」と「クッキー」があり、ケーキには「いちごケーキ」と「チーズケーキ」があるが今食べられるケーキはチーズケーキで、その内のどれか１つを食べる  →  「おゆうぎ」をする  →  「きゅうしょく」を食べる  →  「おひるね」をする  →  「おうちにかえる」
を意味している。
なお、パーツレイアウトにより、どのようなプログラムになるかは、プログラム作成のためのプログラムの設定内容次第である。
【００７７】
図２４の実施例２１は、実施例１９から、おやつケースパーツ２-ａの選択肢でもあるケーキケースパーツ２-ｂの選択肢パーツ３の左にレイアウトされていた、おやつケースパーツ２-ａにかかるパラメーター無し選択付属パーツ４-２を取り去ったレイアウトとなっている。
これらのパーツのレイアウトが示すプログラムは、
「ようちえんにいく」  →  「たいそう」をする  →  おやつの種類は「みかん」と「ケーキ」と「クッキー」があり、「ケーキ」を選択した場合には「いちごケーキ」と「チーズケーキ」が選択肢として現れ、「いちごケーキ」または「チーズケーキ」の内のどれか１つを食べる  →  「おゆうぎ」をする  →  「きゅうしょく」を食べる  →  「おひるね」をする  →  「おうちにかえる」  
の内容である。
【００７８】
図２５の実施例２２は、実施例１９から、おやつケースパーツ２-ａの選択肢でもあるケーキケースパーツ２-ｂの左にレイアウトされていたパラメータ無し選択付属パーツ４-２と、ケーキケースパーツ２-ｂの選択肢であるチーズケーキ選択肢パーツ３-ｊの左にレイアウトされていた、おやつケースパーツ2-ａにかかるパラメーター無し選択付属パーツ４-２と、おやつケースパーツ２-ｂの選択肢であるいちごケーキ選択肢パーツ３-ｉの直ぐ左にレイアウトされていた、ケーキケースパーツ２-ｂにかかるパラメーター無し選択付属パーツ４-２を取り去ったレイアウトとなっている。
これらのパーツのレイアウトが示すプログラムは、
「ようちえんにいく」  →  「たいそう」をする  →  おやつの種類は「みかん」と「いちごケーキ」と「クッキー」があり、「いちごケーキ」を選択した場合には「いちごケーキ」と「チーズケーキ」が選択肢として現れるが、「いちごケーキ」は選択できず、「チーズケーキ」のみが選択でき、「ケーキ」を選択すれば「チーズケーキ」を食べる  →  「おゆうぎ」をする  →  「きゅうしょく」を食べる  →  「おひるね」をする  →  「おうちにかえる」  
の内容である。
【００７９】
図２６Ａの実施例２３Ａは、おゆうぎケースパーツ２-ｃの選択肢として処理パーツ１であるおひるね処理パーツ１-ｅをレイアウトしたものである。おひるね処理パーツ１-ｅは、本来おゆうぎケースパーツ２-ｃの選択肢パーツには当たらないが、プログラムとしては成立する。
これらのパーツのレイアウトが示すプログラムは、
「ようちえんにいく」  →  「たいそう」をする  →  「きゅうしょく」を食べる  →  おゆうぎは「はないちもんめ」と「おひるね」がある  →  「はないちもんめ」と「おひるね」のどちらかをする  →  「きゅうしょく」を食べる  →  「おうちにかえる」
の内容である。
【００８０】
図２６Ｂの実施例２６Ｂは、実施例２３Ａのおゆうぎケースパーツ２-ｃにかかるパラメータ無し選択付属パーツ４-２を、「Ｙｅｓ」の意味であるＹ判断付属パーツ４-５Ｙと「Ｎｏ」の意味であるＮ判断付属パーツ４-５Ｎとしたもので、おゆうぎケースパーツ２-ｃがＹｅｓ、Ｎｏの判断を求めるものであることを示している。
これらのパーツのレイアウトが示すプログラムは、
「ようちえんにいく」  →  「たいそう」をする  →  「きゅうしょく」を食べる  →  おゆうぎをする場合は「はないちもんめ」をする  ／  おゆうぎをしない場合は「おひるね」をする、ＹｅｓかＮｏのどちらかを選択する  →  「きゅうしょく」を食べる  →  「おうちにかえる」
の内容である。
【００８１】
図２７Ａの実施例２４Ａは、おゆうぎケースパーツ２-ｃの選択肢として、おそとあそび処理パーツ１-ｈと、おひるね処理パーツ１-ｅをレイアウトしたものである。
これらのパーツのレイアウトが示すプログラムは、
「ようちえんにいく」  →  「たいそう」をする  →  おゆうぎは「はないちもんめ」と「おそとあそび」と「おひるね」があり、そのどれかをする  →  「きゅうしょく」を食べる  →  「おうちにかえる」
の内容である。
【００８２】
図２７Ｂの実施例２４Ｂは、実施例２３Ａのおゆうぎケースパーツ２-ｃの、パラメータ無し選択付属パーツ４-２を、Ｙ判断付属パーツ４-５ＹとＮ判断付属パーツ４-５Ｎと、「Ｅｌｓｅ」の意味であるＥ判断付属パーツ４-５Ｅに変えたもので、おゆうぎケースパーツ２-ｃがＹｅｓ、Ｎｏ、かそれ以外かの判断を求めるものであることを示している。
これらのパーツのレイアウトが示すプログラムは、
「ようちえんにいく」  →  「たいそう」をする  →  おゆうぎをする場合は「はないちもんめ」をする／おゆうぎをしない場合は「おそとあそび」をする  ／  「おゆうぎ」も「おそとあそび」もしない場合は「おひるね」をする、ＹｅｓかＮｏかＥｌｅｓのどれかを選択する  →  「きゅうしょく」を食べる  →  「おうちにかえる」
の内容である。
【００８３】
図２８の実施例２５は、図２８Ａに、おゆうぎケースパーツ２-ｃにかかる判断付属パーツ４-５Ｅの右にある、おひるね処理パーツ１-ｅの下に、「きゅうしょく」以下を繋げている。
また、２８図Ｂには、２８図Ａとは別に、Ｙ判断付属パーツ４-５Ｙとその右には、はないちもんめ選択肢パーツ３-ａをレイアウトし、その下に「きゅうしょく」以下を繋げている。
さらに、２８図Ｃには、２８図Ａとは別に、Ｎ判断付属パーツ４-５Ｎとその右には、とおりゃんせ選択肢パーツ３-ｂをレイアウトし、その下に「きゅうしょく」以下を繋げている。
これらのパーツのレイアウトが示すプログラムは、実施例２３と同じであるが、プログラムの構成を説明する場合や、より複雑なプログラムを構築する場合に、有用である。
Ｙ判断付属パーツ４-５ＹとＮ判断付属パーツ４-５Ｎは、接続パーツ６としても機能している。
これらのパーツのレイアウトが示すプログラムは、
「ようちえんにいく」  →  「たいそう」をする  →  おゆうぎをする場合は「はないちもんめ」をする／おゆうぎをしない場合は「おそとあそび」をする  ／  「おゆうぎ」も「おそとあそび」もしない場合は「おひるね」をする、ＹｅｓかＮｏかＥｌｅｓのどれかを選択する  →  「きゅうしょく」を食べる  →  「おうちにかえる」
の内容である。
【００８４】
図２９Ａの実施例２６は、繰返しパーツ５を使ったもので、繰返しパーツ５と繰返しパーツ５を逆さにして配置したパーツとの２個で、おゆうぎ処理パーツ１ｃを上下から挟んでいる。
上の繰返しパーツ５の右側には、繰返し付属パーツ４-７がレイアウトされ、繰返し回数４-７２が表示されており、繰返し回数の２回が示されている。
繰返し付属パーツ４-７の地模様は、繰返しパーツ５の地模様と同じであると繰り返しの回数であることがわかり易い。
これらのパーツのレイアウトが示すプログラムは、
「ようちえんにいく」  →  「たいそう」をする  →  「おゆうぎ」を２回繰り返す  →  「きゅうしょく」を食べる  →  「おゆうぎ」をする  →  「おうちにかえる」
の内容である。
ケースパーツ２の内容の繰返しを表現する場合は、ケースパーツ繰返し付属パーツ４-７が適しているが、処理パーツ１やケースパーツ２、選択肢パーツ３などが並んだ塊を繰返す場合は、繰返しパーツ５で表現するほうがやり易い。
【００８５】
図２９Ｂの実施例２７も、繰返しパーツ５を使ったもので、繰返しパーツ５と繰返しパーツを逆さにして配置した繰返しパーツ５との２個で、たいそう処理パーツ１-ｂと、おゆうぎ処理パーツ１-ｃを上下から挟んでいる。
これらのパーツのレイアウトが示すプログラムは、
「ようちえんにいく」  →  「たいそう」と「おゆうぎ」を２回繰り返す  →  「きゅうしょく」を食べる  →  「おゆうぎ」をする  →  「おうちにかえる」
の内容である。
【００８６】
図３０の実施例２８は、繰返しパーツ５を２組の計４つ使ったもので、繰返しパーツ５と繰返しパーツ５を逆さにして配置したパーツとの２個でおゆうぎ処理パーツ１-ｃを挟み、さらに、上記おゆうぎ処理パーツ１-ｃを含む繰り返しのパーツセットと、たいそう処理パーツ１-ｂを加えたものを、繰返しパーツ５と繰り返しパーツ５を逆さにして配置したパーツとの２個で、上下から挟んでいる。
上の繰返しパーツ５の右側には、繰返し付属パーツ４-７がレイアウトされ、繰返し回数４-７２が表示されており、繰返し回数の２回が示されている。また、中の繰返しパーツ５の右側にも、繰返し付属パーツ４-７がレイアウトされ、繰返し回数４-７２が表示されており、繰返し回数の２回が示されている。
これらのパーツのレイアウトが示すプログラムは、
｛「たいそう」をする  →  「おゆうぎ」を２回繰り返す｝  これを２回繰り返す  →  「きゅうしょく」を食べる  →  「おゆうぎ」をする  →  「おうちにかえる」
の内容である。「おゆうぎ」は合計５回することになる。
【００８７】
図３１の実施例２９は、実施例２８では、きゅうしょく処理パーツ１-ｄが下の繰返しパーツ５を逆さにして配置したパーツの下にあったものを、繰返しパーツ５を逆さにして配置したパーツの右に移動させたものである。
これらのパーツのレイアウトが示すプログラムは、
｛「たいそう」をする  →  「おゆうぎ」を３回繰り返す｝  これを給食の時間になるまで繰り返す  →  「きゅうしょく」を食べる  →  「おゆうぎ」をする  →  「おうちにかえる」
の内容である。
【００８８】
図３２の実施例３０は、判断パーツ８を使ってレイアウトしたものである。
図３２Ａは、縦の巾が２単位の判断パーツ８で、その左側に「はい」の記載が、右側には「いいえ」の記載がある。上にレイアウトされているおゆうぎ処理パーツ１-ｃに対して、どうするかの判断を求める処理で、「はい」と「いいえ」の判断により、下にレイアウトされたパーツの処理に続くようプログラムされる。
判断パーツ８は、図３２Ｂ／Ｃに示すように、おゆうぎ処理パーツ１-ｃと一体となり逆三角形をした判断パーツ８と、直角三角形の「はい」の判断を示すＹ判断パーツ８-Ｙと、同じく直角三角形の「いいえ」の判断を示すＮ判断パーツ８-Ｎとの３つで構成しても良い。この場合、プログラム作成が多少理解し易くなる。
ただし、この場合、四角形のパーツに三角形のパーツが加わり、パーツの形状の種類が増え、製造コストのアップなどが考えられる。
また、図３２Ｄに示すように、長方形で「はい」と「いいえ」が一体になった四角形判断パーツ８-２でもよい。この場合は、製造コストのアップは押さえられる。
なお、判断処理も、基本的には選択処理の１つである。
【００８９】
図３３は、並べられたブロックパーツを組み合わせたもの９を、カメラである入力装置１０-１とＯＣＲ機能を持った（ＯＣＲアプリケーションソフトをインストールした）スマートフォンなどの撮影機能付きのプログラム実行端末１０で、撮影しているところを示す。
【００９０】
図３４Ａは、撮影機能付きのプログラム実行端末１０のＯＣＲ機能で、図２Ａのブロックパーツを組み合わせたもの９に記載された文字を認識したもので、（  ）書きに地模様も併せて認識したことを示す。
「（地模様Ａ）おゆうぎ」は、地模様Ａが全体に施されたおゆうぎケースパーツ２-ｃであることを示し、「（地模様ａ）はないちもんめ」は、左側に地模様Ａが１単位の幅だけ付けられたはないちもんめ選択肢パーツ３-ａであることを示す。
図３５Ｂの表の左列は、読取りデータからＯＣＲが認識した文字データである。この文字データとレイアウトデータから、プログラム実行端末１０のデータベース１０-４５のデータをもとに、表の右列のプログラム要素データが解析され認識されたことを示す。
【００９１】
図３５は、本願システムの基本ブロック図である。
入力装置１０-１により取り入れた情報は、ＯＣＲなどの認識手段１０-３などにより、文字は文字データに、レイアウトはレイアウトデータとなる。それらのデータはデータ解析手段１０-４によりデータベース１０-４５のデータと対比させ参照しながら、プログラム要素データが作られる。それらを基にプログラム生成部１０-６で、プログラムが生成される。プログラム生成に当たっては、データベース１０-４５の格納済みの基本プログラムなどのデータが使われる。
生成されたプログラムは、プログラム実行装置１０-７に送られ、実行用データ１０-７５を使いながら実行される。
実行用データ１０-７５には、画像データや動画データ、ロボット制御データ、音声データなどの種類がある。
【００９２】
以下、プログラム生成部に送る処理内容と処理データを記載したプログラム例である。
// 画像から文字情報を読み取る
var captureImg = ' OCRなどでキャプチャーした画像' ;
Tesseract. recognize(captureImg,  {lang: ' jpn' }) . then(function(result)  {
checkText(result) ;
});
// 取得した文字情報をチェック、処理の内容を処理プログラムへ送る
function checkText(result) {
var textAll = [' ようちえんにいく' , ' たいそう' . . . ] ;
for (var i = 0; i < textAll.length; i++)  {
if (result. match(textAll[i] ) ) {
send_program("処理内容", "文字情報") ;
}
}
}
// 順次処理
ようちえんにいく
send_program("sequentially", " ようちえんにいく") ;
// 順次処理
たいそう
send_program("sequentially", "たいそう") ;
// 分岐処理
おゆうぎ
はないちもんめ
とおりゃんせ
send_program("case", "おゆうぎ" ["はないちもんめ", " とおりゃんせ"] ) ;
// 順次処理
きゅうしょく
send_program("sequentially", "きゅうしょく") ;
// 順次処理
おひるね
send_program("sequentially", "おひるね") ;
// 順次処理
おうちにかえる
send_program("sequentially", "おうちにかえる") ;
// 終了/ / 
【００９３】
プログラム中の、//に続く文の行は、プログラム自体ではなく、プログラムのコメント（説明文）であり、プログラムの処理には影響しない。プログラムの学習には役立つので、設定により表示できるようにしても良い。
【００９４】
図３６は、実施例３１の入力装置付きのプログラム実行端末１０のブロック図である。  入力装置１０-１はカメラで、ここで撮影した画像のデータは画像読取り手段１０-３１の、ＯＣＲで文字画像が文字コードデータに変換され、地模様や、レイアウト画像も、地模様データ、レイアウトデータ（文字の改行などの上下方向のレイアウト）などに変換される。
変換されたデータは、データ解析手段１０-４１により、データベース１０-４５のデータを基に解析され、テキストのプログラム要素データと地模様やレイアウトのプログラム要素データとなる。
【００９５】
テキストのプログラム要素データと地模様やレイアウトのプログラム要素データは、プログラム生成部１０-６に送られ、その要素データを基にプログラムが生成される。プログラム生成においては、データベース１０-４５に格納済みの基本プログラムデータと対比参照するなどが行われる。
途中プログラムが実行できないなどのエラーがある場合は、エラー解析部にエラー情報が送られ、エラーデータ１０-６５を参照してエラー理由が検出され、エラー修正部がエラー解析部およびエラーデータフ１０-６５と連携し、エラーを修正する。
完成されたプログラムは、プログラム制御実行部１０-７に送られ、利用者の実行ボタンの入力があれば、実行用データ１０-７５から、静止画やアニメ動画データや音声データなどを取り入れながら、プログラムが実行される。
実行した内容は、プログラム実行端末１０のディスプレイ兼操作部１０-２に表示される。
【００９６】
図３７は、実施例３１のプログラム実行端末１０のディスプレイ兼操作部１０-２である。おやつの選択シーンで、選択肢であるおやつの画像１０-２２と、ユーザーに操作を促すコメント１０-２３と、コメントに関連したイラストの画像１０-２４が表示されている。３つのおやつの内の一つをディスプレイ兼操作部１０-２にタッチして選択すると次のシーンに変わる。
【００９７】
図３８の実施例３２は、通信能付きプログラム実行端末１１と外部通信環境１３とプログラム学習サーバー１２を連携させたところのブロック図である。
端末で生成されたプログラムやプログラム生成履歴、エラーの発生状況などのプログラム学習の内容が、端末の通信装置１１-２により、インターネットなどの外部通信環境１３を使って、外部サーバーであるプログラム学習サーバー１２に送られるシステムである。
【００９８】
プログラム学習サーバー１２は、送られてきた通信能付きプログラム実行端末１１の情報などをもとに、学習レベル分析機能やエラー情報分析機能、指導サポート機能などを使って、プログラム学習のための各種サービス提供機能１２-２を発揮する。
学習レベル分析機能は、プログラムの制作難易度、目的達成率、プログラムのシンプルさ、作成スピード、エラー回数、エラー内容などにより学習レベルを判定する。
エラー情報分析機能は、エラー情報から、エラーが起こり易いプログラムを把握すると同時に、プログラム学習者の弱点を分析する。
学習サポートは、学習レベル分析機能、エラー情報分析機能と連動して、プログラム学習データベース１２-１に格納されたプログラム学習サポートデータを参照しながら、学習者の学習をサポートする。サポート内容は、プログラム作成のヒントや、練習問題とその回答と解説や、学習プログラムの見直しなどである。
【００９９】
手書き文字認識機能１２-３は、手書きされたプログラムの画像認識のためにあるが、プログラム学習者が低年齢であることも考慮すると、一般的な文字認識ソフトでは認識が難しいと考えられる。そこで撮影した画像を外部サーバーである教育サーバー１２などに送り、より強力な手書き認識機能１２-３で、手書き文字を認識させようというものである。
【０１００】
要求があれば、端末ごとの学習進度に応じプログラム学習データベース１２-１に格納されているプログラム学習支援情報や、プログラム学習支援ノウハウを各端末に送付する。
また、プログラム学習サーバー１２は、学習する団体やクラス、学校などを登録しておけば、団体やクラス、学校ごとの情報を送付し、さらに、地域や都道府県ごとの情報も蓄積する。団体やクラス、学校ごとの情報、地域や都道府県ごとの情報は、プログラム教育の普及や改善、発展に利用される。
【０１０１】
図３９は実施例３３で、連携パーツ７を使った、プログラム作成の例である。
図３９Ａに、平日選択肢パーツ３-ｐの右に連携パーツ７-Ａがレイアウトされている。図３９Ｂに、別の平日選択肢パーツ３-ｐの左に別の連携パーツ７-Ａがレイアウトされている。その下に曜日ケースパーツ２-ｈが、さらにその下に左側にパラメータ無し選択付属パーツ４-２を伴った、月曜日から土曜日まで６つの曜日選択肢パーツ３-ｐｍが、それらの右にはそれぞれ、連携パーツ７-Ａ２がレイアウトされている。
【０１０２】
図３９Ｃには、左側に別の連携パーツ７-Ｂとパラメータ無し選択付属パーツ４-２を伴った月曜日の曜日選択肢パーツ３-ｐｍが、その下に登校処理パーツが１-ｋ、その下に時間割ケースパーツ２-ｋが、その下に、平日選択肢パーツ３-ｐに付属していたパラメータ無し選択付属パーツ４-２とはの別のパラメータ無し選択付属パーツ４-２を伴った、時限選択肢パーツ３-ｔと給食選択肢パーツ３-ｓがレイアウトされ、さらにその下に下校処理パーツ１-ｍと、平日の終り処理パーツ１-ｎがレイアウトされている。
図３９Ｄは、余りの処理パーツである。
【０１０３】
これらのパーツのレイアウトが示すプログラムは、
「起床」  →  「トイレ」に行く  →  「洗顔」する  →  「朝食」を食べる  「歯磨き」をする  →  今日が平日か休日か指定する：今日は平日  →  平日の曜日を指定するプログラムに飛ぶ  →  曜日を指定する：月曜日  →  月曜日のプログラムに飛ぶ  →  月曜日のプログラム：「登校」する  →  「時間割」が続く  →  「１時間目」から「給食」を挟んで「６時間目」に至る  →  「下校」する  →  「平日の終わり」  →  「夕食」を食べる  →  「テレビ」を見る  →  「宿題」をする  →  「お風呂」に入る  →  「寝る」
の内容である。
なお、時間割ケースパーツ２-ｋは、選択肢を選択させるケースではなく、順次処理を示すケースである。
【０１０４】
図４０は、選択肢パーツ３の側面３-４ｓに選択肢パーツ側面の孔３-４ｈが開けられた選択肢パーツ３を示す。選択肢パーツ上面３-４ｕには「祝日」が、選択肢パーツ前面３-４ｍには「平日」が記載されている。他のには、「日曜」「休日」が記載されており、上面にどの面を持ってくるかで４通りに使える。
選択肢パーツ側面の孔３-４ｈは、連続パーツをはめ込むための孔で、円柱状の孔である。選択肢パーツ側面の孔３-４ｈに、図３９の連携パーツ７の連携突起７-３を差し込む。連携パーツ７の連携突起７-３が円柱形であれば、選択肢パーツ側面の孔３-４ｈに連携パーツ７を挿した状態で回すことができ、４種類の連携パーツの記載文字を、回すだけで簡単に変えることができる。
このことは、他の付属パーツ４でも同様の構造とすることで、回すだけでパラメーターを変えることができる。
なお、円柱状の孔、突起を四角柱とした場合は、抜き差しが必要となるが傾くことなく接続させることができる。
【０１０５】
図４１の実施例３４は、実施例３３をもとに、別のプログラムを作ったものである。
図４１Ｂは、平日選択肢パーツ３-ｐに続く曜日ケースパーツ２-ｈに続けて、月曜日のプログラムをレイアウトしている。
これらのパーツの図４３Ｂのレイアウトが示すプログラムは、
平日の曜日を指定するプログラム  →  曜日を指定する：月曜日  →  月曜日のプログラム  「登校」する  →  「１時間目」から「体育」を１時限を２回繰返す（体育を２時限する）  →  「給食準備」をする  →  「配膳」する  →  「食事」する  →  「理科」の授業  →  「算数」の授業  →  「下校」する  →  「平日の終わり」  
の内容である。
【０１０６】
以下、OCRを解析し、プログラム生成部に送る処理内容と処理データを記載したプログラム例である。
// 写真から文字情報を読み取る
var captureImg = ' OCRなどでキャプチャーした画像' ;
Tesseract. recognize(captureImg,  {lang: ' jpn' }) . then(function(result)  {
checkText(result) ;
});
// 取得した文字情報をチェック、処理の内容を処理プログラムへ送る
function checkText(result) {
var textAll = [' 起床' , ' トイレ' , ' 洗顔 ' . . . ] ;
for (var i = 0; i < textAll.length; i++)  {
if (result. match(textAll[i] ) ) {
send_program("処理内容", "文字情報") ;
}
}
} 
// 順次処理
起床
send_program("sequentially", "起床") ;
// 順次処理
トイレ
send_program("sequentially", " トイレ") ; // 順次処理
洗顔
send_program("sequentially", "洗顔") ;
// 順次処理
朝食
send_program("sequentially", "朝食") ;
// 順次処理
歯磨き
send_program("sequentially", "歯磨き") ;
// 分岐処理
何の日
平日
休日
send_program("case", "何の日" ["平日", "休日"] ) ; 
//平日を選択した場合
// 順次処理
平日
send_program("sequentially", "平日") ;
// 分岐処理
曜日
月曜日
send_program("case", "曜日" ["月曜日", "火曜日". . . ] ) ; 
// 月曜日を選択した場合
// 順次処理
登校
send_program("sequentially", "登校") ; // 順次処理
時間割
send_program("sequentially", "時間割") ; 
// 繰り返し処理
体育
send_program("repeat[回数] ", "体育") ;
// 順次処理
給食準備
send_program("sequentially", "給食準備") ; // 順次処理
配膳
send_program("sequentially", "配膳") ;
// 順次処理
食事
send_program("sequentially", "食事") ;
// 順次処理
理科
send_program("sequentially", "理科") ;
// 順次処理
算数
send_program("sequentially", "算数") ;
// 順次処理
下校
send_program("sequentially", "下校") ;
// 順次処理（分岐終わり）
平日の終わり
send_program("return", "平日の終わり") ; 
// 順次処理
夕食
send_program("sequentially", "夕食") ;
// 順次処理
テレビ
send_program("sequentially", "テレビ") ;
// 順次処理
宿題
send_program("sequentially", "宿題") ;
// 順次処理
お風呂
send_program("sequentially", "お風呂") ;
// 順次処理
寝る
send_program("sequentially", "寝る") ;
// 終了
【０１０７】
図４２の実施例３５は、ロボットの動きをプログラムしたものである。
これらのパーツのレイアウトが示すプログラムは、
ロボットの「パワーオン」  →  「歩く」  →  「方向転換」の選択肢が「後ろ」と「左右」があり、「左右」には「右」転換と「左」転換の選択肢がある  →  どれか１つを選択すると方向転換し歩き続ける  →  「止まる」  →  「手を上げる」の選択肢として「右」手と「左」手と「両」手がある  →  どれか１つを選択すると選択した内容に沿って手を上げる  →  「止まる」  →  「パワーオフ」
の内容である。
【０１０８】
これらレイアウトされたブロックパーツをくみあわせたものを、カメラである入力装置１０-１とＯＣＲ機能を持ち、プログラムを実行するアプリケーションソフトをインストールしたスマートフォンなどのプログラム実行端末１０で、実行させるとそのディスプレイ上で、アニメーションのロボットがプログラム通りに動く。
なお、ディスプレイ上のアニメーションロボットではなく、小型のロボットが動くようにしても良い。
【０１０９】
図４３は、商品開発のテーマを決めるための使用例で、プログラムを検討するためにレイアウトしたパーツの一部を示している。
本願発明は、この例にも示すように、ビジネスの場でも使えるものである。
これらのパーツのレイアウトが示すプログラムは、
「商品開発」に当たって  →  その「是非」を最初に考える  →  「理念」に合致するか考える  →  理念からまず導かれる「基本方針」との「整合性」のチェック（※１）  →  「企業目標」「従業員の幸福」「社会性」を全てチェック（※２）  →  「調査」：「目的」「競争相手」「時期」「外部環境」「リソース」を全て「調査」する（※３）  →  「テーマ開発推進」  →  「既存ライン」商品か、「新規ライン」商品か、「新規カテゴリー」かを決める  →  「新規カテゴリー」の場合、「異業種」参入か、「異業態」（※４）か、従来の業態での新規商品かを選択する  →  「新規商品」の場合は、どのような方法による新規商品か決める  →  「リサイクル」「アップサイクル（※５）」「新規デザイン」かを決める。  →  新規デザインの場合、どのようなデザインを目指すか決める、「Basicdesign」「Redesign」「Otherdesign」「Ethcaldesign」のどのような手法を使うか、２回繰り返して考える（※６）  →  社長に報告する  →  商品開発テーマの可否について判断を求める  →  「可」の判断が出るまで繰り返す  
の内容である。
【０１１０】
以下に（※１）〜（※６）について、補足する。
（※１）整合性ケースは、伴う個別要素パーツがチェック項目であることを示す。
（※２）接続パーツＡＡ、ＡＢ、ＡＣに具体的なチェック内容が続く。
（※３）調査ケースに伴われる個別要素パーツは必要に応じ、調査される。接続パーツＢ、Ｃ、Ｄ、Ｅ、Ｆに具体的な調査内容が続く。
（※４）「異業種」とは、扱う商品やサービスが異なる業種のこと。異業態とは、扱い方、例えば、小売り、卸、下請け、製造販売などの違いを指します。
（※５）「アップサイクル」とは、商品の製造課程で出てく端材や余りものなどを使って、別の新たな商品に仕上げることを言う。
（※６）接続パーツＢＡ、ＢＢ、ＢＣ、ＢＤに具体的なチェック内容が続く。
【０１１１】
図４４の実施例３６は、直方体ではない変形ブロックである黒文字楊枝の、本願実施例である。説明ケースパーツ２-ｕは、文字の記載はないが、黒文字の樹皮によりケースパーツ２と読み取るよう、プログラム実行端末１０のアプリケーションソフトで設定されている。レシピケースパーツ２-ｖはレシピの選択を指示するが、選択肢パーツ３が１つしかない場合は、操作者の操作を待たず、選択肢パーツ３の内容が処理実行され表示される。
図４４Ａでは、黒文字楊枝樹皮を認識すると、その下にレイアウトされている皐月草花羊羹選択肢パーツ３-ｕの記載内容を認識し、プログラム実行端末１０上で、皐月草花羊羹の説明が成される。
図４４Ｂは、Ａのレイアウトの残りのパーツである。レシピケースパーツ２-ｖは、レシピ説明ためのケースパーツ２である。
【０１１２】
図４５Ａは、複数の文字などの記載と、それらを罫線の枠線で囲ったものを紙に出力したものである。
ケースの文言記載の枠内には、地模様などケース仕上げ２-３が、その右の枠には繰返しを示す繰返し回数４-７２であることを示す地模様が付けられている。また、選択肢である「はないちもんめ」の記載の左には、「はないちもんめ」が選択肢であることを示す、枠線で囲われた選択肢仕上げ２-３の四角い部分がある。
撮影機能付きのプログラム実行端末１０は、他の本願パーツ同様、本出力紙を読み取った後、読み込んだ文字などのコードデータとレイアウトデータを認識する手段と認識したデータと格納済みのデータから、プログラム要素とプログラム構成データを解析する解析手段と、解析したデータからプログラムを生成し、実行することができる。
この出力した紙の記載が示すプログラムは、実施例５と同様
「ようちえんにいく」  →  「たいそう」をする  →  「はないちもんめ」のお遊戯を２回する  →  「きゅうしょく」を食べる  →  「おひるね」をする  →  「おうちにかえる」  
の内容である。
【０１１３】
図４５Ｂは、図４５Ａから罫線と地模様である仕上げを取り去ったものを、紙に出力したものである。
「ようちえんにいく」の文言は、格納済みデータからケースであると認識され、そのケースの右にある数値はケースの繰り返し回数であると認識され、「はないちもんめ」は選択肢であることが認識されるよう設定されている。
「はないちもんめ」の左側には、「はないちもんめ」が選択肢であることを示すケース地模様は無いが、「はないちもんめ」は選択肢であることが認識されるよう設定されており、また「きゅうしょく」が選択肢ではなく処理を示すものと設定されているため、間違いなく記載内容を認識することができる。
この出力した紙の記載が示すプログラムも、実施例５と同様
「ようちえんにいく」  →  「たいそう」をする  →  「はないちもんめ」のお遊戯を２回する  →  「きゅうしょく」を食べる  →  「おひるね」をする  →  「おうちにかえる」  
の内容である。
【０１１４】
次に、別のプログラミング学習で用いられるプログラミング支援具の実施例を説明する。
このプログラミング学習での課題は、図４６に示す通り、ロボットを使って車を自動運転し、目的地にたどり着くためのプログラミング構成を学習するというものである。
この学習であらかじめ用意されたパーツは、矩形状ないし正方形状をなす、例えば薄い板状のものであり、表裏面の一方が、処理内容を記載する内容表示面となっている。そして、その内容表示面を同じ方向に向けて、他のパーツと辺を接触しながら並べて配置することができるように構成されている。
【０１１５】
パーツの種類としては、順次処理、選択処理、繰返し処理を示す３種類が少なくともあり、この実施例では、その他に開始／終了を示す開始／終了パーツや、サブルーチンやモジュールなどのひとまとまりの処理の表題を示す表題パーツなども用意されている。
【０１１６】
次に、各種パーツについて説明する。
開始と終了を表す開始／終了パーツは、図４７に示すようなものである。
【０１１７】
順次処理を表す順次処理パーツは、図４８に示すようなものである。表面に視認可能に記載された内容が、処理内容を表している。
【０１１８】
選択処理を表す選択処理パーツは、ここでは２種類用意してある。その一つが、３以上の選択分岐処理を表すケース（ｃａｓｅ）パーツである。この実施例でのケースパーツは、図４９に示すように、２種類のケースパーツ要素を組み合わせて構成できるようにしてある。第１ケースパーツ要素は例えばＬ字型の形状をなし、その内容として、現在地がどこかを問う記載が表されている。第２ケースパーツ要素は、第１ケースパーツ要素の縦部位の横に並べられるものであり、その内容として、具体的な場所が記載されている。
【０１１９】
選択処理を表すもう１種類のパーツは、２分岐処理を表すイフ（ｉｆ）パーツである。ここでは、図５０に示すように、矩形状のパーツ表面に２本の斜め線が表記してあり、その斜め線と上辺で囲まれた逆二等辺三角形の中に、分岐条件の内容が記載してある。そして、下辺部両端にはＹＥＳとＮＯが表記してあって、この下に、さらに各種のパーツを接続配置できるようにしてある。
【０１２０】
繰返し処理を表す繰返し処理パーツは、図５１に示すように、２つの繰返し処理パーツ要素によって構成されており、この繰返し処理パーツ要素の間に挟まれて配置されたパーツの処理が繰り返されることを示すようにしてある。第１繰返し処理パーツ要素の表面には、上に凸の横長半楕円が記載してあるとともに、繰り返し条件の内容が記載されている。第２繰返し処理パーツ要素の表面には、下に凸の横長半楕円が記載してあるとともに、ここまでの処理を繰り返す旨が記載してある。また、この実施例では、正方形状の回数パーツ要素も設けてある。この回数パーツ要素は、第１繰返し処理パーツ要素の上に載せて、繰り返し回数を指定するために用いられる。
【０１２１】
サブルーチンやモジュールなどのひとまとまりの処理の表題を示す表題パーツは、図５２に示すようなものである。また、図５３に、前記サブルーチンやモジュールの処理が行われることを示すパーツを示す。このパーツは、順次処理パーツの１種であるということもでき、ここでは、前記表題を行先とする旨の表示がなされている。
【０１２２】
図５４に、前記課題に回答すべく、学習者がパーツを並べて作成したパーツ配列を示す。この解答例では、プログラム構造が階層構造となっており、１ひとまとまりのパーツ配列が、最上位階層、中間階層、最下位階層の３階層に分けられて、複数設けられている。
なお、図５４で学習者が作成したパーツの並びを読み取って実際のプログラムに生成するツールに関しては、先の各実施例で述べたとおりであるので、ここでの説明は省略する。
【０１２３】
しかして、このようなものであれば、パスルのように各パーツを手に取って並べながら、構造化プログラミングを学習することができる。
【０１２４】
なお、本発明は前記図示例等に限られるものではない。例えばパーツは、平面上に並べるだけではなく、下から積み上げるようにしてもよい。その場合は、鉛直な面が内容表示面となる。
【０１２５】
また、各パーツを接触させるだけではなく、物理的に連結する連結構造を設けておいてもよい。その一例を図５５に示す。この連結構造は、パーツの辺に設けられた凹部Ｘ１と、その凹部Ｘ１に嵌合する嵌合体Ｘ２とからなり、隣り合うパーツの凹部Ｘ１同士に嵌合体Ｘ２を嵌め込むことにより、該隣り合うパーツを物理的に連結できるようにしてある。このようにしておけば、作製したパーツ配列が容易にバラバラになることがなく、例えば持ち運んで、別の場所でこれをプログラムに変換することもできるようになる。
【０１２６】
その他、本発明は前記各実施例に限られるものではなく、例えば、実施例の一部同士を組み合わせるなど、その趣旨を逸脱しない限りにおいて、種々変形が可能である。
【産業上の利用可能性】
【０１２７】
本発明は、子供向けプログラム学習ツールとして利用できるだけでなく、様々なパーツを多数組み合わせることで、プログラマーやシステムエンジニアがチーム内で複雑なプログラムを検討する場合に、シンプルな構成にして全体をわかり易くしたりすることにも使える。
また、パーツの文言を適宜変えることで、事業や商品開発に当たって、事業戦略や商品構成を考える上で、考えを整理することにも使える。
また、パーツを使わず紙に記載したプログラムを読み取ることでそのまま実行することもでき、手軽にプログラムの学習や、新規のプログラムの開発ができる。
【符号の説明】
【０１２８】
ハイフン（-）記号付きの符号は、ハイフンの左を主グループ名とし、ハイフンの左と合わせて個別名またはサブグループ名を表すものとする。例えば、１-ａは、「処理パーツ１」に属する「ようちえんにいく処理パーツ」であることを示す。【０１２９】
１      処理パーツ
１-ａ    ようちえんにいく処理パーツ
１-ｂ    たいそう処理パーツ
１-ｃ    おゆうぎ処理パーツ
１-ｄ    きゅうしょく処理パーツ
１-ｅ    おひるね処理パーツ
１-ｆ    もらわれていく処理パーツ
１-ｇ    おうちにかえる処理パーツ
１-ｈ    おそとあそび処理パーツ
１-ｉ    おえかき処理パーツ
１-ｋ    登校処理パーツ
１-ｍ    下校処理パーツ
１-ｐ    平日の終り処理パーツ
１-ｑ    パワーオン処理パーツ
１-ｒ    歩く処理パーツ
１-ｓ    止まる処理パーツ
１-ｔ    パワーオフ処理パーツ
１-１ｍ    処理パーツ前面
１-１Ｕ    処理パーツ上面
１-１ｓ    処理パーツ側面
１-２    文字など【０１３０】
２    ケースパーツ
２-ａ    おやつケースパーツ
２-ｂ    ケーキケースパーツ
２-ｃ    おゆうぎケースパーツ
２-ｄ    ばつケースパーツ
２-ｅ    あそびじのじかんケースパーツ
２-ｆ    おはなしケースパーツ
２-ｇ    何の日ケースパーツ
２-ｈ    曜日ケースパーツ
２-ｋ    時間割ケースパーツ
２-ｑ    方向転換ケースパーツ
２-ｒ    左右ケースパーツ
２-ｓ    手を上げるケースパーツ
２-ｕ    説明ケースパーツ
２-ｖ    レシピケースパーツ
２-２    ケース記載文字など
２-３    ケース仕上げ
２-４    ケースマーク【０１３１】
３    選択肢パーツ
３-ａ    はないちもんめ選択肢パーツ３-ａ２    はないちもんめ伴奏パーツ３-ｂ    とおりゃんせ選択肢パーツ
３-ｂ２    とおりゃんせ伴奏パーツ
３-ｃ    ちゃんばら選択肢パーツ
３-ｄ    あんたがたどこさ選択肢パーツ３-ｅ    かごめかごめ選択肢パーツｅ３-ｆ    えほん選択肢パーツｆ
３-ｇ    かみしばい選択肢パーツｇ
３-ｈ    みかん選択肢パーツ
３-ｉ    いちごケーキ選択肢パーツ
３-ｊ    チーズケーキ選択肢パーツ
３-ｋ    クッキー選択肢パーツ
３-ｍ    おに選択肢パーツ
３-ｎ    ぬける選択肢パーツ
３-ｐ    平日選択肢パーツ
３-ｐｍ    曜日選択肢パーツ
３-ｔ    時限選択肢パーツ
３-ｓ    給食選択肢パーツ
３-ｕ    皐月草花羊羹選択肢パーツ    ３-ｖ    梅見観世選択肢パーツ
３-ｂｋ    後ろ選択肢パーツ
３-ｒ    右選択肢パーツ
３-Ｌ    左選択肢パーツ
３-ｗ    両手選択肢パーツ
３-１    選択肢仕上げ
３-２    選択肢記載文字など
３-４ｈ    選択肢パーツ側面の孔
３-４ｍ    選択肢パーツ前面
３-４ｕ    選択肢パーツ上面
３-４ｓ    選択肢パーツ側面【０１３２】
４    付属パーツ
４-１    選択付属パーツ
４-２    パラメータ無し選択付属パーツ４-３    選択付属仕上げ
４-５    判断付属パーツ
４-５Ｙ    Ｙ判断付属パーツ
４-５Ｎ    Ｎ判断付属パーツ
４-５Ｅ    Ｅ判断付属パーツ
４-６    ケース付属パーツ
４-７    繰返し付属パーツ
４-７０    繰返し付属パーツ記号
４-７１    繰返しマーク
４-７２    繰返し回数
４-７３    繰返し仕上げ【０１３３】
５    繰返しパーツ
５-３    繰返しパーツマーク
６    接続パーツ
６-１Ｒ    右方向接続パーツ
６-１Ｌ    左方向接続パーツ
７    連携パーツ
７-Ａ    Ａ連携パーツ
７-Ａ２    Ａ２連携パーツ
７-Ｂ    Ｂ連携パーツ
７-Ｃ    Ｃ連携パーツ
７-２    連携パーツの記載文字
７-３    連携突起
８    判断パーツ
８-２    四角形判断パーツ
８-Ｙ    Ｙ判断パーツ
８-Ｎ    Ｎ判断パーツ
９    ブロックパーツを組み合わせたもの【０１３４】
１０    プログラム実行端末
１０-１    入力装置
１０-２    ディスプレイ兼操作部
１０-２２    おやつの画像
１０-２３    ユーザーに操作を促すコメント
１０-２４    コメントに関連したイラストの画像
１０-３    認識手段
１０-３１    画像読取り手段
１０-４１    データ解析手段
１０-４５    データベース
１０-６    プログラム生成部
１０-６５    エラーデータフォルダ
１０-７５    実行用データ
１０-７    プログラム実行部
１１    通信能付きプログラム実行端末
１１-２    通信装置
１２    プログラム学習サーバー
１２-１    プログラム学習データベース
１２-２    各種サービス提供機能
１２-３    手書き文字認識機能
１３    外部通信環境
２０-１    組み合わせたブロックパーツの上からの順番
２０-２    画像読取りデータ
２０-３    ＯＣＲによる認識データ
【図１】
0006656689.tif 000002
【図２】
0006656689.tif 000003
【図３】
0006656689.tif 000004
【図４】
0006656689.tif 000005
【図５】
0006656689.tif 000006
【図６】
0006656689.tif 000007
【図７】
0006656689.tif 000008
【図８】
0006656689.tif 000009
【図９】
0006656689.tif 000010
【図１０】
0006656689.tif 000011
【図１１】
0006656689.tif 000012
【図１２】
0006656689.tif 000013
【図１３】
0006656689.tif 000014
【図１４】
0006656689.tif 000015
【図１５】
0006656689.tif 000016
【図１６】
0006656689.tif 000017
【図１７】
0006656689.tif 000018
【図１８】
0006656689.tif 000019
【図１９】
0006656689.tif 000020
【図２０】
0006656689.tif 000021
【図２１】
0006656689.tif 000022
【図２２】
0006656689.tif 000023
【図２３】
0006656689.tif 000024
【図２４】
0006656689.tif 000025
【図２５】
0006656689.tif 000026
【図２６】
0006656689.tif 000027
【図２７】
0006656689.tif 000028
【図２８】
0006656689.tif 000029
【図２９】
0006656689.tif 000030
【図３０】
0006656689.tif 000031
【図３１】
0006656689.tif 000032
【図３２】
0006656689.tif 000033
【図３３】
0006656689.tif 000034
【図３４】
0006656689.tif 000035
【図３５】
0006656689.tif 000036
【図３６】
0006656689.tif 000037
【図３７】
0006656689.tif 000038
【図３８】
0006656689.tif 000039
【図３９】
0006656689.tif 000040
【図４０】
0006656689.tif 000041
【図４１】
0006656689.tif 000042
【図４２】
0006656689.tif 000043
【図４３】
0006656689.tif 000044
【図４４】
0006656689.tif 000045
【図４５】
0006656689.tif 000046
【図４６】
0006656689.tif 000047
【図４７】
0006656689.tif 000048
【図４８】
0006656689.tif 000049
【図４９】
0006656689.tif 000050
【図５０】
0006656689.tif 000051
【図５１】
0006656689.tif 000052
【図５２】
0006656689.tif 000053
【図５３】
0006656689.tif 000054
【図５４】
0006656689.tif 000055
【図５５】
0006656689.tif 000056