以下、実施形態について、図面を参照しつつ詳細に説明する。説明において、同一要素又は同一機能を有する要素には同一の符号を付し、重複する説明を省略する。
〔学習支援システム〕
本実施形態に係る学習支援システム1は、地図上にオブジェクトを表示するコンピュータプログラムの作成を通して、コンピュータプログラミングの学習を支援するシステムである。コンピュータプログラミングの学習は、例えばコンピュータプログラミングに必要な論理的思考の学習を含む。このシステムは、地図上にオブジェクトを表示する作業が有益である学習科目にて用いられる。地図上にオブジェクトを表示する作業が有益である学習科目の具体例としては、学校教育における社会、理科、又は国語等が挙げられる。
図1に示すように、学習支援システム1は、学習支援装置100と、地図サーバ200とを有する。地図サーバ200は、地図データベースを記憶するサーバコンピュータである。地図データベースは、様々な地物の所在地(例えば緯度・経度)、広さ、高さ等の情報を含む。地物の具体例としては、道路、建物等が挙げられる。
学習支援装置100は、インターネット等のネットワークNWを介して地図サーバ200に接続されており、地図サーバ200が記憶する地図データに基づいて、上述したコンピュータプログラミングの学習を支援する。学習支援装置100は、表示デバイス194と、入力デバイス195とを有するコンピュータである。
表示デバイス194は、例えば液晶、有機EL等のモニタであり、作成された上記コンピュータプログラムと、当該コンピュータプログラムに従った上記地図及びオブジェクトを表示する。入力デバイス195は、例えばキーボード、マウス等であり、上記コンピュータプログラムを作成するための操作入力を取得する。入力デバイス195は、所謂タッチパネルとして表示デバイス194に一体化されていてもよい。
学習支援装置100は、記憶部に記憶されている地図を表示させるプログラムに対応する地図表示ブロック及び地図にオブジェクトを表示させるプログラムに対応するオブジェクト表示ブロックを含む複数のプログラムブロックを表示デバイス194のリストウィンドウ(第1の表示領域)に表示することと、複数のプログラムブロック(リストウィンドウが表示する複数のプログラムブロック)からユーザ(学習者)によって選択された複数のプログラムブロックをユーザによって指定された表示順序で表示デバイス194のプログラムウィンドウ(第2の表示領域)に表示することと、オブジェクト表示ブロックに対応するプログラムに従ったオブジェクトの地図における表示位置をユーザの入力に基づいて設定することと、プログラムウィンドウが表示する複数のプログラムブロックを表示順序に従って実行することと、を実行するように構成されている。複数のプログラムブロックを表示順序に従って実行することは、地図表示ブロックに対応するプログラムに従って地図を表示デバイス194に表示することと、オブジェクト表示ブロックに対応するプログラムと、設定部により設定された表示位置とに従って地図にオブジェクトを表示することとを表示順序に従って実行することを含む。
例えば学習支援装置100は、図2に示すように、機能上の構成(以下、「機能ブロック」という。)として、メイン画面表示部111と、リスト表示部113(第1の表示部)と、ブロック記憶部112と、プログラム表示部114(第2の表示部)と、パラメータ設定部117(設定部)と、プログラム実行部118とを有する。
メイン画面表示部111は、上記リストウィンドウと、プログラムウィンドウとを含む学習支援画面を表示する。例えばメイン画面表示部111は、学習支援画面の画像データを生成して表示デバイス194に出力する。これに応じ、表示デバイス194が学習支援画面を表示する。
リスト表示部113は、上記地図表示ブロックと、上記オブジェクト表示ブロックとを含む複数のプログラムブロックをリストウィンドウに表示する。例えばリスト表示部113は、リストウィンドウに複数のプログラムブロックを表示するための画像データを生成して表示デバイス194に出力する。これに応じ、表示デバイス194が複数のプログラムブロックをリストウィンドウに表示する。ブロック記憶部112は、リスト表示部113が表示する複数のプログラムブロックを、複数のプログラムにそれぞれ対応付けて記憶する。
ブロック記憶部112において、地図表示ブロックは、記憶部に記憶されている地図を表示させるプログラム(以下、「地図表示プログラム」という。)に対応付けられている。地図表示プログラムは、地図を表示させるためのデータを地図サーバ200(記憶部)の地図データベースから取得することと、取得したデータに基づいて地図を表示デバイス194に表示させることとを含む。地図表示プログラムは、予め設定された表示エリアの地図を表示させるためのデータを地図データベースから取得するように構成されていてもよい。例えば地図表示プログラムは、予め設定された場所を中心とする地図を予め設定された縮尺で表示させるためのデータを地図データベースから取得するように構成されていてもよい。地図表示ブロックは、地図の表示エリアの入力欄を有していてもよい。一例として、地図表示ブロックは、表示エリアの外縁を定める複数点の緯度・経度の入力欄を有していてもよい。地図表示ブロックが地図の表示エリアの入力欄を有する場合、地図表示プログラムは、当該入力欄に入力された表示エリアで地図を表示させるように構成されていてもよい。
オブジェクト表示ブロックは、地図にオブジェクトを表示させるプログラム(以下、「オブジェクト表示プログラム」という。)に対応付けられている。オブジェクト表示プログラムは、地図にオブジェクトを表示できるように、オブジェクトの表示位置に基づいて地図の表示エリアを更新することと、表示エリアが更新された地図の上記表示位置にオブジェクトを表示することとを含んでいてもよい。なお、表示エリアは、地図の中心位置及び地図の縮尺の少なくとも一方を変更することによって変更される。オブジェクト表示プログラムは、当該オブジェクト表示プログラムの実行前に既に地図に表示された全てのオブジェクト(以下、「既表示オブジェクト」という。)と、当該オブジェクト表示プログラムにおける表示対象のオブジェクト(以下、「新規表示オブジェクト」という。)とを表示できるように、地図の表示エリアを更新するように構成されていてもよい。オブジェクト表示プログラムは、全ての既表示オブジェクトと新規オブジェクトとが、地図内の所定エリア内に収まる範囲で、地図の表示を最大化するように地図の表示エリアを更新するように構成されていてもよい。オブジェクト表示プログラムは、既存表示オブジェクトがない場合、地図の中心位置と、新規表示オブジェクトとを表示できるように、地図の表示エリアを更新するように構成されていてもよい。
オブジェクト表示ブロックは、オブジェクトの表示位置の入力欄を有していてもよい。一例として、オブジェクト表示ブロックは、オブジェクトの表示位置を定める点の緯度・経度の入力欄を有していてもよい。オブジェクト表示ブロックが表示位置の入力欄を有する場合、オブジェクト表示プログラムは、当該入力欄に入力された表示位置にオブジェクトを表示させるように構成される。オブジェクト表示ブロックは、地図に表示するオブジェクトの入力欄を有していてもよい。この場合、オブジェクト表示プログラムは、当該入力欄に入力されたオブジェクトを地図に表示させるように構成される。オブジェクト表示ブロックは、地図におけるオブジェクトの表示サイズの入力欄を有していてもよい。この場合、オブジェクト表示プログラムは、当該入力欄に入力された表示サイズにてオブジェクトを地図に表示させるように構成される。
リスト表示部113が表示する複数のプログラムブロックは、表示統合ブロックを更に含んでいてもよい。ブロック記憶部112において、表示統合ブロックは、地図に表示される複数のオブジェクトの種類と表示位置とに基づいて、同一種類の複数のオブジェクトを1つに統合して表示させるプログラム(以下、「表示統合プログラム」という。)に対応付けられている。例えば表示統合プログラムは、地図に表示される複数のオブジェクトの種類と表示位置とに基づいて上記同一種類の複数のオブジェクトを選択することと、当該同一種類の複数のオブジェクトを1つのオブジェクトに統合することと、当該1つのオブジェクトに統合した前記オブジェクトの数に応じて当該1つのオブジェクトの表示状態を変更することと、を含む。一例として、表示統合プログラムは、重なって地図に表示される同一種類の複数のオブジェクトを選択することと、当該同一種類の複数のオブジェクトを1つのオブジェクトに統合することと、当該1つのオブジェクトに統合されたオブジェクトの数(以下、「統合数」という。)に応じて、当該1つのオブジェクトの表示状態を変更することとを含む。表示状態の変更の一例としては、表示を拡大することが挙げられる。表示を拡大することは、予め記憶された複数サイズの画像において、現在選択されている画像を、より大きいサイズの画像に変更することを含む。また、表示状態の変更の他の例としては、統合前のオブジェクトの画像を他の画像に置き換えることを含む。他の画像の具体例としては、統合前のオブジェクトの画像に統合数を付した画像等が挙げられる。
なお、同一種類の複数のオブジェクトを1つのオブジェクトに統合するとは、地図における複数のオブジェクトを、1つのオブジェクトに置換することを意味する。表示統合プログラムは、統合後のオブジェクトの表示位置を、統合前の複数のオブジェクトの表示位置に基づいて算出するように構成されていてもよい。例えば表示統合プログラムは、統合前の複数のオブジェクトの分布エリアにおいて最も中心寄りに位置するオブジェクトの表示位置を統合後のオブジェクトの表示位置とするように構成されていてもよい。また、表示統合プログラムは、統合前の複数のオブジェクトの平均位置を統合後のオブジェクトの表示位置として算出するように構成されていてもよい。
プログラム表示部114は、リストウィンドウが表示する複数のプログラムブロックからユーザが選択した複数のプログラムブロック(以下、「実行対象ブロック」という。)をユーザが指定した表示順序で並べてプログラムウィンドウに表示する。例えばプログラム表示部114は、複数の実行対象ブロックを選択し、表示順序を指定する操作入力を入力デバイス195から取得する。プログラム表示部114は、上記操作入力に従って複数の実行対象ブロックをプログラムウィンドウに表示するための画像データを生成し、当該画像データを表示デバイス194に出力する。これに応じ、表示デバイス194が、複数の実行対象ブロックを上記操作入力に従ってプログラムウィンドウに表示する。
上記操作入力の具体例としては、リストウィンドウのいずれかのプログラムブロックをプログラムウィンドウにコピーするドラッグアンドドロップ操作が挙げられる。ドラッグアンドドロップ操作によれば、実行対象ブロックの選択と、表示順序の指定とを一連の操作で行うことができる。表示順序は、プログラムウィンドウにおける既存のプログラムブロックの位置と、新たにドラッグされたプログラムブロックのドロップ位置との関係に基づいて指定される。
パラメータ設定部117は、実行対象ブロックごとに、ユーザが設定したパラメータを設定する。例えばパラメータ設定部117は、実行対象ブロックごとにパラメータを指定する操作入力を入力デバイス195から取得し、上記操作入力に従ったパラメータを実行対象ブロックごとにプログラム表示部114に表示させる。パラメータの具体例としては、上述した地図の表示エリア、オブジェクトの表示位置、及び地図に表示するオブジェクト等が挙げられる。
パラメータ設定部117は、プログラムウィンドウにオブジェクト表示ブロックが追加された場合に、当該オブジェクト表示ブロックに従ったオブジェクトの表示位置をユーザの入力に基づいて設定する。例えばパラメータ設定部117は、プログラムウィンドウにオブジェクト表示ブロックが追加された場合に、地図データベースに基づいて地図を表示し、当該オブジェクト表示ブロックに従ったオブジェクトの表示位置を、当該地図においてユーザが指定した位置に従って設定する。プログラムの実行により表示される地図と区別するために、オブジェクト表示ブロックが追加されたタイミングで表示される地図を以下では「入力補助用地図」という。パラメータ設定部117は、プログラムウィンドウにオブジェクト表示ブロックが追加された場合に、地図データベースに基づいて入力補助用地図の画像データを生成し、当該画像データを表示デバイス194に出力する。これに応じ、表示デバイス194が、入力補助用地図を表示する。なお、パラメータ設定部117が入力補助用地図を表示するタイミングは、オブジェクト表示ブロックがプログラムウィンドウに追加されたタイミングに限られない。例えばパラメータ設定部117は、地図表示ブロックがプログラムウィンドウに追加されたタイミングで入力補助用地図を表示してもよい。
パラメータ設定部117は、入力補助用地図においてオブジェクトの表示位置を指定する操作入力を入力デバイス195から取得し、当該操作入力により指定された表示位置(以下、「指定位置」という。)を、プログラム表示部114によりオブジェクト表示ブロックの表示位置の入力欄に表示させる。プログラム表示部114は、上記入力欄に上記指定位置を表示させるための画像データを生成し、表示デバイス194に出力する。これに応じ、表示デバイス194が、上記入力欄に上記指定位置を表示させる。上記操作入力の具体例としては、入力補助用地図の任意の点から、オブジェクト表示ブロックの表示位置の入力欄へのドラッグアンドドロップ操作が挙げられる。
パラメータ設定部117は、プログラムウィンドウにオブジェクト表示ブロックが追加された場合に、当該オブジェクト表示ブロックに従って表示するオブジェクト(以下、「表示対象オブジェクト」という。)をユーザの入力に基づいて設定する。パラメータ設定部117は、表示対象オブジェクトを指定する操作入力を入力デバイス195から取得し、当該操作入力により指定された表示対象オブジェクトを、プログラム表示部114によりオブジェクト表示ブロックのオブジェクトの入力欄に表示させる。プログラム表示部114は、上記入力欄に上記表示対象オブジェクトのアイコンを表示させるための画像データを生成し、表示デバイス194に出力する。これに応じ、表示デバイス194が、上記入力欄に上記表示対象オブジェクトのアイコンを表示させる。
プログラム実行部118は、プログラムウィンドウが表示する複数のプログラムブロックを表示順序に従って実行する。この際に、プログラム実行部118は、地図表示ブロックに対応するプログラム(上記地図表示プログラム)に従って地図を表示することと、オブジェクト表示ブロックに対応するプログラム(上記オブジェクト表示プログラム)に従って地図にオブジェクトを表示させることとを表示順序に従って実行する。プログラムウィンドウにおいてプログラムブロックのパラメータが表示されている場合、プログラム実行部118は、当該プログラムブロックに対応するプログラムを当該パラメータに従って実行する。
プログラム実行部118は、地図表示プログラムに従って地図データベースに基づき地図の画像データを生成し、当該画像データを表示デバイス194に出力する。これに応じ、表示デバイス194が地図を表示する。また、プログラム実行部118は、オブジェクト表示プログラムに従って地図における上記表示位置にオブジェクトを表示するための画像データを生成し、当該画像データを表示デバイス194に出力する。これに応じ、表示デバイス194が、地図における上記表示位置にオブジェクトを表示する。
上述したように、オブジェクト表示プログラムは、表示対象のオブジェクトを表示できるように、オブジェクトの表示位置に基づいて地図の表示エリアを更新することと、表示エリアが更新された地図の上記表示位置にオブジェクトを表示することとを含んでいてもよい。この場合、プログラム実行部118は、オブジェクト表示プログラムに従って、地図にオブジェクトを表示できるように、当該オブジェクトの表示位置に基づいて地図の表示エリアを更新する。
プログラム実行部118は、上記表示統合プログラムに従って、地図に表示される複数のオブジェクトの種類と表示位置とに基づいて上記同一種類の複数のオブジェクト(以下、「統合対象オブジェクト」という。)を選択することと、当該複数の統合対象オブジェクトを1つのオブジェクトに統合することと、当該複数の統合対象オブジェクトの数に応じて当該1つのオブジェクトの表示状態を変更することと、を実行する。例えばプログラム実行部118は、複数の統合対象オブジェクトを1つの統合オブジェクトに統合し、当該複数の統合対象オブジェクトの数に応じて統合オブジェクトの表示サイズを大きくするように画像データを更新し、更新後の画像データを表示デバイス194に出力する。これに応じ、表示デバイス194が、複数の統合対象オブジェクトを1つの統合オブジェクトに統合し、統合対象オブジェクトの数に応じて統合オブジェクトを拡大表示する。
学習支援装置100は、少なくともいずれか1つの上記パラメータを設定するための複数のアイコンを表示し、複数のアイコンからユーザが選択したアイコンに従って当該パラメータを設定するように構成されていてもよい。例えば学習支援装置100は、アイコン表示部121と、アイコン記憶部124とを更に有してもよい。
例えばアイコン表示部121は、複数のオブジェクトにそれぞれ関連付けられた複数のアイコンである複数のオブジェクトアイコンを表示する。オブジェクトアイコンは、地図に表示されるオブジェクトの画像と同じ画像であってもよいし、当該画像データを圧縮して表示サイズを小さくした画像であってもよい。
アイコン記憶部124は、アイコン表示部121が表示する複数のアイコンを、複数のパラメータにそれぞれ対応付けて記憶する。アイコン記憶部124において、オブジェクトアイコンは、オブジェクト(画像又はテキスト等)に対応付けられている。位置アイコンは、位置(例えば当該位置アイコンが含む地名の代表地点の緯度・経度)に対応付けられている。
アイコン表示部121が複数のオブジェクトアイコンを表示する構成において、パラメータ設定部117は、プログラムウィンドウにオブジェクト表示ブロックが追加された場合に、当該オブジェクト表示ブロックに従って表示するオブジェクト(上記表示対象オブジェクト)を、複数のオブジェクトアイコンからユーザが選択したアイコン(以下、「選択オブジェクトアイコン」という。)に従って設定してもよい。例えばパラメータ設定部117は、複数のオブジェクトアイコンからいずれか1つのオブジェクトアイコンを選択する操作入力を入力デバイス195から取得し、当該操作入力により選択されたオブジェクトアイコン(以下、「選択オブジェクトアイコン」という。)に対応する画像を、プログラム表示部114によりオブジェクト表示ブロックのオブジェクトの入力欄に表示させる。オブジェクトアイコンに対応する画像は、オブジェクトアイコンと同じ画像であってもよいし、オブジェクトアイコンを縮小した画像であってもよい。プログラム実行部118は、アイコン記憶部124において選択オブジェクトアイコンに対応付けられたオブジェクトを、上記表示対象オブジェクトとする。
アイコン表示部121が複数の位置アイコンを表示する構成において、パラメータ設定部117は、プログラムウィンドウにオブジェクト表示ブロックが追加された場合に、当該オブジェクト表示ブロックに従ったオブジェクトの表示位置を、複数の位置のアイコンからユーザが選択したアイコンに従って設定してもよい。例えばパラメータ設定部117は、複数の位置アイコンからいずれか1つの位置アイコンを選択する操作入力を入力デバイス195から取得し、当該操作入力により選択された位置アイコン(以下、「選択位置アイコン」という。)に対応する画像又は文字列等を、プログラム表示部114によりオブジェクト表示ブロックの表示位置の入力欄に表示させる。プログラム実行部118は、アイコン記憶部124において選択位置アイコンに対応付けられた位置を、上記表示位置とし、地図における当該表示位置にオブジェクトを表示させる。以下、学習支援画面の具体例を参照しながら、学習支援装置100の機能をより具体的に例示する。
図3は、学習支援画面を例示する模式図である。図3の例において、メイン画面表示部111は、メニューバー311と、ツールバー312と、リストウィンドウ320と、プログラムウィンドウ340と、地図ウィンドウ350と、アイコンウィンドウ360とを有する学習支援画面300を表示する。メニューバー311は、「ファイル」、「編集」等のメニューを表示する。ツールバー312は、ブログラムの実行を指示する実行開始ツール312a等を表示する。リストウィンドウ320には、リスト表示部113が上記複数のプログラムブロックを表示する。
例えばリスト表示部113は、上記複数のプログラムブロックとして、地図表示ブロック321と、オブジェクト表示ブロック322,323と、始点指示ブロック324と、終点指示ブロック325と、防災データ表示ブロック326と、実行開始ブロック327と、イベントブロック328とをリストウィンドウ320に表示する。また、アイコン表示部121は、複数のイベントアイコン331をリストウィンドウ320に表示する。
ブロック記憶部112において、地図表示ブロック321は、上記地図表示プログラムに対応付けられている。この地図表示プログラムは、予め設定された表示エリアの地図を表示させるためのデータを地図データベースから取得するように構成されている。オブジェクト表示ブロック322,323は、上記オブジェクト表示プログラムに対応付けられている。オブジェクト表示ブロック322は、オブジェクトの入力欄322aと、表示位置の入力欄322bとを有している。オブジェクト表示ブロック322に対応するオブジェクト表示プログラムは、入力欄322aに入力されたオブジェクトを、入力欄322bに入力された表示位置に表示させるように構成される。
オブジェクト表示ブロック323は、オブジェクトのデータ形式の入力欄323aと、オブジェクトの入力欄323bと、表示位置の入力欄323cとを有している。オブジェクト表示ブロック323に対応するオブジェクト表示プログラムは、入力欄323aに入力されたデータ形式にて、入力欄323bに入力されたオブジェクトを、入力欄323cに入力された表示位置に表示させるように構成される。なお、オブジェクト表示ブロック323は、入力欄323aを有するのに代えて、複数のデータ形式ごとにオブジェクトの入力欄323bを有してもよい。この場合、入力欄323bごとに、入力可能なデータ形式がテキスト等で表示されていてもよい。また、リスト表示部113は、複数のデータ形式ごとにオブジェクト表示ブロック322を有していてもよい。この場合、オブジェクト表示ブロック322ごとに、入力可能なデータ形式がテキスト等で表示されていてもよい。
始点指示ブロック324は、地図内にラインを記入するために、当該ラインの始点を指定するプログラム(以下、「始点指示プログラム」という。)に対応付けられている。始点指示ブロック324は、地図における始点位置(例えば緯度・経度)の入力欄324aを有している。終点指示ブロック325は、上記ラインの終点を指定して当該終点までのラインを表示させるプログラム(以下、「終点指示プログラム」という。)に対応付けられている。終点指示ブロック325は、地図における終点位置(例えば緯度・経度)の入力欄325aを有している。なお、始点指示ブロック324及び終点指示ブロック325は、地図に線状のオブジェクトを表示することを指示しているので、オブジェクト表示ブロックの一種である。
防災データ表示ブロック326は、ハザードマップ等の防災データを地図に重ねて表示させるプログラム(以下、「防災データ表示プログラム」という。)に対応付けられている。ハザードマップは、例えば地図サーバ200に記憶される。実行開始ブロック327は、実行開始ツール312aに対する操作(例えばクリック)を待機するプログラム(以下、「開始待機プログラム」という。)に対応付けられている。
イベントブロック328は、ユーザにより設定されたイベントを待機するプログラム(以下、「イベント待機プログラム」という。)に対応付けられている。例えばイベントブロック328は、イベントの入力欄328aを有している。
リストウィンドウ320には、アイコン表示部121が、複数のイベントにそれぞれ対応付けられた複数のイベントアイコン331を表示する。イベントの具体例としては、所定時間の経過、入力デバイス195への所定入力等が挙げられる。所定入力の具体例としては、キーボードの所定のキーを押すこと、マウスをクリックすること等が挙げられる。イベントアイコン331は、上記入力欄328aに入力すべきイベントの指定に用いられる。
プログラムウィンドウ340には、プログラム表示部114が上記複数の実行対象ブロックを上記表示順序で表示する。プログラムウィンドウ340においては、上から下に向かう方向が実行順序に対応している。このため、プログラム実行部118は、プログラムウィンドウ340が表示する複数のプログラムブロックを、上から下への表示順序に従って実行する。
地図ウィンドウ350には、プログラム実行部118が、地図表示ブロック321に対応する地図表示プログラムに従って地図を表示する。アイコンウィンドウ360には、アイコン表示部121が複数のオブジェクトアイコンを表示する。例えばアイコン表示部121は、複数の危険アイコン364と、複数の避難アイコン365とをアイコンウィンドウ360に表示する。複数の危険アイコン364は、複数種類の災害の危険性をそれぞれ示す複数のオブジェクト(例えば災害の種類を示す画像)にそれぞれ対応付けられている。複数の避難アイコン365は、複数種類の避難場所をそれぞれ示す複数のオブジェクト(例えば避難場所の種類を示す画像)のアイコンである。
アイコン表示部121は、複数のオブジェクトアイコンの一種として、追加データアイコン366をアイコンウィンドウ360に更に表示してもよい。追加データアイコン366は、ユーザが追加した写真(例えば現地調査で撮影された写真)等のオブジェクトに対応付けられている。
図3の例において、ユーザは、リストウィンドウ320から任意でプログラムブロックを選択し、ドラッグアンドドロップ操作等によりプログラムウィンドウ340に配置する。上述のように、プログラムウィンドウ340においては、上から下に向かう方向が実行順序に対応している。このため、ユーザは、複数の実行対象ブロックが、実行させるべき順序に従って上から下に並ぶように、各実行対象ブロックを配置する。
ユーザが、オブジェクト表示ブロック322,323をプログラムウィンドウ340に追加すると、パラメータ設定部117は、プログラムウィンドウ340内に補助地図ウィンドウ370を表示し、補助地図ウィンドウ370内に上記入力補助用地図を表示する(図4参照)。なお、パラメータ設定部117は、プログラム実行部118が地図ウィンドウ350に表示する地図と同じ表示エリアの入力補助用地図を補助地図ウィンドウ370内に表示してもよい。また、パラメータ設定部117は、補助地図ウィンドウ370に代えて、地図ウィンドウ350に入力補助用地図を表示してもよい。
ユーザが、入力補助用地図の任意の点から、入力欄322b,323c(プログラムウィンドウ340に配置されたオブジェクト表示ブロック322,323の入力欄322b,323c)へのドラッグアンドドロップを行うと、パラメータ設定部117が、当該点に対応する緯度・経度を当該入力欄322b,323cに表示させる。ユーザが、アイコンウィンドウ360の任意のオブジェクトアイコンを入力欄322a,323b(プログラムウィンドウ340に配置されたオブジェクト表示ブロック322,323の入力欄322a,323b)にドラッグアンドドロップすると、パラメータ設定部117が、当該オブジェクトアイコンに対応する画像を当該入力欄322a,323bに表示させる。
ユーザが、オブジェクト表示ブロック323の入力欄323aにおいて、オブジェクトのデータ形式を指定すると、パラメータ設定部117は、入力欄323bに入力可能なオブジェクトのデータ形式を変更する。例えば、入力欄323aにおいて画像データが指定されると、パラメータ設定部117は、入力欄323bに入力可能なオブジェクトのデータ形式を画像データに制限する。
また、入力欄323aにおいてテキストデータが指定されると、パラメータ設定部117は、入力欄323bに入力可能なオブジェクトのデータ形式をテキストデータに制限する。この場合、パラメータ設定部117は、入力欄323bへのテキストの直接入力を可能にし、ユーザが入力欄323bに入力したテキストデータをそのまま入力欄323bに表示させてもよい。入力欄323bにテキストデータが入力された場合、当該テキストデータに対応する文字列を含むオブジェクト(例えば当該文字列を含む吹き出し画像)が表示対象のオブジェクトとなる。
ユーザが、イベントブロック328をプログラムウィンドウ340に追加し、任意のイベントアイコン331を入力欄328aにドラッグアンドドロップすると、パラメータ設定部117が、当該任意のイベントアイコン331に対応するイベントを入力欄328aに表示させる。
ユーザが、始点指示ブロック324をプログラムウィンドウ340に追加し、入力欄324aに上記始点位置を入力すると、パラメータ設定部117が当該始点位置を入力欄324aに表示させる。ユーザが、終点指示ブロック325をプログラムウィンドウ340に追加し、入力欄325aに上記終点位置を入力すると、パラメータ設定部117が当該終点位置を入力欄325aに表示させる。
なお、始点位置及び終点位置の入力に上記入力補助用地図を利用することも可能である。例えば、ユーザが、入力補助用地図の任意の点から、入力欄324a,325aへのドラッグアンドドロップを行うと、パラメータ設定部117が、当該任意の点に対応する緯度・経度を入力欄324a,325aに表示させる。
プログラム実行部118は、プログラムウィンドウ340が表示する複数のプログラムブロックにそれぞれ対応付けられた複数のプログラムをプログラムウィンドウ340における表示順序(上から下に向かう表示順序)で実行する。プログラム実行部118は、実行開始ブロック327に対応する開始待機プログラムに従って、実行開始ツール312aが操作されるまで次のプログラムブロックの実行を待機する。プログラム実行部118は、イベントブロック328に対応するイベント待機プログラムに従って、入力欄328aのイベントが生じるまで次のプログラムブロックの実行を待機する。なお、イベントブロック328は、ユーザによる学習成果の発表等において、プログラムの実行タイミングを発表の進捗に合わせる際等に用いられる。学習支援装置100は、イベントブロック328をプログラムウィンドウ340から一括して消去する機能を有していてもよい。
プログラム実行部118は、地図表示ブロック321に対応する地図表示プログラムに従って地図を地図ウィンドウ350に表示する。プログラム実行部118は、オブジェクト表示ブロック322,323に対応するオブジェクト表示プログラムに従って、地図ウィンドウ350の地図にオブジェクトを表示する。なお、プログラム実行部118は、ユーザの指定に応じて地図ウィンドウ350の表示サイズを変更するように構成されていてもよい。例えばプログラム実行部118は、ユーザの指定に応じて、地図ウィンドウ350を表示デバイス194に全画面表示させてもよい。必要に応じ、プログラム実行部118は、オブジェクト表示プログラムに従って、地図にオブジェクトを表示できるように、当該オブジェクトの表示位置に基づいて地図ウィンドウ350における地図の表示エリアを更新し、表示エリアが更新された地図の当該表示位置に当該オブジェクトを表示する。
プログラムウィンドウ340において、始点指示ブロック324と終点指示ブロック325とが上下に並ぶ場合、プログラム実行部118は、始点指示ブロック324の入力欄324aで定められた始点と、終点指示ブロック325の入力欄325aで定められた終点とを結ぶ直線を、終点指示プログラムに従って地図ウィンドウ350の地図に表示する。また、終点指示ブロック325と終点指示ブロック325とが上下に並ぶ場合、プログラム実行部118は、先行する終点指示ブロック325の入力欄325aで定められた終点と、後続する終点指示ブロック325の入力欄325aで定められた終点とを結ぶ直線を、後続する終点指示ブロック325に対応する終点指示プログラムに従って、地図ウィンドウ350の地図に表示する。このため、始点指示ブロック324の下に、複数の終点指示ブロック325が順に並んでいる場合には、地図ウィンドウ350の地図に折れ線が表示される。なお、始点指示ブロック324及び終点指示ブロック325による直線の表示は、避難経路の表示等に利用可能である。
プログラム実行部118は、防災データ表示ブロック326に対応する防災データ表示プログラムに従って、ハザードマップを地図ウィンドウ350の地図に重ねて表示する。これにより、災害の危険性を示すオブジェクト、及び避難場所を示すオブジェクトの配置と、ハザードマップとを対比し、各オブジェクトの配置の妥当性を検証することができる。
図5は、学習支援画面の変形例を示す模式図である。図5の例においても、メイン画面表示部111は、メニューバー311と、ツールバー312と、リストウィンドウ320と、プログラムウィンドウ340と、地図ウィンドウ350と、アイコンウィンドウ360とを有する学習支援画面300を表示する。
リスト表示部113は、上記複数のプログラムブロックとして、地図表示ブロック421と、オブジェクト表示ブロック422と、発表順表示ブロック423と、発表内容追加ブロック424と、表示統合ブロック425と、表示エリア指定ブロック426と、表示商品指定ブロック427と、実行開始ブロック428と、イベントブロック429とをリストウィンドウ320に表示する。また、アイコン表示部121は、複数のイベントアイコン431をリストウィンドウ320に表示する。
ブロック記憶部112において、地図表示ブロック421及びオブジェクト表示ブロック422は、上述した地図表示ブロック321及びオブジェクト表示ブロック322と同様に、地図表示プログラム及びオブジェクト表示プログラムにそれぞれ対応付けられている。オブジェクト表示ブロック422は、入力欄322a,322bと同じ入力欄422a,422bを有する。
発表順表示ブロック423は、発表順序を表示させるプログラム(以下、「発表順表示プログラム」という。)に対応付けられている。発表順序の表示は、例えばユーザによる発表の補助に用いられる。発表順表示プログラムは、複数の発表内容をユーザによって指定された発表順序で並べて表示させるように構成されている。発表内容追加ブロック424は、上記発表順序に、発表内容を追加させるプログラム(以下、「発表内容追加プログラム」という。)に対応付けられている。発表内容追加ブロック424は、発表内容の入力欄424aを有している。発表内容追加プログラムは、入力欄424aに入力された発表内容を、上記発表順序における複数の発表内容に追加するように構成されている。
表示統合ブロック425は、上記表示統合プログラムに対応付けられている。表示エリア指定ブロック426は、プログラム実行部118による地図の表示エリアを指定するプログラム(以下、「表示エリア指定プログラム」という。)に対応付けられている。表示エリア指定ブロック426は、表示エリアの入力欄426aを有している。表示エリア指定プログラムは、地図の表示エリアを、入力欄426aに入力された表示エリアに変更するように構成されている。表示商品指定ブロック427は、プログラム実行部118が地図に表示するオブジェクトの種類を指定するプログラム(以下、「表示商品指定プログラム」という。)に対応付けられている。表示商品指定ブロック427は、オブジェクトの入力欄427aを有している。表示商品指定プログラムは、地図に表示するオブジェクトの種類を入力欄427aに入力された商品に限定するように構成されている。実行開始ブロック428及びイベントブロック429は、実行開始ブロック327及びイベントブロック328と同様に、開始待機プログラム及びイベント待機プログラムにそれぞれ対応付けられている。イベントブロック429は、入力欄328aと同じ入力欄429aを有している。イベントアイコン431は、イベントアイコン331と同じである。
アイコンウィンドウ360には、アイコン表示部121が複数のオブジェクトアイコンと、複数の位置アイコンと、複数のエリアアイコンとを表示する。複数のエリアアイコンは、地図における複数のエリアにそれぞれ対応付けられている。
例えばアイコン表示部121は、複数のオブジェクトアイコンとして、複数の商品アイコン464をアイコンウィンドウ360に表示する。複数の商品アイコン464は、複数種類の商品をそれぞれ示す。なお、図示されているのは、複数種類の野菜をそれぞれ示す複数のオブジェクトのアイコンである。
アイコン表示部121は、複数の位置アイコンとして、複数の産地アイコン465をアイコンウィンドウ360に表示する。複数の産地アイコン465には、複数の県を示すテキストがそれぞれ記入されている。各産地アイコン465は、アイコン記憶部124において、県(産地アイコン465内に記載された県)の代表地点の緯度・経度に対応付けられている。
アイコン表示部121は、複数のエリアアイコンとして、複数の地方データアイコン466をアイコンウィンドウ360に表示する。複数の地方データアイコン466には、複数の地方を示すテキストがそれぞれ記入されている。各地方データアイコン466は、アイコン記憶部124において、地方(地方データアイコン466内に記載された地方)を含む表示エリアに対応付けられている。例えば表示エリアは、当該エリアを囲む多角形の複数の頂点の緯度・経度等により示されている。なお、以上においては、位置アイコンが1点に対応付けられ、エリアアイコンが広さを有する1エリアに対応付けられているが、これに限られない。位置アイコンが1エリアに対応付けられ、エリアアイコンが1点に対応付けられていてもよい。エリアアイコンが1点に対応付けられている場合、アイコン表示部121は、当該1点を含む地図を所定の縮尺で表示する。
図5の例においても、ユーザは、リストウィンドウ320から任意でプログラムブロックを選択し、ドラッグアンドドロップ操作等によりプログラムウィンドウ340に配置する。ユーザが、オブジェクト表示ブロック422をプログラムウィンドウ340に追加し、任意の商品アイコン464をオブジェクト表示ブロック422の入力欄422aにドラッグアンドドロップすると、パラメータ設定部117が、上記任意の商品アイコン464を入力欄422aに表示させる。
ユーザが、任意の産地アイコン465をオブジェクト表示ブロック422の入力欄422bにドラッグアンドドロップすると、パラメータ設定部117が、上記任意の産地アイコン465に対応付けられた位置を入力欄422bに表示させる。このように、産地アイコン465による表示位置の指定が可能であるため、パラメータ設定部117は上述した入力補助用地図の表示を行わない。
ユーザが、発表内容追加ブロック424をプログラムウィンドウ340に追加し、アイコンウィンドウ360の任意のアイコンを入力欄424aにドラッグアンドドロップすると、パラメータ設定部117が、上記任意のアイコンを発表内容のアイコンとして入力欄424aに表示させる。
ユーザが、表示エリア指定ブロック426をプログラムウィンドウ340に追加し、任意の地方データアイコン466を入力欄426aにドラッグアンドドロップすると、パラメータ設定部117が、上記任意の地方データアイコン466に対応する表示エリアを入力欄426aに表示させる。
ユーザが、表示商品指定ブロック427をプログラムウィンドウ340に追加し、アイコンウィンドウ360の任意の商品アイコン464を入力欄427aにドラッグアンドドロップすると、パラメータ設定部117が、上記任意の商品アイコン464に対応する画像を入力欄427aに表示させる。
プログラム実行部118は、プログラムウィンドウ340が表示する複数のプログラムブロックにそれぞれ対応付けられた複数のプログラムをプログラムウィンドウ340における表示順序(上から下に向かう表示順序)に従って実行する。プログラム実行部118は、実行開始ブロック428に対応する開始待機プログラムに従って、実行開始ツール312aが操作されるまで次のプログラムブロックの実行を待機する。プログラム実行部118は、イベントブロック429に対応するイベント待機プログラムに従って、入力欄429aのイベントが生じるまで次のプログラムブロックの実行を待機する。
プログラム実行部118は、発表順表示ブロック423に対応する発表順表示プログラムに従って、発表順序470を地図ウィンドウ350内等に表示する。プログラム実行部118は、発表内容追加ブロック424に対応する発表内容追加プログラムに従って、発表内容追加ブロック424の入力欄424aに入力された発表内容を、発表順序における複数の発表内容に追加する。プログラムウィンドウ340に複数の発表内容追加ブロック424が配置されている場合、複数の発表内容追加ブロック424にそれぞれ対応する複数の発表内容が、複数の発表内容追加ブロック424の実行順序に応じて発表順序に順次追加される。
プログラム実行部118は、地図表示ブロック421に対応する地図表示プログラムに従って地図を地図ウィンドウ350に表示する。プログラム実行部118は、オブジェクト表示ブロック422に対応するオブジェクト表示プログラムに従って、地図ウィンドウ350の地図にオブジェクトを表示する。必要に応じ、プログラム実行部118は、オブジェクト表示プログラムに従って、地図にオブジェクトを表示できるように、当該オブジェクトの表示位置に基づいて地図ウィンドウ350における地図の表示エリアを更新し、表示エリアが更新された地図の当該表示位置に当該オブジェクトを表示する。プログラム実行部118は、表示エリア指定ブロック426に対応する表示エリア指定プログラムに従って、地図ウィンドウ350における地図の表示エリアを変更する。
プログラム実行部118は、表示商品指定ブロック427に対応する表示商品指定プログラムに従って、表示商品指定ブロック427の入力欄427aに入力されたオブジェクトを残し、その他のオブジェクトを地図ウィンドウ350の地図から消去する。これにより、地図ウィンドウ350の地図に表示されるオブジェクトが、表示商品指定ブロック427の入力欄427aに入力されたオブジェクトに絞られる。
図6に示すように、複数のオブジェクト表示ブロック422の後に表示統合ブロック425が配置される場合、プログラム実行部118は、表示統合ブロック425に対応する表示統合プログラムに従って、重なって地図に表示される同一種類の複数のオブジェクトを1つのオブジェクトに統合し、当該1つのオブジェクトに統合されたオブジェクトの数に応じて、当該1つのオブジェクトの表示サイズを拡大する。図6においては、複数のオブジェクトが統合された1つのオブジェクト464aが、他のオブジェクト464b,464cに比較して拡大されている。
図7は、学習支援装置100のハードウェア構成を例示するブロック図である。図7に示すように、学習支援装置100は、回路190を有する。回路190は、少なくとも一つのプロセッサ191と、メモリ192と、ストレージ193と、上述の表示デバイス194と、上述の入力デバイス195と、ネットワークアダプタ196とを有する。ストレージ193は、コンピュータによって読み取り可能な不揮発型の記憶媒体(例えばフラッシュメモリ)である。ストレージ193は、記憶部に記憶されている地図を表示させるプログラムに対応する地図表示ブロック及び地図にオブジェクトを表示させるプログラムに対応するオブジェクト表示ブロックを含む複数のプログラムブロックを表示デバイス194のリストウィンドウ(第1の表示領域)に表示することと、複数のプログラムブロック(リストウィンドウが表示する複数のプログラムブロック)からユーザ(学習者)によって選択された複数のプログラムブロックをユーザによって指定された表示順序で表示デバイス194のプログラムウィンドウ(第2の表示領域)に表示することと、オブジェクト表示ブロックに対応するプログラムに従ったオブジェクトの地図における表示位置をユーザの入力に基づいて設定することと、プログラムウィンドウが表示する複数のプログラムブロックを表示順序に従って実行することと、を学習支援装置100に実行させるプログラムを記憶している。複数のプログラムブロックを表示順序に従って実行することは、地図表示ブロックに対応するプログラムに従って地図を表示デバイス194に表示することと、オブジェクト表示ブロックに対応するプログラムと、前記設定部により設定された表示位置とに従って地図にオブジェクトを表示することとを表示順序に従って実行することを含む。
メモリ192は、ストレージ193からロードしたプログラム及びプロセッサ191による演算結果等を一時的に記憶する。プロセッサ191は、メモリ192と協働して上記プログラムを実行することで、学習支援装置100の各機能ブロックを構成する。表示デバイス194は、プロセッサ191からの指令に応じて、コンピュータプログラム、地図及びオブジェクトを表示する。入力デバイス195は、プロセッサ191からの指令に応じて、ユーザによる操作入力を取得する。ネットワークアダプタ196は、インターネット等のネットワークNWを介して地図サーバ200に接続されており、プロセッサ191からの指令に応じて地図サーバ200との間でデータの送受信を行う。
〔学習支援手順〕
続いて、学習支援方法の一例として、学習支援装置100が実行する学習支援手順を例示する。この手順は、記憶部に記憶されている地図を表示させるプログラムに対応する地図表示ブロック及び地図にオブジェクトを表示させるプログラムに対応するオブジェクト表示ブロックを含む複数のプログラムブロックを表示デバイス194のリストウィンドウ(第1の表示領域)に表示することと、複数のプログラムブロック(リストウィンドウが表示する複数のプログラムブロック)からユーザ(学習者)によって選択された複数のプログラムブロックをユーザによって指定された表示順序で表示デバイス194のプログラムウィンドウ(第2の表示領域)に表示することと、オブジェクト表示ブロックに対応するプログラムに従ったオブジェクトの地図における表示位置をユーザの入力に基づいて設定することと、プログラムウィンドウが表示する複数のプログラムブロックを表示順序に従って実行することと、を含む。複数のプログラムブロックを表示順序に従って実行することは、地図表示ブロックに対応するプログラムに従って地図を表示デバイス194に表示することと、オブジェクト表示ブロックに対応するプログラムと、前記設定部により設定された表示位置とに従って地図にオブジェクトを表示することとを表示順序に従って実行することと、を含む。以下、学習支援手順を、ユーザによるコンピュータプログラムの構築を支援するプログラミング手順と、プログラムの実行手順とに分けて詳細に例示する。
(プログラミング支援手順)
図8に示すように、学習支援装置100は、まずステップS01,S02,S03,S04を実行する。ステップS01では、メイン画面表示部111が、上記学習支援画面300を表示デバイス194に表示させる。リスト表示部113が、上記地図表示ブロック321と、上記オブジェクト表示ブロック322,323とを含む複数のプログラムブロックをリストウィンドウ320に表示する。アイコン表示部121が、少なくともいずれか1つの上記パラメータを設定するための複数のアイコンをアイコンウィンドウ360に表示させる。ステップS02では、リストウィンドウ320の複数のプログラムブロックのいずれかを選択し、プログラムウィンドウ340の任意の位置に配置する操作入力をプログラム表示部114が待機する。
ステップS03では、プログラム表示部114が、上記操作入力により選択されたプログラムブロックをプログラムウィンドウ340に追加する。当該プログラムブロック(以下、「新規ブロック」という。)の追加前に、他のプログラムブロック(以下、「既存ブロック」という。)がプログラムウィンドウ340に存在する場合、プログラム表示部114は、既存ブロックの配置位置と新規ブロックが配置(ドロップ)された位置との関係に基づいて、プログラムウィンドウ340における新規ブロックと既存ブロックとの表示順序を設定し、当該表示順序に従って新規ブロックと既存ブロックとをプログラムウィンドウ340に表示する。ステップS04では、上記新規ブロックがオブジェクト表示ブロック322,323であるか否かをパラメータ設定部117が確認する。
ステップS04において新規ブロックがオブジェクト表示ブロックであると判定した場合、学習支援装置100はステップS05を実行する。ステップS05では、パラメータ設定部117が、地図データベースに基づいて上記入力補助用地図を表示させる。
次に、学習支援装置100は、ステップS06を実行する。ステップS04において新規ブロックがオブジェクト表示ブロックでないと判定した場合、学習支援装置100は、ステップS05を実行することなくステップS06を実行する。ステップS06では、ユーザにより上記パラメータを指定する操作入力がなされたか否かをパラメータ設定部117が確認する。
ステップS06においてパラメータを指定する操作入力がなされたと判定した場合、学習支援装置100はステップS07を実行する。ステップS07では、パラメータ設定部117が、上記操作入力に従ったパラメータを、当該パラメータの設定対象であるプログラムブロックに表示させる。その後、学習支援装置100は処理をステップS02に戻す。ステップS06においてパラメータを指定する操作入力がなされていないと判定した場合、学習支援装置100は、ステップS07を実行することなく処理をステップS02に戻す。以後、ユーザの入力に応じたコンピュータウィンドウの更新が繰り返される。
(プログラムの実行手順)
図9に示すように、学習支援装置100は、まずステップS11,S12,S13を実行する。ステップS11では、プログラム実行部118が、プログラムウィンドウ340において先頭に表示されているプログラムブロックを実行対象とする。ステップS12では、プログラム実行部118が、ブロック記憶部112において実行対象のプログラムブロックに対応付けられたプログラム(上記対応プログラム)を、プログラムブロックに表示されたパラメータに従って実行する。ステップS13では、プログラム実行部118が、プログラムウィンドウ340に表示された全てのプログラムブロックの実行が完了したか否かを確認する。
ステップS13において、未実行のプログラムブロックが残っていると判定した場合、学習支援装置100はステップS14を実行する。ステップS14では、プログラム実行部118が、プログラムウィンドウ340において次に表示されているプログラムブロックを実行対象とする。その後、学習支援装置100は処理をステップS12に戻す。以後、プログラムウィンドウにおける全てのプログラムブロックの実行が完了するまで、プログラムブロックの対応プログラムが順次実行される。ステップS13において、全てのプログラムブロックの実行が完了したと判定した場合、学習支援装置100はプログラムの実行を完了する。
以下、ステップS12における対応プログラムの実行の具体例を示す。図10は、地図表示ブロックの実行手順を例示するフローチャートである。図10に示すように、学習支援装置100は、ステップS21,S22を順に実行する。ステップS21では、プログラム実行部118が、地図表示ブロックに対応する地図表示プログラムに従って地図を表示するためのデータを地図サーバ200の地図データベースから取得する。ステップS22では、プログラム実行部118が、ステップS21で取得したデータに基づく地図を表示デバイス194に表示させる。以上で地図表示ブロックの実行が完了する。
図11は、オブジェクト表示ブロック322,323の実行手順を例示するフローチャートである。図11に示すように、学習支援装置100は、ステップS31,S32,S33,S34を順に実行する。ステップS31では、プログラム実行部118が、地図にオブジェクトを表示できるように、当該オブジェクトの表示位置に基づいて地図の表示エリアを更新する。ステップS32では、プログラム実行部118が、更新後の表示エリアの地図を表示するためのデータを地図サーバ200の地図データベースから取得する。ステップS33では、プログラム実行部118が、ステップS32で取得したデータに基づいて、更新後の表示エリアの地図を表示する。ステップS34では、プログラム実行部118が、オブジェクト表示ブロック322,323に対応するオブジェクト表示プログラムに従って、ステップS33で表示した地図にオブジェクトを表示する。以上でオブジェクト表示ブロック322,323の実行が完了する。
図12は、表示統合ブロック425の実行手順を例示するフローチャートである。図12に示すように、学習支援装置100は、まずステップS41,S42,S43を実行する。ステップS41では、プログラム実行部118が、表示統合ブロック425に対応する表示統合プログラムに従って、地図に表示されたオブジェクトのいずれかを選択し、選択したオブジェクト(以下、「基準オブジェクト」という。)をメンバーとするグループを生成する。基準オブジェクトをメンバーとするグループが生成される段階において、当該グループに含まれるのは基準オブジェクトのみである。ステップS42では、プログラム実行部118が、地図に表示されたオブジェクトから、基準オブジェクトの他のオブジェクト(以下、「判定対象オブジェクト」という。)を選択する。ステップS43では、地図において、判定対象オブジェクトと基準オブジェクトとが重複しているか否かをプログラム実行部118が確認する。
ステップS43において判定対象オブジェクトと基準オブジェクトとが重複していると判定した場合、学習支援装置100は、ステップS44を実行する。ステップS44では、プログラム実行部118が、判定対象オブジェクトを基準オブジェクトと同じグループに追加する。
次に、学習支援装置100は、ステップS45を実行する。ステップS43において判定対象オブジェクトと基準オブジェクトとが重複していないと判定した場合、学習支援装置100は、ステップS44を実行することなくステップS45を実行する。ステップS45では、基準オブジェクトと重複しているか否かを確認していないオブジェクト(以下、「未確認オブジェクト」という。)が地図に残っていないかをプログラム実行部118が確認する。
ステップS45において、未確認オブジェクトが地図に残っていると判定した場合、学習支援装置100は、ステップS46を実行する。ステップS46では、プログラム実行部118が、未確認オブジェクトから次の判定対象オブジェクトを選択する。その後、学習支援装置100は処理をステップS43に戻す。以後、未確認オブジェクトが地図に残っていないと判定されるまで、基準オブジェクトと判定対象オブジェクトとが重複する場合に当該判定対象オブジェクトを基準オブジェクトと同じグループに追加することが繰り返される。
ステップS45において未確認オブジェクトが地図に残っていないと判定した場合、学習支援装置100はステップS47を実行する。ステップS47では、いずれのグループにも所属していないオブジェクト(以下、「未所属オブジェクト」という。)が地図に残っていないかをプログラム実行部118が確認する。
ステップS47において、未所属オブジェクトが地図に残っていると判定した場合、学習支援装置100はステップS48を実行する。ステップS48では、プログラム実行部118が、未所属オブジェクトから次の基準オブジェクトを選択し、当該基準オブジェクトとするグループを生成する。その後、学習支援装置100は処理をステップS42に戻す。以後、未所属オブジェクトが地図に残っていないと判定されるまで、オブジェクトのグループ化が継続される。
ステップS47において未所属オブジェクトが地図に残っていないと判定した場合、学習支援装置100はステップS49,S51を実行する。ステップS49では、プログラム実行部118が、グループごとに、所属するオブジェクトの数に応じて拡大率を設定する。例えば、所属するオブジェクトの数が1つである場合、プログラム実行部118は拡大率を1にし、オブジェクトの数が多くなるのに応じて拡大率を大きくする。ステップS51では、プログラム実行部118が、各グループのオブジェクトを1つに統合し、統合後のオブジェクトをステップS49で設定した拡大率で表示する。以上で表示統合ブロックの実行手順が完了する。
〔本実施形態の効果〕
以上に説明したように、学習支援装置100は、記憶部に記憶されている地図を表示させるプログラムに対応する地図表示ブロック321及び地図にオブジェクトを表示させるプログラムに対応するオブジェクト表示ブロック322を含む複数のプログラムブロックをリストウィンドウ320に表示するリスト表示部113と、複数のプログラムブロックからユーザによって選択された複数のプログラムブロックをユーザによって指定された表示順序でプログラムウィンドウ340に表示するプログラム表示部114と、オブジェクト表示ブロック322,323に対応するプログラムに従ったオブジェクトの地図における表示位置をユーザの入力に基づいて設定するパラメータ設定部117と、地図表示ブロック321に対応するプログラムに従って地図を表示することと、オブジェクト表示ブロック322,323に対応するプログラムと、パラメータ設定部117により設定された表示位置とに従って地図にオブジェクトを表示することとを表示順序に従って実行するプログラム実行部118と、を備える。
この学習支援装置100によれば、地図上の任意の位置にオブジェクトを配置する作業において、プログラムブロックの選択及び配置と、プログラムの動作確認とをユーザに実行させることができる。このため、オブジェクトを地図上に表示する作業が有益である科目にプログラミング学習を適用することが可能となる。従って、プログラミング学習の適用科目を増やすのに有効である。
パラメータ設定部117は、記憶部に記憶されている入力補助用地図を表示し、オブジェクトの地図における表示位置を、入力補助用地図においてユーザにより指定された位置に従って設定してもよい。この場合、オブジェクトの表示位置の指定をユーザに容易に行わせることができる。例えば、キーボード入力に習熟していないユーザにも、表示位置の指定を容易に行わせることができる。
パラメータ設定部117は、オブジェクト表示ブロック322に対応するプログラムに従って表示するオブジェクトをユーザの入力に基づいて更に設定してもよい。この場合、表示すべきオブジェクトの指定も可能にすることで、より高度な学習が可能となる。
学習支援装置100は、複数のオブジェクトにそれぞれ関連付けられた複数のアイコンである複数のオブジェクトアイコンを表示するアイコン表示部121を更に備え、パラメータ設定部117は、オブジェクト表示ブロック322に対応するプログラムに従って表示するオブジェクトを、複数のオブジェクトアイコンからユーザにより選択されたオブジェクトアイコンに従って設定してもよい。この場合、オブジェクトの指定が容易であるため、入力操作の習熟度が低いユーザ(例えば低学年のユーザ)用の科目にもプログラミング学習を適用し易くなる。
アイコン表示部121は、複数の位置にそれぞれ関連付けられた複数のアイコンである複数の位置アイコンを更に表示し、パラメータ設定部117は、オブジェクトの地図における表示位置を、複数の位置アイコンからユーザにより選択された位置アイコンに従って設定してもよい。この場合、オブジェクトの表示位置の指定が容易であるため、入力操作の習熟度が低いユーザ(例えば低学年のユーザ)用の科目にもプログラミング学習を適用し易くなる。
プログラム実行部118は、地図にオブジェクトを表示できるように、当該オブジェクトの表示位置に基づいて地図の表示エリアを更新してもよい。この場合、オブジェクトの追加の度に表示エリアを変更する作業が不要となるため、より効率的な学習が可能となる。
リスト表示部113が表示する複数のプログラムブロックは、地図に表示される複数のオブジェクトの種類と表示位置とに基づいて、同一種類の複数のオブジェクトを1つに統合して表示させるプログラムに対応する表示統合ブロック425を更に含み、プログラム実行部118は、同一種類の複数のオブジェクトを、表示統合ブロック425に対応するプログラムに従って1つのオブジェクトに統合し、当該1つのオブジェクトに統合したオブジェクトの数に応じて当該1つのオブジェクトの表示状態を変更してもよい。この場合、密集したオブジェクトの統合作業が不要となるため、より効率的な学習が可能となる。
以上、実施形態について説明したが、本発明は必ずしも上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変形が可能である。
以上の実施形態の全部又は一部に記載された態様は、処理速度の向上、処理精度の向上、使い勝手の向上、データを利用した機能の向上又は適切な機能の提供その他の機能向上又は適切な機能の提供、データ及び/又はプログラムの容量の削減、装置及び/又はシステムの小型化等の適切なデータ、プログラム、記録媒体、装置及び/又はシステムの提供、並びにデータ、プログラム、装置又はシステムの制作・製造コストの削減、制作・製造の容易化、制作・製造時間の短縮等のデータ、プログラム、記録媒体、装置及び/又はシステムの制作・製造の適切化のいずれか一つの課題を解決する。