(57)【要約】【課題】チップ配列用のシートが無くても、簡便な手法によって課題に対応したプログラムの作成を可能にする。【解決手段】コンピュータシステムを用いてプログラムを作成するプログラム作成支援システムは、視認特性を有する複数のチップの配置により形成されるチップ配列に、プログラミングのための課題を示す特別チップを含んで配置されたチップ配列を撮影するカメラ２０６と、前記課題と該課題に使用される複数のチップの画像とを関係付けて管理する課題管理テーブル８０と、カメラで取得されたチップ配列の画像から、チップに関する画像を認識する画像処理部１０４と、画像処理部がスタートチップ４０１のような特別チップを認識した場合、特別チップの課題に関連する課題管理テーブルを基に画像処理部で認識された複数のチップの画像に対応する命令を選択して、選択された複数の命令から構成されるプログラムを生成するプログラム作成処理部１０３と、を有する【選択図】  図１
2019174524.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムを用いてプログラムを作成するプログラム作成支援システムであって、
視認特性を有する複数のチップの配置により形成されるチップ配列に、プログラミングのための課題を示す特別チップを含んで配置されたチップ配列を撮影するカメラと、
前記課題と、該課題に使用される該複数のチップの画像とを関係付けて管理する課題管理テーブルと、
前記カメラで取得された前記チップ配列の画像から、前記チップに関する該画像を認識する画像処理部と、
該画像処理部が前記特別チップを認識した場合、該特別チップの前記課題に関連する前記課題管理テーブルを基に、該画像処理部で認識された前記複数のチップの画像に対応する命令を選択して、該選択された該複数の命令から構成されるプログラムを生成するプログラム作成処理部と、
を有することを特徴とするプログラム作成支援システム。
【請求項２】
前記特別チップは、前記チップ配列の先頭に配置される、前記課題に固有の識別情報の表示を有するスタートチップである請求項１のプログラム作成支援システム。
【請求項３】
前記チップ配列は、該チップ配列の先頭に配置されるスタートチップと、該チップ配列の最後に配置されるエンドチップとを含み、
前記特別チップは、前記チップ配列における該スタートチップと該エンドチップの間の任意の位置に配置される所定の視認特性を有するチップであるである請求項１のプログラム作成支援システム。
【請求項４】
前記チップ配列は、該チップ配列の先頭に配置されるスタートチップと、該チップ配列の最後に配置されるエンドチップとを含み、
前記特別チップは、該スタートチップ又は該エンドチップに対して所定の位置に配置される所定の視認特性を有するチップであるである請求項１のプログラム作成支援システム。
【請求項５】
コンピュータシステムを用いてプログラムを作成するプログラム作成支援システムであって、
プログラミングのための課題を与え、かつ該課題に固有の識別情報の表示を有する課題シートと、
前記シートの該表示を撮影し、及び視認特性を有する複数のチップの配置により形成されるチップ配列を撮影するカメラと、
前記課題と、該課題に使用される該複数のチップの画像とを関係付けて管理する課題管理テーブルと、
前記カメラで取得された前記チップ配列の画像から、前記チップに関する該画像を認識する画像処理部と、
前記カメラによって取得された前記表示の前記識別情報を基に前記課題に対応する前記課題管理テーブルを指定して、指定された前記課題管理テーブルを基に、該画像処理部で認識された前記複数のチップの画像に対応する命令を選択して、該選択された該複数の命令から構成されるプログラムを生成するプログラム作成処理部と、
を有することを特徴とするプログラム作成支援システム。
【請求項６】
前記チップ配列は、該チップ配列の先頭に配置されるスタートチップと、該チップ配列の最後に配置されるエンドチップとを含み、
前記プログラム作成処理部は、前記画像処理部で認識された、該スタートチップと該エンドチップの間の配置された前記複数のチップの画像に対応する命令を選択する
請求項１乃至５の何れかの項に記載のプログラム作成支援システム。
【請求項７】
異なる複数の課題に対応して複数の前記課題管理テーブルが用意され、
異なる複数の課題に対応して、それぞれ固有の識別情報の表示が付された複数のスタートチップが用意され、
前記複数のスタートチップから選択された１のスタートチップが前記チップ配列に含まれ、
前記画像処理部は、前記チップ配列にある前記スタートチップの画像から前記表示を認識し、
認識された前記表示の識別情報に基づいて、対応する前記課題管理テーブルが指定される
請求項２のプログラム作成支援システム。
【請求項８】
複数のチップが有する視認特性の画像とプログラムの命令とを対応付けて登録する命令テーブルを有し、
前記課題管理テーブルは、前記課題に対応して前記命令テーブルから選択される前記画像と前記命令の対を格納する、
ことを特徴とする請求項１乃至７の何れかの項に記載のプログラム作成支援システム。
【請求項９】
複数のチップが有する視認特性の画像とプログラムの命令とを対応付けて登録する命令テーブルを有し、
前記課題管理テーブルは、前記課題に対応して前記命令テーブルにある命令と関連付ける参照情報を格納する、
ことを特徴とする請求項１乃至７の何れかの項に記載のプログラム作成支援システム。
【請求項１０】
前記コンピュータシステムは、サーバと、該サーバにネットワークを介して接続される端末を含み、
前記サーバは、異なる複数の課題ごとに複数の課題管理テーブルを記憶する記憶部と、プログラムの実行により前記画像処理部と前記プログラム作成処理部を実現する処理装置と有し、
前記端末は、前記カメラと、入力部と、表示部と、プログラムを実行するプロセッサと、メモリと、を有し、該メモリは前記複数の課題管理テーブルから選択された少なくとも１つの課題管理テーブルを記憶し、
前記サーバの前記プログラム作成処理部により作成された前記プログラムは該端末へ送信されて、該端末の該プロセッサは受信した前記プログラムを実行し、該表示部は前記プログラムの実行の様子を表示する
ことを特徴とする請求項１又は５に記載のプログラム作成支援システム。
【請求項１１】
前記コンピュータシステムは、ネットワークを介して接続される端末を含み、
前記端末は、前記カメラと、入力部と、表示部と、プログラムを実行するプロセッサと、メモリと、を有し、
該プロセッサは、該プログラムの実行により前記画像処理部と、前記プログラム作成処理部を実現し、
該メモリは、異なる複数の課題ごとに複数の前記課題管理テーブルを記憶し、
前記プログラム作成処理部により作成された前記プログラムは、該プロセッサで実行され、該実行の様子を該表示部に表示する
ことを特徴とする請求項１又は５に記載のプログラム作成支援システム。
【請求項１２】
前記端末が有する前記入力部より前記課題に対応する識別情報を入力することができ、
前記入力部からの該入力により、１の前記課題管理テーブルが選択される
請求項６又は７に記載のプログラム作成支援システム。
【請求項１３】
コンピュータシステムを用いてプログラムを作成するプログラム作成支援方法であって、
視認特性を有する複数のチップの配置により形成されるチップ配列に、プログラミングのための課題を示す特別チップを含んで配置されたチップ配列をカメラで撮影するステップと、
前記課題と、該課題に使用される該複数のチップの画像とを関係付けて課題管理テーブルで管理するステップと、
前記カメラで取得された前記チップ配列の画像から、前記チップに関する該画像を認識する画像処理ステップと、
該画像処理ステップで前記特別チップを認識した場合、該特別チップの前記課題に関連する前記課題管理テーブルを基に、該画像処理ステップで認識された前記複数のチップの画像に対応する命令を選択して、該選択された該複数の命令から構成されるプログラムを生成するプログラム作成処理ステップと、
を有することを特徴とするプログラム作成支援方法。
【請求項１４】
コンピュータシステムを用いてプログラムを作成するプログラム作成支援方法であって、
プログラミングのための課題と、該課題に使用される該複数のチップの画像とを関係付けて課題管理テーブルで管理するステップと、
プログラミングのための課題を与え、かつ該課題に固有の識別情報の表示を有する課題シートの該表示をカメラで撮影するステップと、
視認特性を有する複数のチップの配置により形成されるチップ配列をカメラで撮影するステップと、
前記カメラで取得された前記チップ配列の画像から、前記チップに関する該画像を認識する画像処理ステップと、
前記カメラによって取得された前記表示の前記識別情報を基に前記課題に対応する前記課題管理テーブルを指定して、指定された前記課題管理テーブルを基に、該画像処理ステップで認識された前記複数のチップの画像に対応する命令を選択して、該選択された該複数の命令から構成されるプログラムを生成するプログラム作成処理ステップと、
を有することを特徴とするプログラム作成支援方法。
【請求項１５】
コンピュータシステムを用いてプログラムを作成するプログラム作成支援プログラムであって、
コンピュータシステムは、
前記課題と、該課題に使用される該複数のチップの画像とを関係付けて課題管理テーブルで管理するステップと、
視認特性を有する複数のチップの配置により形成されるチップ配列に、プログラミングのための課題を示す特別チップを含んで配置されたチップ配列を、カメラが撮影した画像を取得するステップと、
前記取得された前記チップ配列の画像から、前記チップに関する該画像を認識する画像処理ステップと、
該画像処理ステップで前記特別チップを認識した場合、該特別チップの前記課題に関連する前記課題管理テーブルを基に、該画像処理ステップで認識された前記複数のチップの画像に対応する命令を選択して、該選択された該複数の命令から構成されるプログラムを生成するプログラム作成処理ステップと、
を実行することを特徴とするプログラム作成支援プログラム。
【請求項１６】
コンピュータシステムを用いてプログラムを作成するプログラム作成支援プログラムであって、
コンピュータシステムは、
プログラミングのための課題と、該課題に使用される該複数のチップの画像とを関係付けて課題管理テーブルで管理するステップと、
プログラミングのための課題を与え、かつ該課題に固有の識別情報の表示を有する課題シートの該表示を、カメラが撮影した画像を取得するステップと、
視認特性を有する複数のチップの配置により形成されるチップ配列を、カメラが撮影した画像を取得するステップと、
前記取得された前記チップ配列の画像から、前記チップに関する該画像を認識する画像処理ステップと、
前記取得された前記表示の前記識別情報を基に前記課題に対応する前記課題管理テーブルを指定して、指定された前記課題管理テーブルを基に、該画像処理ステップで認識された前記複数のチップの画像に対応する命令を選択して、該選択された該複数の命令から構成されるプログラムを生成するプログラム作成処理ステップと、
を実行することを特徴とするプログラム作成支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム作成支援システム及びその方法並びにそのプログラムに係り、特に初心者のプログラミング学習に好適なプログラム作成の支援技術に関するものである。
【背景技術】
【０００２】
ＡＩ（人工知能）や情報技術（ＩＴ）の発展に伴い、プログラミング人材育成の重要性が叫ばれている。プログラミング人材育成ための対応の１つとして、我が国では、文部科学省が子供向けのプログラミング教育の重要性を提唱し、２０２０年から小学校でプログラミング教育が必須となった。既に、子供向けのプログラミング教育のシステムや教育治具、玩具等がいろいろと提案されている。
【０００３】
本出願人は、より簡単かつ安価に子供たちにプログラミングを学習させる新たな手法を特許文献１で提唱している。特許文献１には、固有の絵柄を有する複数のチップをシート上に配列させ、そのチップの配列をカメラで撮影して、得られた絵柄の画像を認識して、対応付けられた命令を特定することで、複数の命令から構成されるプログラムを生成するプログラム作成支援システム及びその方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第６２５３１７０号公報（２０１７年１２月２７日発行）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明者らは、子供向けのプログラミング手法を開発していく段階で新たな課題に気が付いた。すなわち、特許文献１に記載のプログラミング手法は、固有の絵柄の描かれた複数のチップをシート上に配列させ、そのチップの配列をカメラで撮影することを前提としている。然しながら、子供たちに複数のチップをシート上に配列させると、チップの配列がシート内に納まらずに、シートからはみ出すことが多々あった。さらに、より高度なプログラムの作成となるとチップの数も増えるので、チップの配列が１枚のシートに納まらないことがある。そのため、チップの配列が長くになってもプログラミングが可能な新たな仕組みが望まれる。特許文献１には、シートが無くてもチップの配列を基にチップの画像を得る旨が記載されているが、これは未だ着想に過ぎず、具体的な実現手段まで検討が及んでいなかった。
【０００６】
例えば、特許文献１に記載のプログラミング手法において、システムはシート３０に設けた識別部３０５からプログラミングのテーマとなるカリキュラム識別情報を得ている。そのため、単にシート３０を不使用とするとカリキュラム識別情報が得られなくなり、問題が残ったままである。そこで、発明者らは如何にしてカリキュラム識別情報を得るかについても検討した。
【０００７】
本発明の目的は、チップ配列用のシートが無くても課題に対応したプログラムの作成を可能とすることにある。
さらに、本発明の目的は、簡便な手法によってプログラミングのテーマとなる課題を識別してプログラムの作成を行わせることにある。
【課題を解決するための手段】
【０００８】
本発明に係るプログラム作成支援システムの好ましい一例では、コンピュータシステムを用いてプログラムを作成するプログラム作成支援システムであって、
視認特性を有する複数のチップの配置により形成されるチップ配列に、プログラミングのための課題を示す特別チップを含んで配置されたチップ配列を撮影するカメラと、
前記課題と、該課題に使用される該複数のチップの画像とを関係付けて管理する課題管理テーブルと、
前記カメラで取得された前記チップ配列の画像から、前記チップに関する該画像を認識する画像処理部と、
該画像処理部が前記特別チップを認識した場合、該特別チップの前記課題に関連する前記課題管理テーブルを基に、該画像処理部で認識された前記複数のチップの画像に対応する命令を選択して、該選択された該複数の命令から構成されるプログラムを生成するプログラム作成処理部と、を有することを特徴とするプログラム作成支援システムとして構成される。
【０００９】
また、本発明に係るプログラム作成支援システムの好ましい一例では、コンピュータシステムを用いてプログラムを作成するプログラム作成支援システムであって、
プログラミングのための課題を与え、かつ該課題に固有の識別情報の表示を有する課題シートと、
前記シートの該表示を撮影し、及び視認特性を有する複数のチップの配置により形成されるチップ配列を撮影するカメラと、
前記課題と、該課題に使用される該複数のチップの画像とを関係付けて管理する課題管理テーブルと、
前記カメラで取得された前記チップ配列の画像から、前記チップに関する該画像を認識する画像処理部と、
前記カメラによって取得された前記表示の前記識別情報を基に前記課題に対応する前記課題管理テーブルを指定して、指定された前記課題管理テーブルを基に、該画像処理部で認識された前記複数のチップの画像に対応する命令を選択して、該選択された該複数の命令から構成されるプログラムを生成するプログラム作成処理部と、を有することを特徴とするプログラム作成支援システムとして構成される。
本発明はまた、上記プログラム作成支援システムで実現されるプログラム作成支援方法、及びプログラム作成支援用プログラムとしても構成される。
【発明の効果】
【００１０】
本発明によれば、チップ配列用のシートが無くても課題に対応したプログラムの作成が可能となる。また、簡便な手法によってプログラミングのテーマとなる課題を識別してプログラムの作成を行わせることができる。
【図面の簡単な説明】
【００１１】
【図１】実施例１によるプログラム作成支援システムの構成を示す図である。
【図２】携帯端末の構成例を示す図である。
【図３Ａ】課題シートの例を示す図である。
【図３Ｂ】課題シートの例を示す図である。
【図４】チップとその配列の例を示す図である。
【図５】スタートチップ及びエンドチップの例を示す図である。
【図６】課題の選択のためのチップ配列の他の例を示す図である。
【図７】命令テーブルの構成例を示す図である。
【図８】課題管理テーブルの構成例を示す図である。
【図９】ユーザ管理テーブルの構成例を示す図である。
【図１０】プログラム管理テーブルの構成例を示す図である。
【図１１】プログラム作成の概略的な動作を示すフローチャートである。
【図１２】プログラム作成の処理動作を示すフローチャートである。
【図１３】プログラム作成の処理動作を示すフローチャートである。
【図１４】プログラム実行システムの構成を示す図である。
【発明を実施するための形態】
【００１２】
本発明に係るプログラム作成支援システムの好ましい例は、サーバや携帯端末を含むコンピュータシステムを用いて実現される。まず、プログラム作成のための課題（カリキュラム或いは出題と言ってもよい）が記載された課題シートが用意される。課題シートには課題に固有の識別情報の表示が付与される。さらに文字や絵柄の描かれた複数のチップが用意される。複数のチップには、スタートチップと、エンドチップと、プログラムの動作等を規定する複数のチップが含まれる。好ましくは、特別チップとしてのスタートチップには課題に固有の識別情報（課題識別情報）が付与される。課題に対応してチップの画像と命令とを関係付けて管理する課題管理テーブルが用意される。
【００１３】
ユーザは、課題シートに記載された課題に従って、スタートチップを先頭にして複数のチップを並べ最後にエンドチップを並べて、チップ配列を作る。このチップ配列を携帯端末が備えるカメラで撮影する。例えば、サーバの処理装置又は携帯端末のプロセッサが、カメラで取得された複数のチップの文字や絵柄の画像を認識してプログラムを構成する命令コードを特定し、命令コードの配列からプログラムデータを作成する。特徴の１つとして、スタートチップの画像から課題識別情報を認識して、課題管理テーブルを特定し、スタートチップとエンドチップの間に配列された複数のチップの絵柄の画像を認識してプログラムを構成する命令コードを選択する。作成されたプログラムデータは携帯端末へ送信されて実行される。例えば携帯端末のプロセッサが、作成されたプログラムを実行して、その様子を表示部の画面にキャラクタの動画として表示する。
【実施例１】
【００１４】
以下、図面を参照して、本発明の一実施例について詳細に説明する。
図１は、プログラム作成支援システムの全体構成例を示す。
プログラム作成支援システムは、プログラムの作成を支援するサーバ１と、ユーザが使用する複数の携帯端末２が、通信ネットワーク９を介して接続して構成されるコンピュータシステムにおいて実現される。
【００１５】
サーバ１は、利用者の情報を管理し、携帯端末との間でデータ通信し、プログラムを作成し実行する等、の種々のデータ処理を行うコンピュータである。その機能及び処理の詳細については後述する。なお、サーバ１のハードウェア構成は図示していないが、プログラムを実行する処理装置（プロセッサ）、メモリ、ハードディスクのような外部記憶装置、入力器、表示器等のハードウェア資源を有する。
【００１６】
プログラムの作成を支援するために、サーバ１は、プログラム作成に関わるユーザやプログラムの管理情報を登録、処理する情報管理部１０２と、プログラムを作成するプログラム作成処理部１０３と、プログラムの作成に際してチップの画像を認識する画像処理部１０４を有する。また、データベース（ＤＢ）として、ユーザの情報やプログラミング学習の利用に関する種々の管理情報を登録する管理情報ＤＢ１０５と、プログラム作成に関する情報を記憶するプログラムＤＢ１０６を有する。これらの処理部及びＤＢの構成や機能については後で詳述する。なお図示の例では、管理情報ＤＢ１０５とプログラムＤＢ１０６とを別のＤＢとして構成しているが、これらは１つのＤＢで構成してもよい。
【００１７】
サーバ１はプログラム作成支援のためのサイトを有しており、携帯端末２からこのサイトに接続することで、プログラム作成の支援を受けることができる。
【００１８】
携帯端末２は、例えばスマートフォンやタブレット端末のような携帯端末である。携帯端末２のハードウェア構成については、図２を参照して後述する。
【００１９】
図２は、携帯端末２のハードウェア構成を示す。
携帯端末２は、種々のアプリケーションプログラム等を実行するプロセッサ（ＣＰＵ）２０２と、データやプログラムを格納するメモリ２０３と、画面タッチ式の入力部２０４と、画面を表示する表示部２０５と、撮影機能であるカメラ２０６と、二次元バーコードを読み取るバーコードリーダ２０７と、ネットワーク９を通してサーバ１とデータ通信を行うネットワーク接続部２０８とを有する。携帯端末はインターネットを通して多くのサイトと接続することができて、ユーザが希望するアプリケーションをＣＰＵ２０２が実行する。また、携帯端末は上記以外に例えば音声入出力機能を始め種々の機能を有している。
【００２０】
［課題シート］
図３Ａ，３Ｂは、課題シートの具体例を示す。
課題シートは、ユーザが取り組むプログラム作成のための課題（テーマ又は出題、カリキュラムということもある）が記載された用紙である。課題が異なる度に別の課題シートが配布される。
【００２１】
図示のように、課題シート３０には主に、課題文３０１と、説明絵図３０３が記載されている。本例では、課題に応じて必要なマップの絵図３０３１が描かれている。
【００２２】
課題（又は課題シート）を管理するために、「０１」や「０２」のような課題表示部３０２が設けられている。課題表示部３０１には、課題ごとに異なる固有の識別情報、例えば課題番号が表示されている。図示の、課題０１は「がっこうへいこう」、課題０２は「がつこうにくるまでおむかえにいこう」、のように、課題に応じてプログラムの内容が異なり、絵図３０３も相違する。
【００２３】
例えば学校のクラス或いは塾では、先生（ユーザ）が、課題が変わる度にその課題に対応した課題シート３０を生徒に配布する。そして、ユーザは課題シート３０を使用するとき（例えばＳ１２０４のとき）に、携帯端末２のカメラ２０６を用いて課題シート３０の課題番号３０１を撮影する。これにより、課題シート３０と課題管理テーブル８０に登録された課題番号と対応付けられる。
【００２４】
なお、課題シートはユーザに１枚ずつ配布しないで、複数ページに亘る課題シート３０を含む冊子をユーザに有償又は無償で提供するようにしてもよい。この場合、課題表示部３０２には、課題識別情報の他に、プログラム作成サービスを行うサーバ１のサイト情報を含ませてもよい。ユーザは、携帯端末２のカメラ２０６で、課題シート３０の課題表示部３０２を読ませて、その読取り情報を基にプログラム作成サービスのサイトへアクセスして、当該課題シート３０に対応する課題管理テーブル８０（図８参照）に登録された情報を取得して、プログラム作成のサービスを受けることができる。
【００２５】
本実施例のように、恰もテスト問題を解くように、プログラム作成の課題が変わる度に課題シートを変える方が実情に即している。因みに、特許文献１に記載のように、チップを並べるシートにカリキュラムを識別する識別部３０５を設けているが、この従来の手法では、カリキュラムが変わる度にシートを変える必要があり、面倒である。本実施例によれば、チップを並べるシートを不要としたのでその手間が省ける。加えて、出題の度に、携帯端末２のカメラを用いて課題シートの課題番号を取得して、課題管理テーブルを用いて出題の課題と命令を容易に関係付けることができる。
【００２６】
［チップ］
図４及び図５は、プログラムの作成に用いられるチップの例を示す。
図４はチップの配列した状態を示し、図５はスタートチップとエンドチップを示す。
チップは、プログラムの命令と関連付ける表示子である。例えば、命令の動作を文字又は絵柄（以下単に絵柄という）で表示（印刷）した、縦２ｃｍ×横５ｃｍほどのプラスチック製矩形片である。それぞれの絵柄は命令ごとに相違する。チップ４０の絵柄の原情報は画像としてプログラムＤＢ１０６に記憶されている。
【００２７】
複数のチップは、主に、スタートチップ４０１と、エンドチップ４０２と、通常の動作を表す複数のチップ４０３１〜４０３６（総じて４０３と示す）を含んで構成される。スタートチップ４０１は、複数のチップの配列（チップ配列）の先頭に配置されるもの、エンドチップ４０２はチップ配列の最後に配置されるものである。チップ４０３は通常の動作を示す絵柄が表示されている（その意味でここでは通常チップという）。通常チップ４０３として、例えば、チップ４０３１は右へ動く、チップ４０３２、４０３３は左へ動く、チップ４０３４，４０３６は下へ動く、チップ４０３５は上へ動く、である。この他の通常チップ４０３としては特許文献１の図４や図５に示されたものを想定してよい。
【００２８】
携帯端末２のカメラ２０６で撮影されたチップ配列の画像からプログラム命令を特定する処理において、サーバ１の画像処理部１０４は、スタートチップ４０１の画像を認識して、以後通常チップ４０３を順次認識して、プログラム作成処理部１０３が命令に変換する。そして、画像処理部１０４がエンドチップ４０２を認識すると、プログラム作成処理部１０３はその段階で命令の変換を終了する。そのため、例えば、エンドチップ４０２よりも後方に配列された通常チップ４０３６の命令変換は行われないことになる。そのため、チップの配列のルールは、ユーザに事前に教示しておくことが必要である。
【００２９】
本実施例における特徴の１つとして、図５に示すように、スタートチップ４０１には、ＰＢＣ００１やＰＢＣ００２のような、課題番号４０１１、４０１２が印刷して表示されている。この課題番号４０１１、４０１２は、課題シート３０の課題表示部３０２にある課題番号と関連付けられ、さらに課題番号と対応する課題管理テーブル８００（図８を参照して後述）と関連付けられる。プログラム作成処理部１０３は、課題管理テーブル８００に登録された画像と命令との関係を参照して、スタートチップ４０１とエンドチップ４０２の間に配列された複数の通常チップ４０３の絵柄の画像を基に、プログラムを構成する命令コードを特定することができる。
【００３０】
［プログラム命令および命令テーブル］
プログラム命令としては、図４に例示するように、スタートチップ４０１が示す「スタート」、エンドチップ４０２が示す「終了」、通常チップ４０３が示すような、「右へ動く」、「左へ動く」、「下へ動く」、「上へ動く」、等がある。例えば、図７に示す命令リストのように、命令テーブル（符号５０で示す）は、表示・動きを表す９つの命令（動作命令）と、制御文を表す２つの命令（制御命令）と、入出力を表す４つの命令（入出力命令）と、パラメータ即ち１から９までの数値を表す命令（パラメータ）と、その他の４つの命令から構成される。
【００３１】
各チップと命令は一意に対応しており、チップの絵柄（即ち絵柄の画像）と、命令の名称、命令動作、パラメータの関係は、対応表である命令テーブル５０に定義されてプログラムＤＢ１０６に記憶されている。ここで、プログラムＤＢ１０６に保管される命令テーブル５０には、絵柄の画像に対応した固有のコードデータ（命令コード）が含まれる。本実施例では、課題シート３０から取得された課題番号に応じて課題管理テーブル８００を通して、最終的には命令テーブル５０が参照されて、複数の命令（命令セットという）が選択される。
【００３２】
なお、新たなチップの絵柄や新たな命令を規定した場合や、既定の絵柄を削除又は変更したい場合には、命令テーブル５０の内容を変更することができる。それは、サーバ１が有する入力器（図示せず）又は携帯端末２からの管理者の入力指示によって、命令テーブル５０におけるチップの絵柄と命令との対応関係を変更することができる。
【００３３】
次に、図８乃至図１０を参照して、プログラム作成支援のために使用される各種の管理テーブルの構成について説明する。各管理テーブル８０〜１００は、管理情報ＤＢ１０５に記憶される。
【００３４】
［課題管理テーブル８０］
図８は、課題管理テーブルの構成例を示す。
課題管理テーブル８０は、ユーザが行うプログラミングの課題と、課題に使用される命令を関連つけるテーブルである。課題管理テーブル８０によって、課題シート３０の課題番号と、課題シート３０に記載された具体的な出題内容と、スタートチップ４０１に付与された課題番号４０１１とが関係付けられ、最終的には当該課題で使用される複数のチップの画像と命令とが対応付けられる。課題管理テーブル８０は課題ごと即ち課題番号ごとに構築されるので、異なる複数の課題があれば、異なる複数の課題管理テーブル８０が作成される。
【００３５】
図８に示すように、課題管理テーブル８０は、課題に固有な識別情報としての課題番号と、当該課題で使用されるアプリケーションの実行条件と、当該アプリケーションにおいて使用されるキャラクタを表すキャラクタセットと、命令テーブル５０から選択された、当該課題で使用される全ての命令の参照番号（命令テーブル５０の命令を参照する番号）とを登録する。ここで、アプリケーションの実行条件とは、例えば当該課題において使用されるプログラムを読み出すためのアドレス（例えばＵＲＬ）やそのプログラムで使用されるキャラクタの動作条件等である。キャラクタとは、プログラムの実行において動画として使用される登場者であり例えばウサギや亀の画像、有名なアニメの画像である。
【００３６】
ここで、当該課題で使用される全ての命令の参照番号を命令セットに登録する理由はプログラム作成処理を速くするためである。即ち、プログラム作成処理に際して、命令テーブル５０を参照しながらチップ配列の画像から個々のチップの画像を認識する処理を行うが、このときに命令テーブル５０に登録された全てのチップ画像をスキャンすると多大な時間がかかる。これに対して、命令セットに登録された参照番号に対応する命令を対象にスキャンすれば、画像の認識にかかる時間は大幅に短くなる。
【００３７】
［ユーザ管理テーブル９０］
図９は、ユーザ管理テーブルの構成例を示す。
ユーザ管理テーブル９０は、プログラムを作成するユーザの情報を管理するテーブルである。ユーザ管理テーブル９０は、ユーザ識別情報であるユーザ識別ＩＤと、ユーザの名前と、プログラムデータを記憶しているアドレスを示すプログラムデータ格納先アドレスと、課題識別情報として、ユーザによって使用される課題シート３０から取得された課題番号と、更新日時と、個人情報としてユーザが所有する携帯端末のメールアドレス等、を登録する。課題識別情報には、過去に利用した課題番号がログとして逐次登録されていく。この例では、プログラムデータ格納先アドレスは、作成されたプログラムデータを管理するプログラム管理テーブル１００が指定するプログラムデータ格納先アドレスを表す。
なお、学校の授業や塾等の団体でプログラム学習をする場合には、先生が所持する携帯端末２を用いてサーバ１とデータ通信するので、先生が一人のユーザとなってこのユーザ管理テーブルに登録してもよい。
【００３８】
［プログラム管理テーブル１００］
図１０は、プログラム管理テーブルの構成例を示す。
プログラム管理テーブル１００は、作成されたプログラムに関する情報を管理するテーブルである。プログラム管理テーブル１００は、プログラムを作成したユーザのユーザ識別ＩＤと、課題番号と、作成されたプログラムデータと、プログラムデータ格納先アドレスと、プログラムの登録日時と、その修正日時と、を登録する。プログラムデータとは、作成されたプログラムそのものであり、複数行のプログラムステップの場合その行数分のデータが登録される。
【００３９】
［プログラム作成の概略動作］
次に、図１１を参照して、プログラム作成の概略的な動作について説明する。
この例は、携帯端末２を所持しているユーザが、プログラムミングを行う場合のフローを示している。図中、実線で示すステップは携帯端末又はサーバによる処理動作を表し、点線で示すステップはユーザの動作を表す。
【００４０】
まず、ユーザは携帯端末２を操作してアカウントとパスワードを入力してログインを行う（Ｓ１２０１）。そして、携帯端末２はネットワーク９を介してサーバ１と接続され、本件のプログラム作成のサイトに接続される。ユーザはまた、課題シート３０及びチップ４０のセットを準備する（Ｓ１２０２）。なお、Ｓ１２０１とＳ１２０２の順序は逆でもよい。
【００４１】
次に、ユーザが、携帯端末２のカメラ２０６を操作して課題シート３０の課題表示部３０２を撮影すると、携帯端末２のＣＰＵ２０２は課題表示部３０２の画像を認識して、課題番号を取得してそれをメモリ２０３に格納する（Ｓ１２０３）。取得された課題番号に関わる処理については後述する。
【００４２】
なお、塾等において複数の生徒にそれぞれ異なる課題を与える場合がある。この場合、先生は、複数の異なる課題シート３０を生徒に配布する際に、複数の各課題シート３０の課題表示部３０２をカメラで撮影することになり、携帯端末２のＣＰＵ２０２は複数の課題番号を取得する。
【００４３】
その後、ユーザはプログラミング、即ち課題シート３０の説明文に従ってチップ４０を配列する作業を行う（Ｓ１２１１）。この場合、ユーザは、スタートチップ４０１を先頭にして複数の通常チップ４０３を並べ、最後にエンドチップ４０２を配置する。なお、本実施例では、特許文献１に記載のようにチップ配列用のシートを使用しないので、チップ４０の配列が例えば図４のように、上から下へ一直線に成らずに、左右にずれて配列されることがある。この場合でも、画像処理部１０４はスタートチップ４０１からエンドチップ４０２の間に配列された複数のチップの画像を認識するので、左右方向の多少のずれは問題無い。
【００４４】
チップ４０の配列作業が終了すると、ユーザは、携帯端末２のカメラ２０６でチップ４０の配列を撮影する。すると、ＣＰＵ２０２は撮影されたチップ配列の画像を取得してサーバ１へ送信する（Ｓ１２０５）。
サーバ１では、受信した画像を基にプログラム作成処理を行う（Ｓ１２０６）。この処理については後で詳述する。サーバ１で作成されたプログラムは携帯端末２で実行される（Ｓ１２０７）。
【００４５】
なお、課題番号は、Ｓ１２０３のように携帯端末２のカメラ２０６を用いて課題シート３０の課題表示部３０２から取得する以外に、携帯端末２の入力部２０４から課題番号を手入力することができる。例えば、携帯端末２がサイトに接続された後に、ユーザが課題シート３０の課題表示部３０２に表示された課題番号を目視して、携帯端末２の入力部２０４から課題番号を手入力してもよい。
【００４６】
ここで、本実施例において、チップ配列用のシート（特許文献１に記載）を不要としたことによる作用効果について述べておきたい。カメラでの撮影（Ｓ１２０５）に関して、特許文献１に記載のプログラム作成では、シート上に並べられたチップ配列の画像は、カメラでシートごと一回の撮影で取得した。これに対して、本実施例では特許文献１に記載のチップ配列用のシートを不要としたので、チップ配列がシートに拘束されない。複雑なプログラムの作成ではチップ配列が長くなるが、一方でチップ配列が長くなると、カメラの一回の撮影ではチップ配列の画像を取得できない可能性がある。そこで、本実施例では、チップ配列に沿って（スタートチップからエンドチップの方向へ）端末装置２のカメラ２０６をスライドさせながら撮影していくことで対応可能である。例えばタブレット端末のカメラを使用すると、撮影されたチップ配列の画像が順次、タブレット端末の画面に表示されていく。また、画像処理部１０４による画像認識（チップごとの画像認識）の結果も次々に画面に表示させることができる。
【００４７】
［プログラム作成処理］
次に、図１２及び図１３を参照して、プログラムの作成処理について説明する。
図１２は、プログラムの作成処理の全体のフローチャートを示す。
この処理に先立って、ユーザの携帯端末２からサーバ１が運営するサイトをアクセスして、ユーザ管理テーブル９０にはユーザの名前等を含む個人情報が登録されている。また、図１１の課題番号の取得（Ｓ１２０３）により取得された課題番号は、ネットワーク接続部２０８を介して携帯端末２からサーバ１へ送信される。サーバ１では、情報管理部１０２が、当該課題番号に対応する課題管理テーブル８０をスタンバイ状態（例えばアクティブフラグ（不図示）をＯＮ）にする。併せて、情報管理部１０２は、携帯端末２から通知された当該課題番号をユーザ管理テーブル９０に登録する。
【００４８】
さて、ユーザは、課題シート３０の課題文３０１と説明絵図３０３に従って、机上にチップの配列を完了したとする。
ユーザは、携帯端末２を操作してログインを行う（Ｓ１３０１）。この場合、サーバ１の情報管理部１０２は、ユーザ管理テーブル９０を参照して、もし課題番号が登録されていない場合には、携帯端末１の表示部に、課題番号の入力を促す画面を表示する。この場合ユーザはステップＳ１２０３と同様に課題番号を撮影する（Ｓ１２０３´）。なお、ステップＳ１３０１の処理に先立って、ログイン動作（ステップ１２０１）が完了している場合にはこのステップＳ１３０１は省略できる。
【００４９】
ログイン動作の後、サーバ１の情報管理部１０２は、プログラム作成のためのアプリケーションプログラムを起動する（Ｓ１３０２）。アプリケーションプログラムが起動されると、携帯端末２のカメラ２０６により課題シート３０から取得された課題番号に対応する課題管理テーブル８０が選択される。
【００５０】
上記のようにチップ４０の配列が終了すると、ユーザは、携帯端末２のカメラ２０６を用いてチップ配列を撮影する。撮影された画像（チップ配列画像）は一時、メモリ２０３に格納され、サーバ１へ送信される（Ｓ１３０３）。サーバへ送信されるチップ配列の画像にはユーザ識別ＩＤが付与される。
【００５１】
サーバ１がチップ配列画像を受信すると、情報管理部１０２は、送信元のアドレスがユーザ管理テーブル９０に登録されたメールアドレスかを確認する。さらに、受信したチップ配列画像に付与されたユーザ識別ＩＤがユーザ管理テーブル９０に登録されたものかを確認する。この確認の結果正しければ、画像処理及びプログラム作成処理に移る。
【００５２】
プログラム作成処理に際して、まず画像処理部１０４が、取得したチップ配列画像からチップの有する絵柄の画像を認識する処理を行う（Ｓ１３０４）。その後、プログラム作成処理部１０３が、認識結果に基づいてプログラムの生成処理を行う（Ｓ１３０５）。これらの処理については、図１３を参照して後述する。
【００５３】
プログラム作成処理部１０３で作成されたプログラムデータは、情報管理部１０２の処理に従って、プログラム管理テーブル１００に格納される。即ち、プログラム管理テーブル１００において、「ユーザ識別情報」には当該プログラムを作成したユーザ識別ＩＤが、「課題識別情報」には当該プログラミングに関わる課題番号が、「プログラム」には作成されたプログラムデータが、「プログラムの登録日時」にはプログラムを格納した日時が、それぞれ登録される。
【００５４】
その後、プログラム管理テーブル１００に登録されたプログラムを実行することができる（Ｓ１３０７）。一例では、プログラムの実行はその前段にプログラムのテスト及びその確認の処理を含んでいる。それは、チップ４０の配列において、制御文のチップやパラメータのチップが所定の規則に従って配列されていないとか、「ＥＮＤ」が無い等の場合があり、これらはプログラムの実行上エラーとしなければならないからである。テスト及び確認の処理においてそのようなエラーが発見されると、プログラムデータの修正作業に移る。
【００５５】
すなわち、プログラムのテスト及び確認のために、プログラム管理テーブル１００に格納されたプログラムデータはネットワーク９を介して、送信元の携帯端末２へ送信され、ＣＰＵ２０２で実行される。ＣＰＵ２０２によるプログラムの実行は、例えば課題管理テーブル８０に登録されたキャラクタの動画として、表示部２０５に表示される。ユーザは、表示部２０５に表示される動画を見て、最初に選択した「課題」とカメラで取得されたチップ配列画像におけるチップ配列を基に、表示された動画が正しいかを判断する。その結果、正しくないと判断した場合には、プログラムの修正に移る。この場合、入力部２０４よりプログラムの修正を指示すると、その指示はサーバ１へ送信されて、プログラム管理テーブル１００に修正中のフラグ（図示せず）が記憶される。ユーザによるプログラミングの修正が終わると、上述した動作と同様にして、修正されたチップ配列画像がサーバ１へ送信される。この場合、同様にして、プログラム管理テーブル１００に修正された（修正版）プログラムデータが格納される。併せてプログラム管理テーブル１００の修正日時が登録される。
【００５６】
修正版プログラムは、上記と同様にして携帯端末２で実行される。その結果、エラーが無ければ、その旨がサーバ１へ送信されて、プログラム完成を示すフラグ（図示せず）がプログラム管理テーブル１００に登録される。
なお、完成後のプログラムの実行の例については、図１４を参照して後述する。
【００５７】
次に、図１３のフローチャートを参照して、画像処理（Ｓ１３０４）及びプログラム作成処理（Ｓ１３０５）について詳細に説明する。
画像処理（Ｓ１３０４）は、チップ配列画像から、個々のチップ４０に描かれた絵柄の画像を認識して切り出す処理である。カメラ２０６で撮影された画像が傾いていることがあるので、まず、画像補正（Ｓ１４０１）の処理において、チップ配列の画像の傾きを補正する。
【００５８】
次に、画像パターマッチング（Ｓ１４０２）において、命令テーブル５０を参照しながら、チップ配列を構成する各チップ４０の絵柄の画像が、命令テーブル５０に登録された絵柄の画像と一致するかを判断する。この処理により、命令テーブル５０に登録された絵柄の画像に対応する命令コードが選択される。本実施例で特徴的なことは、画像処理部１０４が、チップ配列の画像に含まれるスタートチップ４０１の画像を認識すると、まずスタートチップ４０１の課題番号４０１１を基に、情報管理部１０２（処理手段）が課題番号４０１１に対応する課題管理テーブル８００を指定する。さらに画像処理部１０４が、スタートチップ４０１の後に配置された複数の通常チップ４０３の画像を順次認識して行き、エンドチップ４０２の画像を認識するまで通常チップの認識動作を続ける。すなわち、スタートチップ４０１とエンドチップ４０３の間に配置された通常チップ４０３の画像のパターンマッチングを行う。
【００５９】
画像パターンマッチングにより、取得されたチップの画像について命令テーブル５０から命令コードが順次選択される。本実施例では、命令テーブル５０に登録された全ての画像と比較することは行わず、課題管理テーブル８０に当初登録された命令参照番号に対応するチップ画像のみを対象として比較することで、処理時間の高速化を図っている。画像パターンマッチングの結果出力される命令コードには、当該画像が認識された場所の座標情報が付加される。
【００６０】
プログラム作成処理（Ｓ１３０４）おいては、上記画像処理により特定された絵柄の画像に対応する命令コードを整列させる（Ｓ１４０３）。命令コードを整列する理由は、パターンマッチングで認識された絵柄の画像は命令コードには変換されたが、その配列は未だチップ４０が配列された状態のままであるため、命令コードを並び直して整列させるためである。この整列は、命令コードに付加された座標情報を基に例えばＹ座標を基準として揃える。さらにプログラムの生成に際して、命令テーブル５０を参照して命令コードの並び方が正しいかを確認する。例えば、上記画像処理の結果、「動く」の命令コードの右隣りにパラメータ「回数」の命令コードが並ぶ場合は正しいが、「拾う」や「置く」の命令コードの右隣りにパラメータ「回数」が並ぶ場合は、命令テーブル５０で許可していないので正しくないと判断する。並び方が正しくない場合、一例ではそのパラメータを無視する。また、命令コードに対するパラメータの並び方が正しい場合であっても、パラメータの命令コードが許容範囲を超えて右側にずれている場合には、その命令コードを左側に移動させて、例えば「動く」命令コードの右隣りに整列させる。
【００６１】
命令コードの整列及び確認が終了すると、整列された命令コードの順にプログラムコード化してプログラムデータを生成する（Ｓ１４０４）。作成されたプログラムのデータは、プログラム管理テーブル１００の「プログラム」エリアに格納される。プログラム管理テーブル１００には、ユーザ識別ＩＤ、課題番号、プログラム登録日時も併せて登録される。
上記の処理動作により複数のチップ４０の配列に基づくプログラムが作成される。
【００６２】
［プログラムの実行］
実施例１では、作成されたプログラムは、先生が所持する携帯端末２のＣＰＵ２０２で実行される。プログラムの実行は、キャラクタの動作を伴う動画として表示部２０５の画面に表示される、とした。しかし、これに限らず、プログラムは種々の機器で実行される。
【００６３】
図１４は、プログラム作成支援システムに接続されるプログラム実行システムの構成を示す。プログラム作成支援システムを形成するサーバ１には、ネットワーク９を介して、スクリーンに動画や映像を投影するプロジェクタや大型表示装置１５１、音響機器１５２、ロボットやミニカー等の動作機器１５３、等のプログラム実行機器（以下単に実行機器という）が接続される。
【００６４】
プログラムが実行される実行機器は１つの限らず、複数の機器で可能である。例えば、命令テーブルの入出力命令の中から「音を鳴らす」が用いられる場合、表示装置１５１にキャラクタの動作が表示され、さらに音響機器１５２から音声が発生される。
【００６５】
実行機器はインターネットに接続可能な、ＩＰアドレスを有する全ての機器が対象となり得る。実行機器の管理は、サーバ１の管理情報ＤＢ１０５に、接続可能な機器のＩＰアドレス又はＵＲＬを登録する実行機器管理テーブルを用意しておき、実行機器管理テーブルを参照して出力先の実行機器を選択することで、プログラムが実行される機器への接続が可能である。実行機器の選択は、予め決めておいてもよいし、プログラムの完成した後にユーザが所持する携帯端末２又は他の携帯端末から選択することができる。
【００６６】
［課題を変更する例］
本実施例によれば、スタートチップ４０１を変えるだけで課題の変更が可能である。
例えば、課題シートが、課題０１（図３Ａ）から課題０２（図３Ｂ）に変わった場合でも、通常チップ４０３の配列を変えないで、スタートチップ４０１を図５（Ａ）から（Ｂ）へ変えるだけで済む。
【００６７】
図３Ａに示す、課題シート３０は、課題１の「がっこうへいこう」は、「Ａくんを徒歩で学校に連れて行く」動作をプログラミングするケースである。一方、図３Ｂに示す、課題シート３０は、課題２の「がつこうにくるまでおむかえにいこう」は、「学校に車で行って帰る」動作をプログラミングするケースである。いずれのケースも、学校までの行き来の道は変わらないので、通常チップ４０３による配列は変わらないことになる。
【実施例２】
【００６８】
次に、実施例１に対する、変形例ないし代替例について幾つか説明する。
【００６９】
［課題管理テーブルの指定の他の例］
実施例１では、課題管理テーブルと関連付けるために、課題番号を２回取得している。最初は、携帯端末２のカメラ２０６が課題シート３０の課題表示部３０２を撮影することで、課題番号を取得する（Ｓ１２０３）。２回目は、携帯端末２のカメラ２０６がチップ配列を撮影して、そのチップ配列の画像から、画像処理部１０４がチップ配列の画像に含まれるスタートチップ４０１の画像を認識する段階で、スタートチップ４０１に含まれる課題番号を取得している（Ｓ１３０３）。
【００７０】
他の例によれば、課題番号の取得は何れか１回でよい。例えば、課題シート３０の課題表示部３０２から課題番号を取得すれば、課題番号の表示の付いたスタートチップは不要となり、通常の単なるスタートチップでよい。一方、課題番号の表示の付いたスタートチップを用いれば、課題シート３０から課題番号を取得することは不要となる。
【００７１】
［課題管理テーブルの他の例］
実施例１では、課題管理テーブル８０には当該課題番号で使用される全ての命令の参照番号（図５の命令テーブル５０から選択された命令の参照番号）が登録されるとした。他の例においては、ある課題番号で使用される、命令テーブル５０から選択された命令の、チップの画像、名称、動作、パラメータ、及び命令コードの各データ（即ち命令テーブル５０の内容）を、当該課題番号に対応する課題管理テーブルに登録するようにしてもよい。
【００７２】
［プログラム作成支援システムの他の例］
実施例１によるプログラム作成支援システムは、プログラム作成処理部１０３、画像処理部１０４、及び関連するテーブルや情報を記憶する管理情報ＤＢ１０５、プログラムＤＢ１０６を全てサーバ１が有する。一方、実施例２によるプログラム作成支援システムは、これらの処理機能やＤＢの全部又は一部を携帯端末２に持たせることができる。
【００７３】
例えば、全ての処理機能及び関連するテーブルや情報を携帯端末２に持たせる場合、最初にプログラミング作成のサービスを行うサイト（例えばサーバ１が運営するサイト）にアクセスして、関係するアプリケーション（プログラム作成機能や関連する管理情報）をダウンロードして、携帯端末２に保持させる。あとは、上記実施例と同様にしてプログラムを作成することができる。図１１乃至図１３に示す処理は、携帯端末２が有するＣＰＵ２０２においてプログラムで実行される。例えば、複数の課題管理テーブル８００が携帯端末２のメモリ２０３に保持されることがあり、ＣＰＵ２０２の処理によって実現される、前記画像処理部がチップ配列の画像に含まれるスタートチップ４０１の画像から課題番号４０１１を認識すると、ＣＰＵ２０２が課題管理テーブル８００を指定することになる。
【００７４】
また、一部の処理機能やＤＢを携帯端末２に持たせる例として、例えば、サーバ１には命令テーブル５０を保持させて、携帯端末２には課題管理テーブル８０や画像処理機能やプログラム作成機能を持たせることができる。この場合、課題シート３０の課題番号に対応して用いられる命令とチップ画像の組は、命令テーブル５０から取得して課題管理テーブル８０に登録してメモリ２０３に記憶しておく。異なる複数の課題シート３０（異なる複数の課題番号）が使用される場合には、携帯端末２のメモリ２０３には課題番号に対応する複数の課題管理テーブルが用意されることになる。
【００７５】
プログラム作成機能は、課題番号に対応する課題管理テーブル８０を参照して、チップの画像に対応する命令を特定する処理を行うことができる。通常、サーバ１には、多くのユーザの携帯端末２が接続可能である。そこで、命令テーブル５０には全ての命令と画像の対を母集団として管理しておき、ユーザの携帯端末２から要求により指定された課題番号に応じて、命令テーブル５０から選択された命令と画像の組やアプリケーションの実行アドレス等を含む課題管理テーブル８０を携帯端末２へ提供するのは有意義である。
【００７６】
［課題シートの他の例］
実施例１では、課題シート３０は用紙で用意される。代替例によれば、課題シート３０−は用紙で用意せずに、例えば携帯端末２の表示部２０５に画面表示することで提供できる。
【００７７】
［スタートチップ及びエンドチップの他の例］
スタートチップ４０１及びエンドチップ４０２の文字や絵柄は、図５に示したものに限定されない。例えば、スタートチップ４０１に、「スタート」の文字の代わりに数字「０」を表示し、エンドチップ４０２に「おわり」の文字の代わりに数字「１００」を表示してもよい。要するに、チップの配列の始めと終わりを規定する文字や絵柄を予め取決めしておければよい。
また、課題番号は「番号」に限らず、符号や記号、絵図等の表示でもよい。何れにしても、課題に対応付けられた特有の表示が付与されればよい。
【００７８】
［課題識別用チップの他の例］
実施例１では、課題ごとに固有の課題識別用の特別チップとして、スタートチップ４０１に課題ごとに異なる課題番号４０１１、４０１２を表示した。代替例によれば、スタートチップ４０１’に課題番号を表示しないで、別の表現形式で課題の識別に対応することができる。例えば、図６（ａ）に示すように、スタートチップ４０１’の隣に２枚の数字チップ４０１１’を並べることで、課題番号を表現することができる。図示の例では、数字「０」「１」の配列（数字チップの配列）によって課題番号「０１」を表す。数字チップの配列が変わると別の課題番号になる。この場合、数字チップの配列を特別チップとなる。
【００７９】
また、（ｂ）に示すように、数字チップを使用しないで、キャラクタが表示されたチップ４０１２’を特別チップとして用いて課題の識別を表現することができる。この場合、課題が変わると、キャラクタ表示が変わった別の特別チップとなる。
【００８０】
さらに他の例として、図示していないが、特別チップ４０１１’、４０１２’は、図６（ａ）（ｂ）のように、スタートチップの右隣り（所定の位置）に配置せずに、スタートチップの後（チップ配列方向に対して）に配置されてもよい。さらに他の変形例として、特別チップはエンドチップ４０２の前に配置してもよい。さらに、図６（ｂ）のような特別チップは、スタートチップとエンドチップ間の任意に位置に配置されてもよい。何れの場合も、特別チップの画像及びチップ配列における特別チップの配置される位置を予め規定しておくことで実現できる。
【００８１】
実施例１では、スタートチップ４０１に課題番号を付与しているので、課題が変わる度にスタートチップを変更する必要がある。これに対して、図６に示した例では、課題が変わってもスタートチップ４０１’を変更する必要がなく、課題識別チップ４０１１’、 ４０１２’を変更することで容易に対応できる。
【００８２】
［チップの他の例］
チップ４０の他の例として、チップ４０に施した絵柄や形状、大きさは、図４、図５、図７に示したものに限定されない。絵柄に関して言えば、図４に示したような抽象的な絵や文字に限らず、例えば、ウサギが走ったり、回転したり、物を拾うような具体的な動作の絵でもよい。その方が小学生にとっては絵と命令の意味との関係が理解し易いであろう。他の例としてトランプやカルタでもよい。また、チップの形状は四辺形に限らず、種々の形状であってよい。例えばウサギが走ったり、寝たり、飛んだりする絵を切り抜いた形状でもよい。
【００８３】
また、チップ４０の呼び名に関して実施例１ではチップ４０と言ったが、これに限らない。例えば、カード、パーツ（part）、ピース（piece）、小片、紙片、エレメント（element）、総称して部品とか物品と呼んでもよい。
チップは、配列や後片づけ、収納を考えると平面状カードが好ましいが、必ずしも平面状部材に限らない。要は、配列することができる物品であって、物品が持つ絵柄や形状の特性（視認特性という）と命令とが対応付けられるものであれば実現可能である。なお、視認特性を有する物品を、固有の表示を有する部品と呼んでもよいであろう。
【００８４】
また、上記実施例ではチップ４０の絵柄を画像認識することで命令と関係つけているが、これに限定されない。例えば、各チップ４０に絵柄に加えて固有の数字やバーコードを付しておき、その数字やバーコードを認識することで、命令と対応付けすることも可能である。その場合、命令テーブルには数字又はバーコードと命令との関係が登録されることになる。
【００８５】
［その他の例］
上記実施例では、携帯端末２が有するカメラ２０６によって、課題シート３０の課題表示部３０２に表示された課題番号を取得するとした。代案では、課題表示部３０２を二次元バーコードで形成して、課題シート３０の例えば右角に表示しておき、携帯端末２のバーコードリーダ２０７でこの課題表示部を読み取ることで、課題番号を取得してもよい。
【００８６】
また、上記実施例では、携帯端末２が持つカメラ２０６でチップ配列を撮影するとした。代替例によれば、携帯端末のカメラに限らず、通信機能を有するカメラや、或いは通常のデジタルカメラで撮影したチップ配列の画像をＵＳＢメモリやＳＤメモリに格納しておき、このメモリをプログラム作成用のサーバや端末に装填することでチップ配列の画像を取得することも可能である。
本発明は上記実施例ないし代替例以外にも、種々変形、応用して実施することができる。
【符号の説明】
【００８７】
１：サーバ              ２：携帯端末                ９：ネットワーク
１０２：情報管理部      １０３：プログラム作成処理部
１０４：画像処理部      １０５：管理情報ＤＢ        １０６：プログラムＤＢ
２０２：ＣＰＵ          ２０３：メモリ              ２０４：入力部
２０５：表示部          ２０６：カメラ              ２０７：バーコードリーダ
２０８：ネットワーク接続部
３０：課題シート        ３０２：課題表示部
４０：チップ            ４０１：スタートチップ
４０２：エンドチップ    ４０１１，４０１２：課題番号  ５０：命令テーブル
８０：課題管理テーブル              ９０：ユーザ管理テーブル
１００：プログラム管理テーブル
【図１】
2019174524.tif 000003
【図２】
2019174524.tif 000004
【図３Ａ】
2019174524.tif 000005
【図３Ｂ】
2019174524.tif 000006
【図４】
2019174524.tif 000007
【図５】
2019174524.tif 000008
【図６】
2019174524.tif 000009
【図７】
2019174524.tif 000010
【図８】
2019174524.tif 000011
【図９】
2019174524.tif 000012
【図１０】
2019174524.tif 000013
【図１１】
2019174524.tif 000014
【図１２】
2019174524.tif 000015
【図１３】
2019174524.tif 000016
【図１４】
2019174524.tif 000017
【手続補正書】
【提出日】平成31年2月22日(2019.2.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータシステムを用いてプログラムを作成するプログラム作成支援システムであって、
視認特性を有する複数のチップの配置により形成されるチップ配列であって、該チップ配列は、プログラミングの課題に固有の識別情報の表示を有し前記チップ配列の先頭に配置されるスタートチップと、該スタートチップの後に配置される前記複数のチップと、該チップ配列の最後に配置されるエンドチップとを有して形成され、
前記複数のチップが有する視認特性の画像に対応するプログラムの命令を管理する命令テーブルと、
前記課題と、該課題に使用される前記命令を関係付ける課題管理テーブルと、
前記チップ配列を撮影するカメラと、
前記カメラで取得された前記チップ配列の画像から、前記各チップが有する該画像を認識する画像処理部と、
該画像処理部が前記スタートチップを認識した場合、該スタートチップが有する前記識別情報に関連する前記課題管理テーブルを基に、該画像処理部で認識された、前記スタートチップと前記エンドチップの間に配置された、前記複数のチップの画像に対応する命令を前記命令テーブルから選択して、選択された該複数の命令から構成されるプログラムを生成するプログラム作成処理部と、
を有することを特徴とするプログラム作成支援システム。
【請求項２】
コンピュータシステムを用いてプログラムを作成するプログラム作成支援システムであって、
プログラミングのための課題に対応する識別情報と、課題文と、説明絵図を有する課題シートが用意され、
前記課題シートが有する前記課題文または前記説明絵図に従って、ユーザにより配置される、視認特性を有する複数のチップにより形成されるチップ配列であって、該チップ配列は、前記チップ配列の先頭に配置されるスタートチップと、該スタートチップの後に配置される前記複数のチップと、該チップ配列の最後に配置されるエンドチップとを有して形成され、
前記複数のチップが有する視認特性の画像に対応するプログラムの命令を管理する命令テーブルと、
前記課題と、該課題に使用される前記命令を関連付ける課題管理テーブルと、
前記チップ配列を撮影するカメラと、
前記カメラで取得された前記チップ配列の画像から、前記各チップが有する該画像を認識する画像処理部と、
前記課題シートが有する前記識別情報に関連する前記課題管理テーブルを基に、該画像処理部により認識された前記スタートチップと前記エンドチップの間に配置された、前記複数のチップの画像に対応する命令を前記命令テーブルから選択して、選択された該複数の命令から構成されるプログラムを生成するプログラム作成処理部と、
を有することを特徴とするプログラム作成支援システム。
【請求項３】
異なる複数の前記課題に対応して複数の前記課題シートが用意され、
異なる複数の前記課題に対応して複数の前記課題管理テーブルを有する、
請求項２のプログラム作成支援システム。
【請求項４】
前記コンピュータシステムは、サーバと、該サーバにネットワークを介して接続される端末を含み、
前記サーバは、異なる複数の課題ごとに複数の前記課題管理テーブルを記憶する記憶部と、プログラムの実行により前記画像処理部と、前記プログラム作成処理部を実現する処理装置と有し、
前記端末は、前記カメラと、入力部と、表示部と、プログラムを実行するプロセッサと、メモリと、を有し、該メモリは前記複数の課題管理テーブルから選択された少なくとも１つの課題管理テーブルを記憶し、
前記サーバの前記プログラム作成処理部により作成された前記プログラムは該端末へ送信されて、該端末の該プロセッサは受信した前記プログラムを実行し、該表示部は前記プログラムの実行の様子を表示する
ことを特徴とする請求項１または２に記載のプログラム作成支援システム。
【請求項５】
前記コンピュータシステムは、ネットワークを介して接続される端末を含み、
前記端末は、前記カメラと、入力部と、表示部と、プログラムを実行するプロセッサと、メモリと、を有し、
該プロセッサは、該プログラムの実行により前記画像処理部と、前記プログラム作成処理部を実現し、
該メモリは、異なる複数の課題ごとに用意される複数の前記課題管理テーブルから選択される少なくとも１つの前記課題管理テーブルを記憶することができ、
前記プログラム作成処理部により作成された前記プログラムは、該プロセッサで実行され、該実行の様子を該表示部に表示する
ことを特徴とする請求項１または２に記載のプログラム作成支援システム。
【請求項６】
前記課題シートは、前記識別情報と、プログラムの作成サービスを行うサーバのサイト情報を含む課題表示部を有し、
端末が持つ前記カメラによって、前記課題表示部が有する前記識別情報および前記サイト情報を取得する
請求項２のプログラム作成支援システム。
【請求項７】
コンピュータシステムを用いてプログラムを作成するプログラム作成支援方法であって、
視認特性を有する複数のチップの配置により形成されるチップ配列であって、該チップ配列は、プログラミングの課題に固有の識別情報の表示を有し前記チップ配列の先頭に配置されるスタートチップと、該スタートチップの後に配置される前記複数のチップと、該チップ配列の最後に配置されるエンドチップとを有して形成され、
前記複数のチップが有する視認特性の画像に対応するプログラムの命令を管理する命令テーブルを用意するステップと、
前記課題と、該課題に使用される前記命令を関係付ける課題管理テーブルを用意するステップと、
カメラが前記チップ配列を撮影するステップと、
前記カメラで取得された前記チップ配列の画像から、前記各チップが有する該画像を認識する画像処理ステップと、
前記画像処理ステップにおいて前記スタートチップを認識した場合、該スタートチップが有する前記識別情報に関連する前記課題管理テーブルを基に、該画像処理ステップで認識された、前記スタートチップと前記エンドチップの間に配置された、前記複数のチップの画像に対応する命令を前記命令テーブルから選択して、選択された該複数の命令から構成されるプログラムを生成するプログラム作成処理ステップと、
を有することを特徴とするプログラム作成支援方法。
【請求項８】
コンピュータシステムを用いてプログラムを作成するプログラム作成支援方法であって、
プログラミングのための課題に対応する識別情報と、課題文と、説明絵図を有する課題シートが用意され、
前記課題シートが有する前記課題文または前記説明絵図に従って、ユーザにより配置される、視認特性を有する複数のチップにより形成されるチップ配列であって、該チップ配列は、前記チップ配列の先頭に配置されるスタートチップと、該スタートチップの後に配置される前記複数のチップと、該チップ配列の最後に配置されるエンドチップとを有して形成され、
前記複数のチップが有する視認特性の画像に対応するプログラムの命令を管理する命令テーブルを用意するステップと、
前記課題と、該課題に使用される前記命令を関連付ける課題管理テーブルを用意するステップと、
カメラが前記チップ配列を撮影するステップと、
前記カメラで取得された前記チップ配列の画像から、前記各チップが有する該画像を認識する画像処理ステップと、
前記課題シートが有する前記識別情報に関連する前記課題管理テーブルを基に、該画像処理ステップにおいて認識された前記スタートチップと前記エンドチップの間に配置された、前記複数のチップの画像に対応する命令を前記命令テーブルから選択して、選択された該複数の命令から構成されるプログラムを生成するプログラム作成処理ステップと、
を有することを特徴とするプログラム作成支援方法。
【請求項９】
前記課題シートは、プログラミングのための前記識別情報が表示された課題表示部を有し、
前記カメラと、入力部と、表示部と、プログラムを実行するプロセッサと、メモリと、を有する端末が用意され、
前記端末の前記カメラが、前記課題シートの該課題表示部を撮影し、
前記画像処理部は、前記カメラによって取得された前記識別情報を認識し、
前記プログラム作成処理部は、前記画像処理部で認識された前記識別情報を基に前記課題管理テーブルを用いて、前記複数のチップの画像に対応する命令から構成されるプログラムを生成する
ことを特徴とする請求項８に記載のプログラム作成支援方法。
【請求項１０】
前記カメラと、入力部と、表示部と、プログラムを実行するプロセッサと、メモリと、を持つ端末が用意され、
前記端末の前記入力部は、前記課題シートが有する前記識別情報を入力し、
前記プログラム作成処理部は、前記入力部より入力された前記識別情報を基に前記課題管理テーブルを用いて、前記複数のチップの画像に対応する命令から構成されるプログラムを生成する
ことを特徴とする請求項８に記載のプログラム作成支援方法。
【請求項１１】
異なる複数の前記課題シートで冊子を構成し、
異なる複数の前記課題に対応して複数の前記課題管理テーブルを有する、
請求項８乃至１０のいずれかの項に記載のプログラム作成支援方法。
【請求項１２】
コンピュータシステムを用いてプログラムを作成するプログラム作成支援プログラムであって、
視認特性を有する複数のチップの配置により形成されるチップ配列であって、該チップ配列は、プログラミングの課題に固有の識別情報の表示を有し前記チップ配列の先頭に配置されるスタートチップと、該スタートチップの後に配置される前記複数のチップと、該チップ配列の最後に配置されるエンドチップとを有して形成され、
前記複数のチップが有する視認特性の画像に対応するプログラムの命令を管理する命令テーブルで管理するステップと、
前記課題と、該課題に使用される前記命令を関係付ける課題管理テーブルで管理するステップと、
カメラで取得された前記チップ配列の画像から、前記各チップが有する該画像を認識する画像処理ステップと、
前記画像処理ステップにおいて前記スタートチップを認識した場合、該スタートチップが有する前記識別情報に関連する前記課題管理テーブルを基に、該画像処理ステップで認識された、前記スタートチップと前記エンドチップの間に配置された、前記複数のチップの画像に対応する命令を前記命令テーブルから選択して、選択された該複数の命令から構成されるプログラムを生成するプログラム作成処理ステップと、
を有することを特徴とするプログラム作成支援プログラム。
【請求項１３】
コンピュータシステムを用いてプログラムを作成するプログラム作成支援プログラムであって、
プログラミングのための課題に関連する識別情報と、課題文と、説明絵図を有する課題シートが用意され、
前記課題シートが有する前記課題文または前記説明絵図に従って、ユーザにより配置される、視認特性を有する複数のチップにより形成されるチップ配列であって、該チップ配列は、前記チップ配列の先頭に配置されるスタートチップと、該スタートチップの後に配置される前記複数のチップと、該チップ配列の最後に配置されるエンドチップとを有して形成され、
前記コンピュータシステムは、
前記複数のチップが有する視認特性の画像に対応するプログラムの命令を命令テーブルで管理するステップと、
前記課題と、該課題に使用される前記命令の関連付けを課題管理テーブルで管理するステップと、
カメラで取得された前記チップ配列の画像から、前記各チップが有する該画像を認識する画像処理ステップと、
前記課題シートが有する前記識別情報に関連する前記課題管理テーブルを基に、該画像処理ステップにおいて認識された前記スタートチップと前記エンドチップの間に配置された、前記複数のチップの画像に対応する命令を前記命令テーブルから選択して、選択された該複数の命令から構成されるプログラムを生成するプログラム作成処理ステップと、
を有することを特徴とするプログラム作成支援プログラム。