(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-23
(45)【発行日】2023-05-31
(54)【発明の名称】プログラム作成支援システム及びその方法並びにそのプログラム
(51)【国際特許分類】
G09B 19/00 20060101AFI20230524BHJP
G09B 7/02 20060101ALI20230524BHJP
G06F 8/30 20180101ALI20230524BHJP
G06Q 50/20 20120101ALI20230524BHJP
【FI】
G09B19/00 Z
G09B7/02
G06F8/30
G06Q50/20
(21)【出願番号】P 2020206879
(22)【出願日】2020-12-14
(62)【分割の表示】P 2020001314の分割
【原出願日】2017-11-22
【審査請求日】2020-12-15
(73)【特許権者】
【識別番号】517062229
【氏名又は名称】合同会社オフィス・ゼロ
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜弁理士法人
(72)【発明者】
【氏名】飛坐 賢一
(72)【発明者】
【氏名】大木 章
【審査官】西村 民男
(56)【参考文献】
【文献】特表2017-517030(JP,A)
【文献】特開2017-161770(JP,A)
【文献】特開2017-121283(JP,A)
【文献】特開2014-229094(JP,A)
【文献】特開2011-8554(JP,A)
【文献】特開平7-104661(JP,A)
【文献】特開平6-83601(JP,A)
【文献】特開昭64-91169(JP,A)
【文献】実開昭60-87043(JP,U)
【文献】米国特許出願公開第2014/0170606(US,A1)
【文献】プログラミング教材を無料で 小学校算数を通して学ぶ,教育新聞[online],2017年08月09日,https://www.kyobun.co.jp/news/20170809_07/,[2022年07月29日検索]
【文献】夛田 一貴,紙の配置や書き込みを活用したプログラミング環境の開発,筑波大学大学院博士課程システム情報工学研究科修士論文,pp. 8~14,18~23,https://www.iplab.cs.tsukuba.ac.jp/paper/master/tada_master.pdf,[online], 2017年3月, [2020年7月15日検索]
【文献】商品パッケージのQRコードをスマートフォンで読み取ると記載情報を中・英・仏語などに切り替えて立体的に表示するインバウンド対応システムを開発,[online],2016年02月15日,https://www.dnp.co.jp/news/detail/1187578_1587.html,[2020年05月29日検索]
【文献】掛橋 駿,RFIDを用いた移動ロボットのプログラミング用ブロック型ツールの開発,ロボティクス・メカトロニクス 講演会2013 講演論文集,一般社団法人 日本機械学会,2013年05月21日,2P1-P03
【文献】原槙稔幸,子ども向け科学実験教室におけるプログラミング体験への拡張現実の導入に関する検討,情報処理学会第75回(平成25年)全国大会講演論文集(4),日本,一般社団法人情報処理学会,2013年03月06日,第385~386頁
(58)【調査した分野】(Int.Cl.,DB名)
A63H 1/00-37/00,
G06F 8/00- 8/38,
8/60- 8/77,
9/44- 9/445,9/451,
G06Q50/20,
G09B 1/00- 9/56,
17/00-19/26
(57)【特許請求の範囲】
【請求項1】
入力部と、表示部と、プログラムを実行するプロセッサと、記憶部と、を有する端末を用いて、プログラムの作成を支援するプログラム作成支援システムであって、
それぞれ固有のコードを有し、開始位置となるスタートマークを示すスタート物品と、動作を規定する複数の動作物品と、終了位置となるエンドマークを示すエンド物品を含む、複数の物品が用いられ、
プログラミングのためにユーザに提示される、少なくとも、課題文と絵図が記載されたカリキュラムと、カリキュラムを識別するカリキュラム識別情報の表示を有し、前記スタート物品と、前記複数の動作物品と、前記エンド物品が配置されるエリアを有しないカリキュラムシートが用いられ、
プログラミングのためのカリキュラムを識別する前記カリキュラム識別情報に応じて、該カリキュラムに基づくプログラミングに使用される、複数の各物品が有する前記コードと命令との対応付けを管理するカリキュラム管理テーブルと、
前記カリキュラムシートの前記カリキュラムの前記課題文と前記絵図に従って
前記ユーザにより、前記カリキュラムシート以外の場所に並べられた複数の各物品の前記コードを取得する取得手段と、
該取得手段により取得された前記複数の各物品の該コードを認識するコード認識処理部と、
前記カリキュラム管理テーブルを参照して、該コード認識処理部で認識された前記コードに対応する命令を特定して、特定された複数の該命令から構成されるプログラムを生成するプログラム作成処理部と、を有し、
前記端末より
前記ユーザの操作により指定される、カリキュラムに対応した前記カリキュラム管理テーブルが選択され、
前記取得手段は、前記スタート物品と、該スタート物品の後に配列された前記複数の動作物品と、前記エンド物品から形成される配列における各物品の前記コードを取得し、
前記コード認識処理部は、前記スタート物品と、前記エンド物品との間に配列された前記複数の動作物品の前記コードを認識し、
前記プログラム作成処理部は、選択された前記カリキュラム管理テーブルを参照して、前記コード認識処理部で認識された前記コードに対応する前記命令から構成されるプログラムを生成する
ことを特徴とするプログラム作成支援システム。
【請求項2】
前記端末はバーコードリーダを有し、該バーコードリーダが、前記カリキュラムシートの前記カリキュラム識別情報を読み取り、
読み取られた前記カリキュラム識別情報により、前記カリキュラム管理テーブルが選択される、請求項1に記載のプログラム作成支援システム。
【請求項3】
前記複数の各物品は、固有の視認特性と、前記固有のコードを有する、請求項1に記載のプログラム作成支援システム。
【請求項4】
入力部と、表示部と、プログラムを実行するプロセッサと、記憶部と、を有する端末を用いて、プログラムの作成を支援するプログラム作成支援方法であって、
それぞれ固有のコードを有し、開始位置となるスタートマークを示すスタート物品と、動作を規定する複数の動作物品と、終了位置となるエンドマークを示すエンド物品を含む、複数の物品が用いられ、
プログラミングのためにユーザに提示される、少なくとも、課題文と絵図が記載されたカリキュラムと、カリキュラムを識別するカリキュラム識別情報の表示を有し、前記スタート物品と、前記複数の動作物品と、前記エンド物品が配置されるエリアを有しないカリキュラムシートが用いられ、
プログラミングのためのカリキュラムを識別する前記カリキュラム識別情報に応じて、該カリキュラムに基づくプログラミングに使用される、複数の各物品が有する前記コードと命令との対応付けをカリキュラム管理テーブルが管理するステップと、
前記カリキュラムシートの前記カリキュラムの前記課題文と前記絵図に従って
前記ユーザにより、前記カリキュラムシート以外の場所に並べられた複数の各物品の前記コードを取得する取得ステップと、
該取得ステップにより取得された前記複数の各物品の該コードを認識するコード認識処理ステップと、
前記カリキュラム管理テーブルを参照して、該コード認識処理ステップで認識された前記コードに対応する命令を特定して、特定された複数の該命令から構成されるプログラムを生成するプログラム作成処理ステップと、を有し、
前記端末より
前記ユーザの操作により指定される、カリキュラムに対応した前記カリキュラム管理テーブルが選択され、
前記取得ステップは、前記スタート物品と、該スタート物品の後に配列された前記複数の動作物品と、前記エンド物品から形成される配列における各物品の前記コードを取得し、
前記コード認識処理ステップは、前記スタート物品と、前記エンド物品との間に配列された前記複数の動作物品の前記コードを認識し、
前記プログラム作成処理ステップは、選択された前記カリキュラム管理テーブルを参照して、前記コード認識処理ステップで認識された前記コードに対応する前記命令から構成されるプログラムを生成する
ことを特徴とするプログラム作成支援方法。
【請求項5】
前記端末が有するバーコードリーダが、前記カリキュラムシートの前記カリキュラム識別情報を読み取り、
読み取られた前記カリキュラム識別情報により、前記カリキュラム管理テーブルが選択される
請求項4に記載のプログラム作成支援方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム作成支援システム及びその方法並びにそのプログラムに係り、特にプログラミング学習に好適なプログラム作成の支援技術に関するものである。
【背景技術】
【0002】
AI(人工知能)や情報技術(IT)の発展に伴い、IT技術者の不足が予想され、プログラミング人材育成の重要性が叫ばれている。プログラミング人材育成ための対応の1つとして、我が国では、文部科学省が子供向けのプログラミング教育の重要性を提唱し、2020年から小学校でプログラミング教育が必須となった。既に、子供向けのプログラミング教育のシステムや教育治具、玩具等がいろいろと提案されており、なかには実用化されているものもある。
【0003】
その一つとして、コンピュータやインターネットを利用した初級者向けのプログラミング教育支援が提唱されている。例えば、特許文献1には、学習者用クライアントと、学習管理者用クライアントと、学習管理サーバを、ネットワークを通して接続して、学習者による課題の解答過程をオンラインでリアルタイムに把握してデータベース化し、記録したデータを基に任意の時間軸で解答過程を再現したりグラフによる可視化を行ったりして、各学習者のプログラミング習熟度を容易にかつ的確に把握できるプログラミング教育支援システムが開示されている。
【0004】
また、非特許文献1には、文部科学省が開発した「プログラミン」と称する子供向けのサービスとして、表示装置の画面にマウスを操作しながら、複数の絵(ブロック)を組み合わせることでプログラムを組み上げる、コンピュータを利用した子供向けのプログラミングが開示されている。更に、非特許文献2には、ARマーカによる画像認識を用いてプログラムを作成してロボットを動作させる技術が開示されている。これは、ARマーカとなる画像が書かれた「どうさカード」と「じょうけんカード」を交互に並べたものを、タブレットで撮影することによりロボットにプログラムを自動転送する、としている。
【先行技術文献】
【特許文献】
【0005】
【非特許文献】
【0006】
【文献】文部科学省「プログラミン」2013年10月22日 http://www.mext.go.jp/programin/
【文献】原槙稔幸,「子ども向け科学実験教室におけるプログラミング体験への拡張現実の導入に関する検討」,情報処理学会第75回(平成25年)全国大会講演論文集(4),一般社団法人情報処理学会,2013年3月6日,第385~386頁
【発明の概要】
【発明が解決しようとする課題】
【0007】
上記特許文献1に記載の技術は、学習管理サーバが学習者のプログラミング習熟度を容易にかつ的確に把握することを主題としており、如何にして学習者にプログラムを作成させるか、については詳述されていない。
【0008】
また、非特許文献1で紹介されているプログラミングは画面上で操作するため、パソコン(PC)等の使用が前提となる。学校の授業でプログラミング学習を行うとなると、生徒数に応じたPCが必要となるので相当の費用がかかり、更に生徒はPCの画面を操作するための基本的な操作を習得する必要がある。また、非特許文献2にはARマーカが記載されたカードをタブレットで撮影してプログラミングするという概念が開示されているが、子供たちがプログラミングし易くするための具体的な課題や技術的手段の示唆がない。
そこで、余り費用がかからず、とりわけ子供が簡便にプログラムの作成を学習することができる仕組みないし教材が望まれる。
【0009】
本発明の目的は、簡便な手法によってプログラムの作成ができるプログラム作成支援システム及びその方法並びにそのプログラムを提供することにある。
【課題を解決するための手段】
【0010】
本発明に係るプログラム作成支援システムは、好ましくは、コンピュータを用いて、プログラムの作成を支援するプログラム作成支援システムであって、
それぞれ固有のコードを有する複数の物品と、
前記複数の物品の前記コードとプログラムの命令の関係付けを管理するテーブルと、
プログラムの作成に際して、並べられた複数の各物品の前記コードを取得する取得手段と、
該取得手段により取得された前記複数の各物品の該コードを認識するコード認識処理部と、
前記テーブルを参照して、該コード認識処理部で認識された前記コードに対応する命令を特定して、特定された複数の該命令から構成されるプログラムを生成するプログラム作成処理部と、を有するプログラム作成支援システム、として構成される。
本発明はまた、上記プログラム作成支援システムで実現されるプログラム作成支援方法、及びプログラム作成支援用プログラムとしても把握される。
【発明の効果】
【0011】
本発明によれば、簡便な手法によってプログラムの作成が可能となる。
【図面の簡単な説明】
【0012】
【
図1】実施例1によるプログラム作成支援システムの構成を示す図である。
【
図4】プログラムの作成に用いられるチップの例を示す図である。
【
図7A】プログラム作成におけるチップの配列例を示す図である。
【
図7B】プログラム作成におけるチップの配列例を示す図である。
【
図7C】プログラム作成におけるチップの配列例を示す図である。
【
図8】カリキュラム管理テーブルの構成例を示す図である。
【
図9】ユーザ管理テーブルの構成例を示す図である。
【
図10】先生管理テーブルの構成例を示す図である。
【
図11】プログラム管理テーブルの構成例を示す図である。
【
図12】プログラム作成の概略的な動作を示すフローチャートである。
【
図13】プログラム作成の処理動作を示すフローチャートである。
【
図14】プログラム作成の処理動作を示すフローチャートである。
【
図16】プログラム作成支援システムの接続構成を示す図である。
【
図17】実施例3によるプログラム作成の概略的な動作を示すフローチャートである。
【
図18】実施例7において用いられる課題シートの例を示す図である。
【
図19】実施例7において用いられるプログラムシートの例を示す図である。
【
図20】実施例8において用いられるチップの例を示す図である。
【
図21】実施例8におけるチップの配列例を示す図である。
【
図22】実施例8におけるチップの配列例を示す図である。
【発明を実施するための形態】
【0013】
本発明の好ましい例は、コンピュータを用いたプログラム作成支援システムにより実現される。予め命令の定義された、絵柄の描かれた複数のチップと、チップを並べる所定のシートが用意される。ユーザは、目的に従って複数のチップを選択的にシート上に並べる。このチップの配列を、スマートフォンのような携帯端末が備えるカメラで撮影する。プログラム作成支援システムにおける処理装置(例えばサーバ)が、カメラで取得されたチップの配列の画像から各チップの絵柄の画像を認識してプログラムを構成する命令コードを特定し、命令コードの配列からプログラムデータを作成する。作成されたプログラムデータは携帯端末へ送信されて実行される。プログラムの実行は例えば携帯端末の表示部の画面にキャラクタの動画として表示される。
【0014】
好ましい例によれば、ユーザが多数の生徒から成る学校の授業において、先生が所持する1台の携帯端末があればプログラム作成の授業が可能となる。即ち、各生徒がチップの配列を終了する度に、携帯端末のカメラでチップの配列を撮影して、その画像をサーバへ送信して、サーバでプログラムを作成する。そして、プログラムの実行はその都度、携帯端末の画面で動画として見ることができるので、生徒ごとにプログラムの出来ばえが確認できる。
【0015】
本発明の好ましい例によれば、ユーザが1人でPCの画面を操作しながらプログラムを作成するというプログラム作成作業に比べて、シート上にチップを並べるという簡単な作業によってプログラムを作成することができる。そのため、プログラムの作成手順の習得が容易であり、プログラムの作成を教える先生も生徒も過度の負担が少ない。また、ユーザ1人1人にPCを用意する必要がないので多人数が同時に学習する場面に向いている。また、ユーザ毎にチップとシートのセットを用意することで対応できるので、低コストで実現できる。
【実施例1】
【0016】
以下、図面を参照して、本発明の一実施例について詳細に説明する。
図1は、プログラム作成支援システムの全体構成例を示す。
プログラム作成支援システムは、プログラムの作成を支援するサーバ1と、ユーザが使用する複数の携帯端末2とが、通信ネットワーク9を介して接続して構成される。
【0017】
サーバ1は、利用者の情報を管理し、携帯端末との間でデータ通信し、プログラムを作成し実行する等、の種々のデータ処理を行うコンピュータである。その機能及び処理の詳細については後述する。なお、サーバ1のハードウェア構成は図示していないが、プログラムを実行する処理装置(プロセッサ)、メモリ、ハードディスクのような外部記憶装置、入力器、表示器等のハードウェア資源を有する。
【0018】
プログラムの作成を支援するために、サーバ1は、携帯端末2のユーザや作業者の情報を登録して管理する情報管理部102と、プログラムを作成するプログラム作成処理部103と、プログラムの作成に際してチップの画像を認識する画像処理部104を有する。また、データベース(DB)として、ユーザの情報やプログラミング学習の利用に関する種々の管理情報を登録する管理情報DB105と、プログラム作成に関する情報を記憶するプログラムDB106を有する。これらの処理部及びDBの構成や機能については後で詳述する。なお図示の例では、管理情報DB105とプログラムDB106とを別のDBとして構成しているが、これらは1つのDBで構成してもよい。
【0019】
サーバ1はプログラム作成支援のためのサイトを有しており、携帯端末2からこのサイトに接続することで、プログラム作成支援を受けることができる。
携帯端末2は、例えばスマートフォン(以下単にスマホという)のような端末である。携帯端末2のハードウェア構成については、
図2を参照して後述する。
【0020】
図2は、携帯端末2のハードウェア構成を示す。
携帯端末2は、例えばスマートフォン(以下単にスマホという)のような携帯端末であり、種々のアプリケーションプログラム等を実行するプロセッサ(CPU)202と、データやプログラムを格納するメモリ203と、画面タッチ式の入力部204と、画面を表示する表示部205と、撮影機能であるカメラ206と、二次元バーコードを読み取るバーコードリーダ207と、ネットワーク9を通してサーバ1とデータ通信を行うネットワーク接続部208とを有する。スマホはインターネットを通して多くのサイトと接続することができて、ユーザが希望するアプリケーションをCPU202が実行する。また、スマホは上記以外に例えば音声入出力機能を始め種々の機能を有している。
【0021】
[プログラムシート及びチップ]
図3は、プログラムシートの例を示す。
プログラムシート(以下単にシートという)30は、プログラムの作成に用いられる、例えばA4サイズの用紙である。学校の授業では、予め印刷されたシート30を先生が各生徒に配布する。シート30は普通の紙製というよりも、生徒が何回も使用できて、チップの配置に耐えられるように、プラスチック製が好ましい。
【0022】
シート30の中央の広いスペースにはプログラムエリア302が確保される。シート30の上端にはタイトル301が印刷され、右上端には二次元バーコードを含む識別部305が印刷されている。タイトル301は例えばカリキュラムの名称である。識別部305の二次元バーコードはカリキュラムを識別するための識別情報を含んでいる。
【0023】
プログラムエリア302には、複数の縦線と横線によりマトリクス状の罫線が印刷され、更にその左上端には、「スタート」マーク303が印刷され、そこから下へ向かって太い縦線のガイドライン304が印刷されている。マトリックス線やガイドライン304はチップを配列する案内となる。マトリクス状の縦線と横線はチップ絵柄の画像処理においてX/Y座標となる。シート30の原情報は画像としてプログラムDB106に記憶されている。
【0024】
作業者である生徒は、ガイドライン304に沿って上から下へ向かってチップを配置していく。またある時は、マトリックス線に沿って左から右へチップを配置していく。
図7Aから
図7Cに、シート30に複数のチップ40を配置した例を示す。
【0025】
図4は、プログラムの作成に用いられるチップの例を示す。
チップ40は、プログラムの命令が定義付けられた表示子である。例えば、命令の動作を絵柄で表現(印刷)した、縦2cm×横5cmほどのプラスチック製矩形片である。それぞれの絵柄は命令ごとに相違する。チップ40は、シート30上に容易に固定できて容易に剥がれるように、その裏面に簡易的な粘着材が形成されているのが好ましい。なお、チップ40の絵柄の原情報は画像としてプログラムDB106に記憶されている。
【0026】
図4には17種類のチップの例が示されているが、命令の種類に応じてチップを更に増やすことができる。配布用の複数のチップ40をチップセットということにする。シート30やチップセット40は、ユーザからの要求に応じてユーザへ販売、発送される。なお、携帯端末2からの要求に応じて、サーバ1が、指定されたプリンタにシート30やチップセット40を印刷するサービスとすることもできる。
【0027】
[プログラム命令の例]
図5は、プログラム命令の例(命令リスト)を示す。
プログラム命令は、表示・動きを表す9つの命令(動作命令)と、制御文を表す2つの命令(制御命令)と、入出力を表す4つの命令(入出力命令)と、パラメータ即ち1から9までの数値を表す命令(パラメータ)と、その他の4つの命令から構成される。
【0028】
各チップと命令は一意に対応しており、チップの絵柄と、命令の名称、命令動作、パラメータの関係は図示の通りである。備考は参考的な説明を表す。例えば、動作命令において、右向きの絵(
図5の一番目にある「動く:方向付き」命令)は、「指定された方向へ移動」を表す命令であり、この矢印が右へ向いているときは右へ移動、左を向いているときは左へ移動、を表す。パラメータは動作命令の回数や向き、番号等を表す。命令との関係において、パラメータの指定が可能な命令についてパラメータの設定を可能とする。例えば、「動く:方向付き」命令はパラメータの回数設定が可能であるが、「拾う」命令はパラメータの設定ができない。
【0029】
図6に例示するように、右向きの絵「動く:方向付き」命令で、パラメータが「3」のときは、「右へ3回動く」を意味する。ここで、ある命令を表す1つのチップ401の配列は必須であり、パラメータ402の配列は任意である。パラメータ402は命令の種類やその実行レベルに応じて変わる。
【0030】
なお、「その他」の命令において、「START」の命令は、シート30に「スタート」が印刷されている場合は使用されない。「END」の命令は、チップ配列の最後に配置される。演算子や条件文の命令は用意されているが、カリキュラムの内容によっては使用されない場合がある。
【0031】
これら命令の、チップの絵柄(即ち絵柄の画像)と、動作等を示す名称と、動作の関係は、対応表である命令テーブル(符号50で示す)に定義されてプログラムDB106に記憶されている。ここで、命令テーブル50の画面表示の例は
図5のようになるが、プログラムDB106に保管される命令テーブル50には、絵柄の画像に対応した固有のコードデータ(命令コード)が含まれる。
【0032】
一例では、カリキュラムに応じてこの命令テーブル50から複数の命令(命令セットという)が選択される。また、新たなチップの絵柄や新たな命令を規定した場合や、既定の絵柄を削除又は変更したい場合には、命令テーブル50の内容を変更することができる。それは、サーバ1が有する入力器(図示せず)又は携帯端末2からの管理者の入力指示によって、命令テーブル50におけるチップの絵柄と命令との対応関係を変更することができる。
【0033】
[各種のテーブルの説明]
次に、
図8乃至
図11を参照して、プログラム作成支援のために使用される各種のテーブルの構成について説明する。各テーブル80~110は、管理情報DB105に記憶される。
【0034】
図8は、カリキュラム管理テーブルの構成例を示す。
カリキュラム管理テーブル80は、ユーザに提供するプログラム作成のカリキュラム、及び当該カリキュラムに使用される命令を管理するテーブルである。ここで、カリキュラムとはユーザがプログラミングするための課題或いは問題と言ってもよい。カリキュラムと、カリキュラムに対応する具体的な課題内容と、当該カリキュラムにおいて使用されるシートとは関連付けられている。これについては、
図15を参照して後述する。
【0035】
カリキュラム管理テーブル80は、カリキュラムを識別するカリキュラム番号と、当該カリキュラムによるアプリケーションを実行するアドレスと、当該アプリケーションにおいて使用されるキャラクタを表すキャラクタセットと、命令テーブル50から選択された、当該カリキュラムで使用する全ての命令の参照番号(命令テーブル50の参照番号)とを登録する。ここで、アプリケーションとは、カリキュラムの選択から始まって、携帯端末2によってシート及びチップ配列の画像を取り込む処理、及びプログラムの作成処理に至る一連の処理を行うプログラムである。キャラクタとは、プログラムの実行において動画として使用される登場者であり例えばウサギや亀の画像、有名なアニメの画像である。
【0036】
また、当該カリキュラムで使用する全ての命令の参照番号を命令セットに登録する理由はプログラム作成処理を速くするためである。即ち、プログラム作成処理に際して、命令テーブル50を参照しながらチップ配列の画像から個々のチップの画像を認識する処理を行うが、このときに命令テーブル50に登録された全てのチップ画像をスキャンすると多大な時間がかかる。これに対して、命令セットに登録された参照番号に対応する命令を対象にスキャンすれば、画像の認識にかかる時間は大幅に短くなる。
【0037】
図9は、ユーザ管理テーブルの構成例を示す。
ユーザ管理テーブル90は、プログラムを作成するユーザの情報を管理するテーブルである。ユーザ管理テーブル90は、ユーザの識別IDである識別情報と、ユーザの名前と、プログラムデータを記憶しているアドレスを示すプログラムデータ格納先インデックス(ID)と、カリキュラム識別情報として、カリキュラム管理テーブル80から選択されて利用されるカリキュラム番号と、更新日時と、個人情報としてユーザが所有する携帯端末のメールアドレス等、を登録する。カリキュラム識別情報には、過去に利用したカリキュラム番号がログとして逐次登録されていく。この例では、プログラムデータ格納先IDは、作成されたプログラムデータを管理するプログラム管理テーブル110のアドレス或いはプログラム管理テーブル110を指定する情報を表す。
【0038】
学校の授業や団体でプログラム学習をする場合には、先生が所持する携帯端末2を用いてサーバ1とデータ通信するので、先生管理テーブル100が主に使用される。そのため、ユーザとしては、ユーザ管理テーブル90に生徒を識別するIDを含む生徒に関する情報を登録しなくてもよい。これに対して全ての生徒が携帯端末2を有していて、各人が独立してプログラム作成を行う場合にはユーザ管理テーブル90に全ての生徒のユーザ情報を登録する。
【0039】
図10は、先生管理テーブルの構成例を示す。
先生管理テーブル100は、学校の授業でプログラム学習をする場合、先生及びクラスを構成する生徒に関する情報を管理するテーブルである。先生管理テーブル100は、先生を識別する先生IDと、先生の名前と、プログラムデータを記憶しているアドレスを示すプログラムデータ格納先インデックス(ID)と、カリキュラム識別情報として、カリキュラム管理テーブルから選択されて利用されるカリキュラム番号と、ユーザ識別情報としてクラスの生徒識別IDと、個人情報としての先生が所有する携帯端末のメールアドレス等、を登録する。ユーザ識別情報にはクラスを構成する全ての複数の生徒IDが登録される。カリキュラム識別情報には、過去に利用したカリキュラム番号がログとして逐次登録されていく。
【0040】
図11は、プログラム管理テーブルの構成例を示す。
プログラム管理テーブル110は、作成されたプログラムに関する情報を管理するテーブルである。プログラム管理テーブル110は、プログラムを作成したユーザ識別IDと、カリキュラム番号と、作成されたプログラムデータと、プログラムの登録日時と、その修正日時と、を登録する。本実施例では、ユーザ識別IDには生徒識別IDが登録されることになる。プログラムデータとは、作成されたプログラムそのものであり、複数行のプログラムステップの場合その行数分が登録される。
【0041】
[プログラム作成の概略動作]
次に、
図12を参照して、プログラム作成の概略的な動作について説明する。
この例は、携帯端末2を所持している先生が、複数の生徒に対してプログラミングの授業を行う場合のフローを示している。図中、実線で示すステップは携帯端末又はサーバによる処理動作を表し、点線で示すステップは人間(先生又は生徒)の動作を表す。
【0042】
まず、先生は携帯端末2を操作してアカウントとパスワードを入力してログインを行う(S1201)。そして、携帯端末2はネットワーク9を介してサーバ1と接続され、本件のプログラム作成のサイトに接続される。すると、携帯端末2にはカリキュラム選択用の画面が表示部205に表示される。先生は、表示された画面から目的のカリキュラムを選択する(S1202)。
【0043】
ここで、カリキュラムの選択からシート30の用意までの動作について説明する。カリキュラムの選択は、
図15(A)に示すような、カリキュラム一覧表の画面が携帯端末2の表示部205に表示される。先生は、表示されたカリキュラム一覧表から目的とするカリキュラム(課題)を選択する。すると、
図15(B)に示すように、選択された課題の詳細を表す画面が表示される。先生は課題の詳細内容を確認して了解ならば、その画面の下にある「シート」を選択する。すると、
図15(C)に示すような、当該カリキュラムに対応したシートが印刷される。シートの印刷は予め指定されたプリンタを用いて行うことができる。なお、学校の授業でプログラミングを行う場合には、授業内容を予め理解しておく必要があるので、ここまでの動作を予め完了しておき、シートを事前に準備することができる。
なお、
図15(A)~(C)に示すような、画面の情報は管理情報DB105に記憶されていて、携帯端末2の入力指示に応じて携帯端末2へ送信されて表示される。
【0044】
実際のプログラミンングの授業に際して、先生は、用意されたシート30とチップセット40を複数の生徒に配布して(S1203)、プログラミングの出題をする(S1204)。出題とは、
図15(B)に示された課題を説明することである。例えば、カリキュラムの「トレーニング1」に対応する設題「りんごをテーブルに置いて部屋から出ましょう」のような題目である。少し高度な出題(例えば「入門3」)としては、諸動作を一つ一つ言わずに「ウサギさんとカメさんが競争する運動会」というような設題もあり得る。
【0045】
生徒は、プログラミング即ち、配布されたシート30上にチップ40を配列する作業を行う(S1211)。チップ40の配列作業の結果、例えば
図7A~
図7Cのように、シート30上にチップが配列される。実験例によれば、
図7A~
図7Cは、課題「りんごをテーブルに置いて部屋から出ましょう」について、複数の異なるチップの配列によって解答した例である。
【0046】
シート30上におけるチップ40の配列作業が終了すると、先生は携帯端末2のカメラ206で作業済みのチップ配列シート40を撮影して、その撮影した画像をサーバ1へ送信する(S1205)。
【0047】
サーバ1では、受信した画像を基にプログラム作成処理を行う(S1206)。この処理については後で詳述する。サーバ1で作成されたプログラムは携帯端末2で実行される(S1207)。
【0048】
[プログラム作成処理]
次に、
図13及び
図14を参照して、プログラムの作成処理について説明する。
図13は、プログラムの作成処理の全体のフローチャートを示す。
この処理に先立って、先生の携帯端末2からサーバ1が運営するサイトをアクセスして、ユーザ管理テーブル90にはユーザ(生徒)の名前等を含む個人情報が登録されている。また、先生管理テーブル100には、先生の名前や携帯端末2のメールアドレス、及びプログラミング授業に関わるクラスの生徒(ユーザ)の識別IDが登録されている。
【0049】
更に、
図12のカリキュラム選択処理(S1202)により、カリユラム選択画面(
図15)を用いてカリキュラムを選択して、カリキュラム管理テーブル80から選択されたカリキュラム番号が、先生管理テーブル100に登録される。なお、本例の処理では、生徒個人毎に異なるカリキュラムを選択しないので、ユーザ管理テーブル90には選択されてカリキュラム番号を登録する必要がない。
また、
図12に示すように、シート30と、選択されたカリキュラム番号に対応するチップセットが複数の生徒に配布され、プログラミング授業において生徒はシート30上にチップ40を配列する作業を完了した、とする。
【0050】
ここで、
図7A~
図7Cを参照して、チップの配列の例について説明しておきたい。
このチップ配列の例は、課題「りんごをテーブルに置き部屋から出ましょう」に対して、3人の生徒がそれぞれ別のチップ配列を行った例である。
図7A~
図7Cの何れも同じ動作を行い、正解となる。因みに、図示のチップの配列に基づくプログラム命令による動作は、以下の通りになる。
・右に2歩
・下に3歩
・拾う
・左に2歩
・置く
・下に2歩
・扉を開ける。
【0051】
説明を
図13に戻す。先生は、携帯端末2を操作してログインを行う(S1301)。この場合、サーバ1の情報管理部102は、先生管理テーブル100を参照して、先生識別IDを確認し、もしカリキュラム番号が登録されていない場合には、携帯端末1の表示部に、カリキュラムの選択を促す画面を表示して、
図12に基づく画面から上記のような処理を行わせる。そして、情報管理部102は、先生管理テーブル100に登録されたカリユラム番号を基にカリユラム管理テーブル80を参照して、カリユラム管理テーブル80に登録されているアプリケーションを起動する(S1302)。アプリケーションが起動されると、選択されたカリキュラム番号を登録したカリユラム管理テーブル80の情報が携帯端末2のメモリに取り込まれて記憶される。
【0052】
先生は、携帯端末2のバーコードリーダ207を用いてシート2の識別部305を読ませる。更に、カメラ206を用いてチップ40が配列されたシート(チップ配列シート)30を撮影する。識別部305の情報及びチップ配列シートの撮影された画像(チップ配列シート画像)は一時、メモリ203に格納される(S1303)。チップ配列シート画像をメモリ203に登録する場合、当該画像が特定のユーザ(生徒)によって作成された旨を表示するために、先生は入力部204からユーザ識別ID(この場合、生徒識別ID)を入力する。チップ配列シート画像にはユーザ識別IDが付与されてメモリ203に格納される。
【0053】
識別部305からの情報にはカリキュラムを識別する情報が含まれており、CPU202がその識別情報とカリユラム管理テーブル80に登録されたカリキュラム番号と比較する。比較の結果、両者が一致すると、使用されたシート30が正しいと判断して、その後の処理を継続させる。一方、比較の結果正しくないと判断すると、CPU202は表示部205にその旨を表示して、シート30及びカリキュラム番号の確認を促す。
【0054】
カリキュラム番号に対応した正規のシート30が使用された場合、CPU202はネットワーク接続部208を介して、チップ配列シート画像をサーバ1へ送信する(S1303)。チップ配列シート画像のサーバ1への送信は、生徒ごとのチップ配列シート画像を取得する度に行ってもよいし、複数の生徒のチップ配列シート画像がメモリ203に蓄積された時に行ってもよい。チップ配列シート画像には、先生識別ID、カリキュラム番号及びユーザ識別ID(この例では生徒識別ID)が付与されてサーバ1へ送信される。
【0055】
サーバ1がチップ配列シート画像を受信すると、情報管理部102は、送信元のアドレスが先生管理テーブル100に登録されたメールアドレスかを確認する。更に、受信したチップ配列シート画像に付与された生徒識別ID及び先生識別IDを取得して、先生管理テーブル100に登録されたものかを確認する。この確認の結果正しければ、画像処理及びプログラム作成処理に移る。(なお、ユーザ個人が自らの携帯端末からチップ配列シート画像をサーバへ送信する場合には、情報管理部102はユーザ管理テーブル90を参照して、正規に登録されたメールアドレスかを確認することになる。)
プログラム作成処理に際して、まず画像処理部104が、取得した上記画像からチップの有する絵柄の画像を認識する処理を行う(S1304)。その後、プログラム作成処理部103が、認識結果に基づいてプログラムの生成処理を行う(S1305)。これらの処理については、
図14を参照して後述する。
【0056】
プログラム作成処理部103で作成されたプログラムデータは、情報管理部102の処理に従って、プログラム管理テーブル110に格納される。即ち、プログラム管理テーブル110において、「ユーザID」には当該プログラムを作成したユーザである生徒IDが、「カリキュラム番号」には先生管理テーブル100に登録されたカリキュラム番号が、「プログラム」には作成されたプログラムデータが、「プログラムの登録日時」にはプログラムを格納した日時が、それぞれ登録される。
【0057】
その後、プログラム管理テーブル110に登録されたプログラムを実行することができる(S1307)。一例では、プログラムの実行はその前段にプログラムのテスト及びその確認の処理を含んでいる。それは、チップ40の配列において、制御文のチップやパラメータのチップが所定の規則に従って配列されていないとか、「END」が無い等の場合があり、これらはプログラムの実行上エラーとしなければならないからである。テスト及び確認の処理においてそのようなエラーが発見されると、プログラムデータの修正作業に移る。
【0058】
すなわち、プログラムのテスト及び確認のために、プログラム管理テーブル110に格納されたプログラムデータはネットワーク9を介して、送信元の携帯端末2へ送信され、CPU202で実行される。CPU202によるプログラムの実行は、例えばカリキュラム管理テーブル80に登録されたキャラクタの動画として、表示部205に表示される。先生は、表示部205に表示される動画を見て、当初設定した「課題」とカメラで取得されたチップ配列シート画像におけるチップ配列を基に、表示された動画が正しいか、を判断する。その結果、正しくないと判断した場合には、そのプログラムを作成した生徒に対して口頭でプログラミングの修正を指示する。併せて、入力部204より当該プログラムの修正を指示すると、その指示はサーバ1へ送信されて、プログラム管理テーブル110に修正中のフラグ(図示せず)が記憶される。生徒によるプログラミングの修正が終わると、上述した動作と同様にして、修正されたチップ配列シート画像がサーバ1へ送信される。この場合、同様にして、プログラム管理テーブル110に修正された(修正版)プログラムデータが格納される。併せてプログラム管理テーブル110の修正日時が登録される。
【0059】
修正版プログラムは、上記と同様にして、先生が所持する携帯端末2で実行される。その結果、エラーが無ければ、その旨がサーバ1へ送信されて、プログラム完成を示すフラグ(図示せず)がプログラム管理テーブル110に登録される。
なお、完成後のプログラムの実行の例については、
図16を参照して後述する。
【0060】
次に、
図14のフローチャートを参照して、画像処理(S1304)と、プログラム作成処理(S1304)を詳しく説明する。
画像処理(S1304)は、チップ配列シート画像から、個々のチップ40に描かれた絵柄の画像を認識して切り出す処理である。カメラ206で撮影された画像が傾いていることがあるので、まず、画像補正(S1401)の処理において、シート30の画像を基に画像の傾きを補正する。例えば、縦軸(Y軸)対してシート30のガイドライン304がある角度θ傾いていると判断したら、取得した画像全体を角度θ回転させて縦軸とガイドライン304を合せる。
【0061】
次に、画像パターマッチング(S1402)において、命令テーブル50を参照しながら、チップ配列を構成する各チップ40が有する絵柄の画像が、命令テーブル50に登録された絵柄と一致するかを判断する。この処理により、命令テーブル50に登録された絵柄の画像に対応するコードデータが選択される。仮にもし、シート30上に消しゴムやごみ等があっても、それらの画像は選択されない(除外される)。画像パターンマッチングにおいては、取得されたチップ配列画像について、命令テーブル50に登録された全ての画像と比較することは行わず、カリユラム管理テーブル80に当初登録された命令参照番号に対応するチップ画像のみを対象として比較することで、処理時間の高速化を図っている。画像パターンマッチングの結果出力されるコードデータ(命令コード)には、当該絵柄画像が認識された場所の座標情報(シート30上のX/Y座標情報)が付加される。
【0062】
プログラム作成処理(S1304)おいては、上記画像処理により特定された絵柄の画像に対応する命令コードを整列させる(S1403)。命令コードを整列する理由は、パターンマッチングで認識された絵柄の画像は命令コードには変換されたが、その配列は未だチップ40が配列された状態のままであるため、命令コードを並び直して整列させるためである。この整列は、命令コードに付加された座標情報を基に例えばY座標を基準として揃える。更にプログラムの生成に際して、命令テーブル50を参照して命令コードの並び方が正しいかを確認する。例えば、上記画像処理の結果、「動く」の命令コードの右隣りにパラメータ「回数」の命令コードが並ぶ場合は正しいが、「拾う」や「置く」の命令コードの右隣りにパラメータ「回数」が並ぶ場合は、命令テーブル50で許可していないので正しくないと判断する。並び方が正しくない場合、一例ではそのパラメータを無視する。また、命令コードに対するパラメータの並び方が正しい場合であっても、パラメータの命令コードが許容範囲を超えて右側にずれている場合には、その命令コードを左側に移動させて、例えば「動く」命令コードの右隣りに整列させる。
【0063】
命令コードの整列及び確認が終了すると、整列された命令コードの順にプログラムコード化してプログラムデータを生成する(S1404)。作成されたプログラムのデータは、プログラム管理テーブル110の「プログラム」エリアに格納される。プログラム管理テーブル110には、ユーザ識別ID、カリキュラム番号、プログラム登録日時も併せて登録される。
【0064】
上記の処理動作によりチップ40の絵柄の配列に基づくプログラムが作成される。例えば、
図7Aから
図7Cに示すように、同じ設題でありながらチップの配列が異なると、命令コードの配列も異なるので、プログラムとしては別のものとなる。然し、プログラムの実行によって表示部205の画面に表示されるキャラクタの動作は同じになる。
【0065】
[プログラムの実行]
実施例1では、作成されたプログラムは、先生が所持する携帯端末2のCPU202で実行される。プログラムの実行は、キャラクタの動作を伴う動画として表示部205の画面に表示される、とした。しかし、これに限らず、プログラムは種々の機器で実行される。
【0066】
図16は、プログラム作成支援システムにおいてサーバ1に接続される機器(接続機器という)を示す。例えば、サーバ1にはネットワーク9を介して、スクリーンに動画や映像を投影するプロジェクタや大型表示装置151、音響機器152、ロボットやミニカー等の動作機器153、を含む機器が接続される。
【0067】
プログラムが実行される接続機器は1つの限らず、複数の機器で可能である。例えば、
図5に示す命令リストの入出力命令の中から「音を鳴らす」が用いられる場合、表示装置151にキャラクタの動作が表示され、さらに音響機器152から音声が発生される。他の例として、音声を発するロボットを使用する場合、
図5に示す命令リストの入出力命令の中から、「音を鳴らす」と「接続機器を制御」が用いられると、指定された先のロボットがプログラムの実行通りに動作し、かつロボットが備えるスピーカから音声が発せられる。
【0068】
接続機器はインターネットに接続可能な、IPアドレスを有する全ての機器が対象となり得る。接続機器の管理は、サーバ1の管理情報DB105に、接続可能な機器のIPアドレス又はURLを登録する接続機器管理テーブルを用意しておき、接続機器管理テーブルを参照して出力先の接続機器を選択することで、プログラムが実行される機器への接続が可能である。接続機器の選択は、予め決めておいてもよいし、プログラムの完成した後に先生が所持する携帯端末2又は他の携帯端末から選択することができる。
【0069】
[視覚障害者向けのプログラム作成支援システム]
上記実施例1は視覚正常者によるプログラム作成を前提としているが、本発明は視覚障害者がプログラム作成を行う場合にも有用である。その一例をあげれば、視覚障害者のためにシート30及び各チップ40には点字が施される。即ち、シート30のマトリックス線やガイドライン304、及びタイトル301や「スタート」マーク303は、上記した印刷の他に点字が形成される。また、各チップ40の所定の位置には上記した絵柄の他にチップの「名称」を表す点字が施される。さらに、命令テーブル50には、
図5に示す構成に加えて、各チップの「名称」に対応して音符データが登録される。
【0070】
ユーザはシート30及び各チップ40の点字を頼りにして、シート30上にチップ40を並べてプログラミングする。チップ配列シート画像をカメラで取得してからプログラムデータの生成までの動作は上記実施例1と同様である。プログラムの実行においては、携帯端末2の表示機能と音声出力機能を有効にして、或いは
図16に示す音響機器152に接続して、プログラムを実行させることができる。プログラムの実行において、複数チップの配列の状態は音符による音の変化として出力されるので、視覚障害者はその音の変化を基にプログラムの出来ばえを把握することができる。
【実施例2】
【0071】
[他の例によるプログラム作成支援システム]
実施例1によるプログラム作成支援システムは、プログラム作成処理部103、画像処理部104、及び関連するテーブルや情報を記憶する管理情報DB105、プログラムDB106を全てサーバ1が有する。しかし、実施例2によるプログラム作成支援システムは、これらの処理機能やDBの全部又は一部を携帯端末2に持たせることができる。
【0072】
例えば、全ての処理機能及び関連するテーブルや情報を携帯端末2に持たせる場合、最初にプログラミング作成のサービスを行うサイト(例えばサーバ1が運営するサイト)にアクセスして、関係するアプリケーション(プログラム作成機能や関連する管理情報)をダウンロードして、携帯端末2に保持させる。あとは、上記実施例と同様にしてプログラムを作成することができる。この場合、シート30やチップ40は携帯端末2からの印刷指示により指定したプリンタで印刷して作成することができる。
図13及び
図14に示す処理は、携帯端末2が有するCPU202においてプログラムで実行される。
【0073】
また、一部の処理機能やDBを携帯端末2に持たせる例として、例えば、サーバ1には命令テーブル50を保持させて、携帯端末2にはカリキュラム管理テーブル80や、画像処理機能やプログラム作成機能を持たせることができる。この場合、カリキュラムに応じて用いられる命令と画像の対を、命令テーブル50から取得してカリキュラム管理テーブル80に記憶しておく。プログラム作成機能は、当該カリキュラム管理テーブル80を参照して、チップの画像に対応する命令を特定する処理を行うことができる。通常、サーバ1には、多くのユーザの携帯端末2が接続可能である。そこで、命令テーブル50には全ての命令と画像の対を母集団として管理しておき、ユーザの携帯端末2から要求で指定されたカリキュラムに応じて、命令テーブル50から選択された命令と画像の対のみを当該携帯端末2へ提供するのは有意義である。
【実施例3】
【0074】
[他の例によるプログラム作成の動作]
実施例1では、
図12に示すように、先生が所持する携帯端末2を使用して、生徒が作成したシート30上のチップ40の配列を撮影するとした。しかし、プログラムの学習は学校の授業のみで行なわれるわけはなく、ユーザが自ら1人で行うこともできる。実施例3によれば、ユーザが携帯端末を所持していて、自分でログイン動作等の基本的な操作ができる。
【0075】
図17に示すように、ユーザは自ら携帯端末を用いてログインし(S1201)、カリキュラム選択(S1202)、シート及びチップセットの準備をして、プログラミングする(S1211´)。この場合、先生管理テーブル100は使用されずに、ユーザ管理テーブル90が使用される。それ以外の主な処理動作は実施例1と同様である。
【0076】
また、このプログラム作成支援システムは、プログラム作成の学習以外にも、プログラムを作成するゲーム装置や、プログラムによる制御装置や玩具の制御のためのプログラム作成、等にも適用可能である。
【実施例4】
【0077】
[他の例によるプログラム作成支援処理フロー]
実施例1では、
図13を参照する処理フローにおいて、画像の取込み、送信(S1303)からプログラムの作成処理(S1305)、プログラムの実行(S1307)、を一連の処理として行うように説明した。実施例4によれば、これらの処理ステップを複数に分けてそれぞれ別のタイミングで行うことも可能である。例えば、学校の授業において、第1回目では、シート30上にチップ40を並べるまでを学習させ、複数の生徒がそれぞれ作成したチップ配列をカメラ206で撮影して、複数のチップ配列シート画像をメモリ203に格納するまでとし、第2回目でメモリ203に格納されたチップ配列シート画像をサーバ1へ送信して、サーバでプログラム作成処理して、作成されたプログラムを携帯端末2へ送信させてメモリ203に格納して、1人の生徒のプログラムをテスト実行させるまでとし、3回目で残りの生徒の作成したプログラムをテスト実行させて、その後、プログラムの修正作業をさせる等、複数回に分けて実施することが可能である。特に学校の授業では、全体の生徒の進捗を見ながら進めることが重要なので、上記のように、プログラムの作成過程を幾つかに分けて進めることが有意義である。
【実施例5】
【0078】
[他の例による管理テーブル]
実施例1では、カリキュラム管理テーブル80には当該カリキュラムで使用される全ての命令の参照番号(
図5の命令テーブル50から選択された命令の参照番号)が登録されるとした。実施例5においては、命令テーブル50から選択された命令の、チップの画像、名称、動作、パラメータ、及び命令コードの各データを登録するようにしてもよい。さらに、携帯端末2にプログラム作成支援のためのアプリケーションをサーバ1からダウンロードしておくことで、チップ配列画像を基にプログラムを作成する処理を携帯端末2のCPU202で行える。
【0079】
実施例5の他の例として、ユーザの要求に応じて、命令テーブル50から選択された複数の命令と、シート30と、チップ40を提供して、最終的にユーザによるプログラムの作成を支援するビジネスが考えられる。この場合、カリキュラム管理テーブル80はユーザ毎の契約管理テーブルとなり、カリキュラム番号はユーザに固有の契約識別コードとなる。例えば、サーバ1の情報管理部102は、上記他の例を踏襲した、選択された命令の、チップの画像、名称、動作、パラメータ、及び命令コードの各データを登録した契約管理テーブルと、ユーザ管理テーブルと、プログラム管理テーブル、及びプログラム作成支援のためのアプリケーションをユーザの携帯端末2へ提供する。携帯端末2では、取得されたチップ配列画像を基にCPU202で、
図13及び
図14に示す処理によりプログラムの作成が行える。
【実施例6】
【0080】
[他の例によるシート]
シート30は、
図3に示したものに限定されない。チップ40の配列の容易性、簡便性を考慮すれば、プログラムエリア302に「スタート」マークや罫線やガイドライン304が印刷されている方が好ましいが、代案によれば、それらは必ずしも必要とされない。チップ40の配列の開始位置や配列方向が分れば、或いはある程度習熟したユーザならば、プログラムエリア302に罫線やガイドライン304は無くてもよいであろう。また、「スタート」マーク303は、「START」のチップで代用できる。
【0081】
また、他の例によれば、シート30は必ずしも必要としない。要するに、チップ40の配列の規則に従って開始位置や配列方向、終了位置を明確にして、チップ40を白紙や机やテーブル上に配列し、その配列をカメラで撮影することで、上記実施例1と同様の作用ないし効果を得ることができる。カメラで取得される画像は、シート無しのチップ配列画像である。例えば、机上にチップを配列する場合、仮に机上に消しゴムや鉛筆等の異物があっても問題はない。それは、カメラで撮影した画像を基にした画像認識の過程において消しゴムや鉛筆の画像は除外されて、チップ固有の画像のみを認識して抽出することができるからである。
【0082】
また、シートを用いない他の例として、例えば、チップ40を縦横1~2m程の四辺形の厚紙カードで作成して、このカードを校庭に並べることでプログラミングして、そのカードの配列を、ドローンに搭載した無線通信機能付きのカメラで高所から撮影することで、チップ配列の画像を取得することも可能である。
【実施例7】
【0083】
[課題シートの例]
実施例7は、
図15(B)に示した、課題(カリキュラム)シートの具体例である。
図18に示すように、課題シート70には主に、課題文702と、絵図が記載されており、課題(又は課題シート)を管理するために、課題番号701と、識別部705を有する。識別部705は、課題を識別するための識別情報(課題識別情報)を含む二次元バーコードで形成される。課題識別情報は、カリキュラム管理テーブル80に登録されるカリキュラム番号と対応付けられる。
【0084】
実施例1に照らして言えば、先生(又はユーザ)は、課題が変わる度にその課題に対応した課題シート70を生徒に配布する。そして、先生(又はユーザ)は課題シート70を配布(使用)するとき(例えばS1204のとき)に、携帯端末2のバーコードリーダ207を用いて課題シート70の識別部705を読ませる。また、プログラム作成処理(
図13)においては、アプリケーションの起動(ステップS1302)した後に、(実施例1における)シート3の識別部305をバーコードリーダ207で読ませる代わりに、課題シート70の識別部705をバーコードリーダ207で読ませる。これにより、課題シート70とカリキュラム管理テーブル80に登録されたカリキュラム番号と対応付けられる。他の動作は、実施例1と同様であり、
図13における識別部305を、識別部705と読み替えれば理解できるであろう。
【0085】
この課題シート70を使用する場合、チップ40を配列するシートには識別部305が無くてよい。
図19にこのシート30´の例を示す。つまり、実施例1によれば、カリキュラムが変わる度にシート30を替えているが、実施例7によれば、課題が変わるときに課題シート70を替えればよく、識別部305を有しないシート30´を変える必要がない。このため、シート30´はチップ40を配列する専用シート(例えば机上の台紙)として使用することができる。
【0086】
実施例7の応用例として、複数ページに亘る課題シート70を含む冊子をユーザに有償又は無償で提供する。この場合、識別部705は、課題識別情報の他に、プログラム作成サービスを行うサーバ1のサイト情報を含むのがよい。ユーザは、携帯端末2のバーコードリーダ207で、目的の課題シート70の識別部705を読ませて、その読取り情報を基にプログラム作成サービスのサイトへアクセスして、当該課題シート70に対応するカリキュラム管理テーブル80に登録された情報を取得して、プログラム作成のサービスを受けることができる。
【実施例8】
【0087】
[他の例によるチップ]
実施例8においては、チップ40を配列し易くするために、チップ40の外周部に凹凸が設けられる。
図20に示すように、平板状のチップ40には、上辺と左辺に三角形状の凹部411,412が形成され、右辺と下辺には三角形状の凸部421,422が形成される。チップ40に凹凸を設けた理由は、チップ401の配列を規制するため、換言すればチップの配列の簡便化のためである。
図21に示すように、ユーザは、あるチップの凸部を、他のチップの凹部に係合するようにして、複数のチップ40を順に容易に配列(或いは組合せと言ってもよい)することができる。具体例として、
図22に示すように、「動く:方向付き」命令はパラメータを付加することができるので(
図5参照)、「動く:方向付き」命令のチップ401は右辺に凸部422を持ち、パラメータのチップ402は左辺にのみ凹部412を有する。
図22には示していないが、
図5を参照したチップの凹凸の他の例として、例えば、「拾う」命令にはパラメータが付加されないので、「拾う」命令のチップの右辺には凸部が無い。また、全てのパラメータは、動作命令や制御命令等に付加されるので、パラメータのチップの左辺にのみ凹部412を有し、他の辺には凹部や凸部を有しない。また、
図22に示すように、「終了」命令のチップ401は、上辺にのみ凹部411を有する。
【0088】
実施例8によれば、矩形状のチップ40の辺に適宜凹凸を形成し、それら複数のチップを配列させることで、命令やパラメータのチップの配列を管理することができる。これにより、チップの配列を一様に管理できるので、チップを配列するためのシート30を省略することが可能である。
【0089】
また、チップの配列を管理できるので、画像処理における画像補正機能(S1401(
図14))や、プログラム作成処理コードデータ整列機能(S1403)を実行するための時間や負荷を軽減することができ、全体としてプログラム作成のための時間を高速化できる。例えば、実施例1のように、凹凸が無いチップ40をシート30上に配列する場合、ガイドライン304があったとしても、複数のチップの左右の辺がデコボコとなったり、偏ったり、傾いて、配列されることが多々ある。このような場合には、画像補正機能(S1401)により正規に補正することができるが、そのための処理時間ないし負荷がかかる。一方、実施例8によれば、チップに設けた凹凸によりチップの配列が管理されるので、ユーザによるチップの配列のデコボコや傾き等が防止できる。そのため、画像処理プログラムによる画像補正機能(S1401)等の処理は殆ど不要となり、プログラム作成処理を高速化できる。
【0090】
実施例8によれば、矩形状のチップの辺に三角形状の凹凸を形成しているが、凹凸形状は三角形状に限らず、半円形、四角、など種々適用できる。また、特定の命令には特定のパラメータしか適合しないような場合には、両者のチップには特定形状の凹凸を適用することができる。例えば、「ジャンプ」命令には、「向き、高さ」のパラメータのみが付加されるので、両者のチップは特定の関係にある。そのため、大多数の命令のチップに三角形状の凹凸が適用される中、「ジャンプ」命令のチップの右辺と、「向き、高さ」のパラメータのチップの左辺には、特別な凹凸(例えば半円形状の凹凸)を適用することができる。このようにすれば、「向き、高さ」のパラメータのチップが他の動作命令のチップのために選択されることを防止できる。
【実施例9】
【0091】
[他の例によるチップ]
チップ40に関する他の例として、チップ40に施した絵柄や形状、大きさは、
図4乃至
図5に示したものに限定されない。絵柄に関して言えば、
図4に示したような抽象的な絵や文字に限らず、例えば、ウサギが走ったり、回転したり、物を拾うような具体的な絵でもよい。その方が幼児にとっては絵と命令の意味との関係が理解し易いであろう。他の例としてトランプやカルタでもよい。また、チップの形状は四辺形に限らず、種々の形状であってよい。例えばウサギが走ったり、寝たり、飛んだりする絵を切り抜いた形状でもよい。
【0092】
また、チップ40の呼び名に関して実施例1ではチップ40と言ったが、これに限らない。例えば、カード、パーツ(part)、ピース(piece)、小片、紙片、エレメント(element)、総称して部品とか物品と呼んでもよい。
チップは、配列しその後に片付けて収納する都合上平面状カードが好ましいが、必ずしも平面状部材に限らない。要は、配列することができる物品であって、物品が持つ絵柄や形状の特性(視認特性という)と命令とが一意に対応付けられるものであれば実現可能である。なお、視認特性を有する物品を、固有の表示を有する部品と呼んでもよいであろう。
【0093】
また、上記実施例ではチップ40の絵柄を画像認識することで命令と関係つけているが、これに限定されない。例えば、各チップ40に絵柄に加えて固有の数字やバーコードを付しておき、その数字やバーコードを認識することで、命令と対応付けすることも可能である。その場合、
図5に示す命令テーブルには数字又はバーコードと命令との関係が登録されることになる。
【0094】
また、チップ40に関する他の例として、チップはユーザが自ら作成して使用することが可能である。例えば、ユーザは、
図4と同じ形状及び絵柄のチップ40を手製で又はコピーにより作成してチップの数を増やすことができる。この場合、ユーザが作製したチップの絵柄が予め決められたものと同じ又は許容の範囲であれば、サーバ1の画像処理においてユーザが作成したチップ40の絵柄も同様の画像として認識するので問題はない。
【実施例10】
【0095】
[その他の例]
上記実施例では、携帯端末2が有するバーコードリーダ207によって、シート30の識別部305を読み取るとした。代案では、カメラ206で識別部305を読み取って、画像認識機能により識別部305が有する識別情報を認識するようにすることもできる。
【0096】
また、上記実施例では、携帯端末2が持つカメラ206でシートに並べられたチップの配列を撮影するとした。代替例によれば、携帯端末のカメラに限らず、通信機能を有するカメラや、或いは通常のデジタルカメラで撮影したチップ配列の画像をUSBメモリやSDメモリに格納しておき、このメモリをプログラム作成用のサーバや端末に装填することでチップ配列の画像を取得することも可能である。
本発明は上記実施例ないし代替例以外にも、種々変形、応用して実施することができる。
【符号の説明】
【0097】
1:サーバ 2:携帯端末 9:ネットワーク
102:情報管理部 103:プログラム作成処理部
104:画像処理部 105:管理情報DB 106:プログラムDB
202:CPU 203:メモリ 204:入力部
205:表示部 206:カメラ 207:バーコードリーダ
208:ネットワーク接続部
30:シート 301:タイトル 302:プログラムエリア
303:スタートマーク 304ガイドライン 305:識別部
40:チップ 50:命令テーブル 70:課題シート
80:カリキュラム管理テーブル 90:ユーザ管理テーブル
100:先生管理テーブル 110:プログラム管理テーブル