(57)【要約】【課題】ボトムアップ型の教育を行える教材を提供する。【解決手段】システム状態を表示する第１の領域と、モデル状態を表示する第２の領域とを備え、第１の領域または第２の領域の一方の領域内に変更があった場合、他方の領域内の変更対応する箇所を変更する。また処理内容を表示する第３の領域をさらに備え、第３の領域に表示されている処理内容が実行されることにより、第２の領域の該当する箇所に変更があった場合、第２の領域の該当する箇所を変更し、第２の領域の変更があった箇所に該当する第１の領域の箇所を変更する。【選択図】図３
2015018467.tif 000002
【特許請求の範囲】
【請求項１】
１画面内に、
システム状態を表示する第１の領域と、
モデル状態を表示する第２の領域と
を備え、
前記第１の領域または前記第２の領域の一方の領域内に変更があった場合、他方の領域内の前記変更に対応する箇所を変更する
情報処理装置。
【請求項２】
処理内容を表示する第３の領域をさらに備え、
前記第３の領域に表示されている処理内容が実行されることにより、前記第２の領域の該当する箇所に変更があった場合、前記第２の領域の該当する箇所を変更し、前記第２の領域の変更があった箇所に該当する前記第１の領域の箇所を変更する
請求項１に記載の情報処理装置。
【請求項３】
前記第１の領域には、システム化対象の世界が表示され、前記第２の領域には、前記システム化対象の世界を表示するためのデータまたはデータ構造が表示され、前記第３の領域には、前記システム化対象の世界に対する制御を行うためのプログラムが表示される
請求項２に記載の情報処理装置。
【請求項４】
前記第１の領域または前記第２の領域に対して所定の操作が行われ、変更が指示された場合、前記所定の操作が行われた領域内においては指示された変更を実行し、前記所定の操作が行われた領域とは異なる領域においては、前記変更に該当する箇所を変更する
請求項１に記載の情報処理装置。
【請求項５】
前記第１の領域に対して所定の操作が行われたとき、前記所定の操作が行われた箇所の近傍に、複数の変更内容を表示し、
ユーザにより前記複数の変更内容のうちの１つの変更内容が選択された場合、その選択された変更内容で、前記第１の領域内の前記所定の操作が行われた箇所を変更し、
前記第２の領域内の、前記変更が実行されることにより変更される箇所を変更する
請求項１に記載の情報処理装置。
【請求項６】
前記第３の領域は、複数の処理内容を別々に登録できる構成であり、登録した処理内容を、それぞれ任意のタイミングで実行する
請求項２に記載の情報処理装置。
【請求項７】
前記第３の領域内に表示されている処理内容を、一定の間隔で継続して実行する
請求項２に記載の情報処理装置。
【請求項８】
前記第３の領域内に表示されている処理内容を、前記第２の領域内の前記モデル状態が変更されたとき、実行する
請求項２に記載の情報処理装置。
【請求項９】
前記第２の領域内において変更された箇所は、他の箇所と異なる背景色で表示する
請求項１に記載の情報処理装置。
【請求項１０】
前記第２の領域内において変更された箇所は、変更前後の値を併記して表示する
請求項１に記載の情報処理装置。
【請求項１１】
前記第１の領域または前記第２の領域の一方の領域内に変更があり、他方の領域内の前記変更に対応する箇所も変更した場合、変更した箇所同士を結ぶ矢印を表示する
請求項１に記載の情報処理装置。
【請求項１２】
前記第３の領域内に表示されている処理内容を実行することで、前記第２の領域で変更した箇所があった場合、前記第３の領域と前記第２の領域内で変更した箇所を結ぶ矢印を表示し、前記第２の領域で変更があったことにより、前記第１の領域で変更した箇所があった場合、前記第２の領域内で変更した箇所と前記第１の領域内で変更した箇所を結ぶ矢印を表示する
請求項２に記載の情報処理装置。
【請求項１３】
表示部を備える情報処理装置の情報処理方法において、
前記表示部の１画面内に、
システム状態を表示する第１の領域と、
モデル状態を表示する第２の領域と
を含む画面の表示を制御し、
前記第１の領域または前記第２の領域の一方の領域内に変更があった場合、他方の領域内の前記変更に対応する箇所を変更する
ステップを含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、情報処理装置、情報処理方法に関する。詳しくは、プログラミングの技術などを教えるときに用いて好適な情報処理装置、情報処理方法に関する。
【背景技術】
【０００２】
さまざまな装置がコンピュータで制御されるようになり、プログラムを最適化したり、新たなプログラムを制作したりする処理が増えつつある。また、ゲーム機の普及により、ゲーム機用のソフトウェアの需要も増えつつある。
【０００３】
特許文献１では、プログラムを効率よく作成するために、プログラムを所定のブロックに分け、ブロック毎に命令文字列群であるブロック別文字列と、所定の命令文字列である開始文字列と、終了文字列とを有するブロック別検索範囲を記憶部に格納するロボット動作プログラム作成装置が、処理の対象となっているブロック別文字列において、ブロック別検索範囲の開始文字列と、終了文字列に挟まれた検索文字列を検出し、この検索文字列を強調表示して表示部に表示させることが提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2010−157155公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
プログラムを作成したり、最適化したりするためには、プログラムについて学ぶ必要がある。特許文献１では、プログラムを効率良く作成するための一手段を提案しているが、プログラミングを学ぶ手段は提案されておらず、プログラミングを理解していなければ、結果として効率良く作成することはできない。
【０００６】
ところで、大学などのプログラミングを学ぶことができる場所において、その情報システムの教育は、プログラミング言語やネットワーク、OS（オペレーティングシステム）、データベースなど、細分化された専門技術（要素技術）の習得を目的とした教育プログラムが多い。そして、このような教育には、既存システムの内部を予想したり、見たり、変更したりする試行錯誤を通じ、システム全体を想像しデザインする能力を養うプロセスが含まれていない。
【０００７】
システムの仕組みを理解するには、対象となるシステムの状態と、コンピュータ内部でのデータ構造とそのデータ、データ処理のためのアルゴリズムを理解することが必要である。これは、例えば、子どもが「玩具を分解し、内部がどのような仕掛けになっているかを確認する」プロセスに似ている。ソフトウェアでもこのような「学び」が体験できる教材などがあると、プログラミングの本質とコンピュータの働きや内部状態を理解し、基礎的なプログラミングの概念と実践的なプログラミングの学習が可能となる。
【０００８】
本技術は、このような状況に鑑みてなされたものであり、事前の知識が少ない子どもでも、プログラミングの意味や概念を理解し、コンピュータの内部状態を考えながらプログラミングを実践できる対話型プログラミング環境を提供する。
【課題を解決するための手段】
【０００９】
本技術の一側面の情報処理装置は、１画面内に、システム状態を表示する第１の領域と、モデル状態を表示する第２の領域とを備え、前記第１の領域または前記第２の領域の一方の領域内に変更があった場合、他方の領域内の前記変更に対応する箇所を変更する。
【００１０】
処理内容を表示する第３の領域をさらに備え、前記第３の領域に表示されている処理内容が実行されることにより、前記第２の領域の該当する箇所に変更があった場合、前記第２の領域の該当する箇所を変更し、前記第２の領域の変更があった箇所に該当する前記第１の領域の箇所を変更するようにすることができる。
【００１１】
前記第１の領域には、システム化対象の世界が表示され、前記第２の領域には、前記システム化対象の世界を表示するためのデータまたはデータ構造が表示され、前記第３の領域には、前記システム化対象の世界に対する制御を行うためのプログラムが表示されるようにすることができる。
【００１２】
前記第１の領域または前記第２の領域に対して所定の操作が行われ、変更が指示された場合、前記所定の操作が行われた領域内においては指示された変更を実行し、前記所定の操作が行われた領域とは異なる領域においては、前記変更に該当する箇所を変更するようにすることができる。
【００１３】
前記第１の領域に対して所定の操作が行われたとき、前記所定の操作が行われた箇所の近傍に、複数の変更内容を表示し、ユーザにより前記複数の変更内容のうちの１つの変更内容が選択された場合、その選択された変更内容で、前記第１の領域内の前記所定の操作が行われた箇所を変更し、前記第２の領域内の、前記変更が実行されることにより変更される箇所を変更するようにすることができる。
【００１４】
前記第３の領域は、複数の処理内容を別々に登録できる構成であり、登録した処理内容を、それぞれ任意のタイミングで実行するようにすることができる。
【００１５】
前記第３の領域内に表示されている処理内容を、一定の間隔で継続して実行するようにすることができる。
【００１６】
前記第３の領域内に表示されている処理内容を、前記第２の領域内の前記モデル状態が変更されたとき、実行するようにすることができる。
【００１７】
前記第２の領域内において変更された箇所は、他の箇所と異なる背景色で表示するようにすることができる。
【００１８】
前記第２の領域内において変更された箇所は、変更前後の値を併記して表示するようにすることができる。
【００１９】
前記第１の領域または前記第２の領域の一方の領域内に変更があり、他方の領域内の前記変更に対応する箇所も変更した場合、変更した箇所同士を結ぶ矢印を表示するようにすることができる。
【００２０】
前記第３の領域内に表示されている処理内容を実行することで、前記第２の領域で変更した箇所があった場合、前記第３の領域と前記第２の領域内で変更した箇所を結ぶ矢印を表示し、前記第２の領域で変更があったことにより、前記第１の領域で変更した箇所があった場合、前記第２の領域内で変更した箇所と前記第１の領域内で変更した箇所を結ぶ矢印を表示するようにすることができる。
【００２１】
本技術の一側面の情報処理方法は、表示部を備える情報処理装置の情報処理方法において、前記表示部の１画面内に、システム状態を表示する第１の領域と、モデル状態を表示する第２の領域とを含む画面の表示を制御し、前記第１の領域または前記第２の領域の一方の領域内に変更があった場合、他方の領域内の前記変更に対応する箇所を変更するステップを含む。
【００２２】
本技術の一側面の情報処理装置、情報処理方法においては、表示部の１画面内に、システム状態を表示する第１の領域と、モデル状態を表示する第２の領域とを含む画面が表示され、第１の領域または第２の領域の一方の領域内に変更があった場合、他方の領域内の変更に対応する箇所が変更される。
【発明の効果】
【００２３】
本技術の一側面によれば、事前の知識が少ない子どもでも、プログラミングの意味や概念を理解し、コンピュータの内部状態を考えながらプログラミングを実践できる対話型プログラミング環境を提供することができる。
【図面の簡単な説明】
【００２４】
【図１】本技術が適用されるシステムの一実施の形態の構成を示す図である。
【図２】端末の構成例を示す図である。
【図３】ディスプレイ上に表示される画面の領域に関する説明をするための図である。
【図４】ディスプレイ上に表示される画面例である。
【図５】各領域の関係について説明するための図である。
【図６】各領域の関係について説明するための図である。
【図７】ディスプレイ上に表示される画面例である。
【図８】システム領域内の表示について説明するための図である。
【図９】ダイアログボックスについて説明するための図である。
【図１０】ダイアログボックスについて説明するための図である。
【図１１】処理領域内の表示について説明するための図である。
【図１２】背景色の変更について説明するための図である。
【図１３】変更に係わる部分をつなぐ矢印について説明するための図である。
【図１４】変更に係わる部分をつなぐ矢印について説明するための図である。
【図１５】変更に係わる部分をつなぐ矢印について説明するための図である。
【発明を実施するための形態】
【００２５】
以下に、本技術を実施するための形態（以下、実施の形態という）について説明する。なお、説明は、以下の順序で行う。
１．システムの概要
２．端末の構成
３．第１の表示画面
４．第２の表示画面
５．変更されたデータの表示について
６．記録媒体について
【００２６】
まず、以下に説明する本技術を適用することで解決できる課題や、本技術を適用することで期待できる効果について、簡便に説明する。
【００２７】
教育には、既存の知識を生徒に正しく伝えて理解させる「トップダウン教育」と、生徒に気づきのキッカケとなる情報を提供し、生徒の興味とインセンティブを刺激して、生徒が自主的に教えられた情報を咀嚼し、その先の課題解決力を身につけることを促す「ボトムアップ型の教育」とがある。本技術を適用することで、「ボトムアップ型の教育」が行えるようにする。
【００２８】
ボトムアップ教育の基本は、生徒自らが「対象システムをよく観察(See)」し、その「背景事情や内部の構造に思い(Think)」を巡らし、対象に実際に触れたり、動かしてみたりして興味を刺激される事により、その結果を現実の社会生活の中での課題に応用するために、自らの工夫を加味してより良く改良する「方法を考え(Plan)」、これを「自前のシステムとして実現(Do)」してみて、その結果のシステムの動きを更に興味を持って「観察(See)」するという次のループ過程に繋げることにある。
【００２９】
このようにして、予備知識のない生徒にも対象の本質に触れて、システム構築のセンスを身につけさせるような情報処理装置、情報処理方法を提供することが、本技術のより具体的な目的である。
【００３０】
本技術は、このような目的を達成するために、上述の観察を容易にするための「システム領域」、生徒自らが内部構造に踏み込み、その仕組みを考えることを可能にするための、システムの本質を抽象化して表現した「モデル領域」、およびこのモデルを動かす仕組みを機械に分かる言葉で記述する「処理領域」とからなる表示画面を生徒に提示する。
【００３１】
さらにその画面にはシステム内部の仕組みを考えるための気づきのヒントを複数提供するような工夫を加えている。また、この気づきが生徒に自信を与え、更に教育内容に踏み込んで行くインセンティブを与えることになる。また「システム領域」「モデル領域」「処理領域」の各領域相互を関連付けて動かす仕組みをつくることにより、内部構造の気づきに加えて、自らの工夫の結果の確認を容易にすることで、ボトムアップ教育の円滑化を図ることも目的としている。
【００３２】
以下に、具体的に本技術について説明する。
【００３３】
＜システムの概要＞
図１は、本技術が適用されるシステムの一実施の形態の構成を示す図である。
【００３４】
図１に示したシステムは、ネットワーク１１、サーバ１２、端末１３を含む構成とされている。ネットワーク１１は、有線、無線のどちらでも良く、また有線と無線が混在していても良い。サーバ１２は、後述するソフトウェアを端末１３側に提供する。このソフトウェアは、プログラミングの学習などを行えるソフトウェアであり、ここでは、適宜、教材と記述する。
【００３５】
端末１３は、ユーザ側の装置であり、パーソナルコンピュータや携帯電話機などの装置である。図１に示したシステムにおいては、サーバ１２から教材がネットワーク１１を介して端末１３に供給される。端末１３では、供給された教材をユーザに提供することで、ユーザは、教材を用いた学習を行える構成とされている。
【００３６】
なおここでは、サーバ１２から教材がネットワーク１１を介して端末１３に供給されるとして説明を続けるが、端末１３に教材（ソフトウェア）が記憶されているような構成でも良い。
【００３７】
＜端末の構成＞
図２は、端末１３の構成例を示すブロック図である。
【００３８】
端末１３において、ＣＰＵ（Central Processing Unit）３１、ＲＯＭ（Read Only Memory）３２、ＲＡＭ（Random Access Memory）３３は、バス３４により相互に接続されている。バス３４には、さらに、入出力インタフェース３５が接続されている。入出力インタフェース３５には、入力部３６、出力部３７、記憶部３８、通信部３９、及びドライブ４０が接続されている。
【００３９】
入力部３６は、キーボード、マウス、マイクロフォンなどよりなる。出力部３７は、ディスプレイ、スピーカなどよりなる。記憶部３８は、ハードディスクや不揮発性のメモリなどよりなる。通信部３９は、ネットワークインタフェースなどよりなる。ドライブ４０は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア４１を駆動する。
【００４０】
以上のように構成される端末１３では、ＣＰＵ３１が、例えば、記憶部３８に記憶されているソフトウェア（教材）または通信部３９を介してサーバ１２から供給されたソフトウェアを、入出力インタフェース３５及びバス３４を介して、ＲＡＭ３３にロードして実行する。
【００４１】
図３は、端末１３の出力部３７を構成するディスプレイ５１上に表示される画面の構成を示す図である。
【００４２】
ディスプレイ５１に表示される画面は、システム領域６１、モデル領域６２、および処理領域６３の３つの領域を有する。システム領域６１は、システム化対象の世界を表示する領域であり、モデル領域６２は、データ、データ構造を表示する領域であり、処理領域６３は、データ処理手続きを表示する領域である。
【００４３】
なお、本実施の形態において、プログラムとは、“データ構造の定義”と“データの処理手続”を含むものであるとする。また“データの処理手続”とは、例えば、データの読み込みや代入といった処理である。また処理領域６３には、データ構造を定義するプログラムや、データの処理手続を規定するプログラムなどが書き込まれる領域であるとして説明を続ける。
【００４４】
＜第１の表示画面＞
具体例を、図４に示す。図４に示した画面は、ゲームシステムを教材としたときの画面である。システム領域６１には、ゲームの一場面が表示されている。図４に示したゲームの一場面は、陸と川から構成され、陸には、砂地の道、緑化された場所、小高い山、木といった部分がある。また橋や、ユーザの分身として、ゲーム画面内を移動するキャラクターも表示されている。またこのような一番面の下側には、キャラクターを動かすための方向キーも表示されている。
【００４５】
モデル領域６２には、数字が表示されている。モデル領域６２には、データやデータ構造が表示される。以下、モデル領域６２のＸ軸方向（図中水平方向）の数字とＹ軸方向（図中垂直方向）の数字を座標として用い、所定の座標をデータ（Ｘ、Ｙ）と表す。例えば、データ（０、００）は、“５”であり、データ（１、００）は“３”である。
【００４６】
図４では、システム領域６１のゲームの一場面は、１０×１０のマスから構成され、各マスのデータが、モデル領域６２内に記載されている。また、ここでは、システム領域６１内の各マスが位置する座標と、モデル領域６２内のデータが位置する座標には対応関係がある場合を示している。システム領域６１は、１０×１０のマスから構成され、モデル領域６２には、その１０×１０の各マス内の画像データが、１０×１０のマス目のそれぞれに記載されている。
【００４７】
なお、モデル領域６２の最下行は、システム領域６１内の１０×１０のマス以外の制御に用いられているデータである。この最下行には、例えば、システム領域６１内の方向キーの有向フラグなどが表示される。
【００４８】
システム領域６１には、座標の値は示していないが、モデル領域６２に図示してある座標の値と同様の値が割り振られているとして説明を続け、所定の座標を、座標（Ｘ、Ｙ）と表す。例えば、座標（０、００）は、“川”であり、座標（１、００）は、“木”である。
【００４９】
モデル領域６２内のデータとの関係を示すと、座標（０、００）の“川”は、データ（０、００）の“５”と対応しており、座標（１、００）の“木”は、データ（１、００）の“３”と対応している。
【００５０】
図４に示したような画面が教材として与えられたユーザは、システム領域６１とモデル領域６２との対応関係を推測する。例えば、上記したように、座標（０、００）の“川”は、データ（０、００）の“５”と対応しており、“川”という絵は、“５”というデータで表されることを推測する。また同様に、座標（１、００）の“木”は、データ（１、００）の“３”と対応しており、“木”という絵は、“３”で表されることを推測する。
【００５１】
ユーザは、このような推測が正しいか否かを、実施に、モデル領域６２内のデータを変更することで確認することができる。変更するときの画面例は、別の画面を参照して説明するとし、ここでは図示は省略するが、変更したいデータに対してクリックなどの所定の操作が行われると、そのデータが表示される付近に、データ入力用のダイアログボックスが開かれ、そのダイアログボックスを用いてデータの入力（変更）ができるように構成されている。
【００５２】
または、変更したいデータに対してクリックなどの所定の操作が行われると、そのデータ上にカーソルが位置し、直接的にデータの入力（変更）ができるように構成されているようにしても良い。データの入力方法、入力画面などは、どのようなものでも良い。
【００５３】
モデル領域６２内のデータが変更されると、その変更に対応して、システム領域６１内の対応するマス内の絵も変更される。例えば、ユーザが、データ（０、００）の“５”を、“３”に変更したとする。データの“５”は、川を表し、データの“３”は、木を表すため、“５”から“３”に変更された場合、“川”から“木”にマス内の絵が変更される。ユーザは、このようなデータの変更を行い、マス内の絵の変更を確認することで、この場合、“３”は“木”を表すデータであることを確認できる。
【００５４】
このようにして、ユーザは、モデル領域６２内の各データは、システム領域６１内のどのマスのどのような絵を表すデータであるのかを、予測し確かめることができる。
【００５５】
なお、モデル領域６２内の表示は、図４に示したような形式に限定されるものではなく、他の表示形式で表示されても良い。すなわち、システム領域６１内に表示されているシステムと、モデル領域６２内に表示されているデータ（データ構造）に関連性があるということを、ユーザ（学習者）が学習しやすい表示であれば良い。
【００５６】
システム領域６１内の方向キーが操作された場合、その操作に応じて、キャラクターも移動する。キャラクターが移動した場合、その移動に対応するモデル領域６２内のデータが変更される。すなわち、システム領域６１に変更があった場合、その変更に応じてモデル領域６２の対応するデータも変更される。
【００５７】
ところで、システム領域６１内に表示されているキャラクターが、方向キーが操作されることにより移動する際、川の上を歩いたり、木の上を歩いたりするのは、好ましい動きではなく、そのようなことがおきないような制御が行われるようにすることが必要である。
【００５８】
ユーザは、このような教材が与えられたとき、どのようにキャラクターの動きを制御すべきかを考える。すなわち、上記したように、川の上や木の上を歩くことがないように制御すべきであると考える。そして、そのような制御をするためには、どのようなデータ処理手続きをプログラムとして記述すべきかを考える。その考えたプログラムを、処理領域６３に記載し、実行させることができるように構成されている。
【００５９】
すなわち、処理領域６３には、システム領域６１内の画面の表示や、キャラクターの動きなどを制御するためのプログラムが書き込まれる。処理領域６３に書き込まれたプログラムの処理手続に基づき、モデル領域６２内のデータが変更され、その変更に対応し、システム領域６１内の画面の表示やキャラクターの動きなどは、制御される。ユーザは、処理領域６３にプログラムを記載し、その記載したプログラムに基づくと、ユーザが意図した通りに制御が行われるか否かを、システム領域６１内の表示やキャラクターの動きなどを見て、確認することができる。
【００６０】
このように、ユーザは、どのようなデータ処理が必要かを考え、処理領域６３にプログラムとして記載し、そのプログラムでの動作を確認し、所望の動作でなければプログラムを訂正するといった一連の処理を行うことができる。そして、このような一連の処理が行えることで、プログラミングを学習することができる。
【００６１】
さらに、処理領域６３に記載されたプログラムにより、モデル領域６２内のデータに変更が加えられると、その変更に対応して、システム領域６１内の画像などの対応する部分も変更される。ユーザは、このような一連の変更を追うことができ、一連の変更を追うことで、データとデータ処理手続きの関係や、実際に表示される画面との関係などを認識し、学習することができる。
【００６２】
このようなことを、再度、図５と図６を参照して説明する。図５を参照するに、システム領域６１内に対して、タッチなどの所定の操作がされると、例えば、タッチがされたところに，そのような操作を示すアイコン（図５、６では、指形状のアイコン）が表示され、その操作に対応するモデル領域６２内のデータが変更される。ユーザは、システム領域６１内で自己が行った操作に対応して、モデル領域６２内のどのデータ（データ構造）が変更されるのかを学ぶことができる。
【００６３】
また、モデル領域６２内のデータがユーザにより変更されると、その変更に対応するシステム領域６１内の画像やキャラクターの動作などが変更される。ユーザは、モデル領域６２内で、自己が変更したデータに対応して、システム領域６１内のどのシステムが変更されるのかを学ぶことができる。
【００６４】
また、図６を参照するに、処理領域６３内にプログラムが記載され、例えば、実行というボタンが操作されると、記載されているプログラムに基づく処理が開始される。その結果、モデル領域６２内のデータが変更され、そのモデル領域６２のデータの変更に対応してシステム領域６１内の画像やキャラクターの動作などが変更される。ユーザは、自己が記載したプログラムに基づいて、どのデータ（データ構造）が変更され、どのシステムが変更されるのかを学ぶことができる。
【００６５】
このように、１画面内に、システム領域６１、モデル領域６２、処理領域６３を設けることで、システム、データ（データ構造）、データの処理手続（プログラム）のそれぞれの関係を学ぶことができるようになる。
【００６６】
図４に示したゲーム画面の教材を再度参照する。図４に示した画面を有する教材から、例えば、以下のようなことが検討課題としてユーザ（例えば、学生）に与えられる。そしてユーザは、その検討課題を解決するための手段を考えることでプログラミングなどを学習する。
【００６７】
例えば、検討課題１として、キャラクターが立っているマスの種類を取り出すには、どのようにすべきか。
検討課題２として、キャラクターは、上下左右への移動が可能であるか否かをどのように判定するのか。
検討課題３として、１００マス以上のマップを表現するには、どのような改良が必要であるか。
検討課題４として、キャラクターを中心に、３×３のマスを取り出すにはどのようにすべきか。
【００６８】
これらの検討課題を解決するためには、どのデータを参照し、どのようなプログラムを作成すれば良いかなどを、ユーザが考えることで学習を進める。
【００６９】
例えば、キャラクターが川や木の上を歩かないように制御するには、検討課題２と検討課題４を検討し、キャラクターを中心にした３×３のマスのうち、川や木がどの方向にあるかを判断し、進める方向を判断するためのプログラムを作成する必要があることを学ぶ。
【００７０】
このように、本技術を適用することで、ユーザにプログラミングを学ぶことができる教材を提供することができる。
【００７１】
＜第２の表示画面＞
第２の表示画面を参照し、さらに上記したことに対して説明を加える。第２の表示画面は、住環境のセンシングシステムをシミュレーションする教材である。以下に順を追って説明するが、ユーザは、このような教材が与えられたとき、例えば、子供の夜更かしを防止するために、２２時になったらテレビジョン受像機の電源をオフにするためには、どのようなプログラムを作成すれば良いかという課題を与えられ、その課題を解決するために試行錯誤しながら学習を進める。
【００７２】
図７に第２の表示画面の一例を示す。第２の表示画面も、図４に示した第１の表示画面と同じく、システム領域６１、モデル領域６２、処理領域６３の３つの領域が１画面に表示されている画面である。
【００７３】
住環境センシングシステムのため、システム領域６１には、住環境を表す画面が表示されている。説明のため、システム領域６１に表示されている画面を抽出し、図８に示す。図８に示したように、システム領域６１の左上には、時刻１０１が表示されている。住環境として、部屋１０２、部屋１０３、部屋１０４、および部屋１０５の４部屋がある環境であり、各部屋には、例えば、人感センサなどのセンサが設置されており、部屋内に人がいるか否かを検知することができる環境を想定している。
【００７４】
部屋１０２には、人１０６が存在し、部屋１０３には、人１０７が存在し、部屋１０５には、人１０８が存在する。以下の説明において、人１０６と人１０７は大人であり、人１０８は、子供であるという設定で説明を続ける。
【００７５】
部屋１０２は、キッチンであり、部屋１０３は、リビングであり、リビングには、テレビジョン受像機１０９が設置されている。また部屋１０４は、玄関ホールであり、扉１１０が設置されている。また部屋１０５は、子供部屋であり、テレビジョン受像機１１１が設置されている。
【００７６】
なお符号は付していないが、電化製品や窓なども設置されている。システム領域６１の住環境は、実世界を想定した住空間であり、その住空間に配置したセンサと作動装置（アクチュエータ）からなるシステムを想定した教材となっている。
【００７７】
センサとしては、上記したように、人感センサなどがある。また、電化製品にもセンサが付けられており、電化製品の状態、例えば、電源のオン、オフの状態などが検知できるシステムとされている。また、システム領域６１内に表示されている、例えば、テレビジョン受像機１０９やテレビジョン受像機１１１に対して、タップやクリックなどの所定の操作が行われると、電源のオンやオフの状態を切り換えられるように構成されている。
【００７８】
また、扉１１０や窓などの開閉も、タップやクリックなどの所定の操作が行われることで行えるように構成されている。さらに、人１０６、人１０７、人１０８のそれぞれは、タップやクリックなどの所定の操作がされると、部屋の移動、ソファーに座る、寝るなどの所定の行動をとらせることができるように構成されている。
【００７９】
例えば、玄関の扉１１０に対して、ユーザがタップやクリックなどの所定の操作を行った場合、図９に示すように、扉１１０付近に、ダイアログボックス１３１が表示される。ダイアログボックス１３１には、“扉を開く”、“鍵をかける”、“キャンセル”という３つの選択肢が表示されている。“扉を開く”という選択肢は、扉１１０が閉められているときに表示される選択肢であり、扉１１０を開けるときに操作される選択肢である。なお、扉１１０が開けられているときにダイアログボックス１３１が表示されたときには、“扉を閉める”という選択肢となっている。
【００８０】
“鍵をかける”という選択肢は、扉１１０に鍵がかかっていないときに表示される選択肢であり、鍵をかけるときに選択される選択肢である。“キャンセル”という選択肢は、他の選択肢を選択せずに、表示されたダイアログボックス１３１を閉じるときに選択される選択肢である。
【００８１】
図示はしないが、例えば、人１０６に対して所定の操作がされた場合、人１０６の付近にダイアログボックスが表示される。その表示されるダイアログボックスには、例えば、“リビングに移動”、“玄関に移動”といったような選択肢や、“火を付ける”、冷蔵庫を開ける“といった選択肢が表示される。
【００８２】
また例えば、テレビジョン受像機１０９に対して所定の操作がされた場合、テレビジョン受像機１０９の付近にダイアログボックスが表示されるようにしても良い。テレビジョン受像機１０９に対しては、電源のオン、オフのみが指示できると設定されていた場合、ダイアログボックスの選択肢として“、オン”または“オフ”という選択肢が表示されるようにしても良い。またはテレビジョン受像機１０９の電源がオンされているときに、テレビジョン受像機１０９に対して所定の操作がされた場合、ダイアログボックスなどが表示されることなく、電源がオフにされるように構成することも可能である。
【００８３】
このように、システム領域６１内に描画されている実世界を想定し、模写された住空間に対して、所定の操作が行われると、その所定の操作に対応する処理、例えば、上記したダイアログボックス１３１などが表示され、ユーザが所望な変更を行えるように構成されている。
【００８４】
システム領域６１内に変更が加えられると、その変更に対応して、モデル領域６２内のデータも変更される。ここで、図７に示した画面に説明を戻し、モデル領域６２について説明を加える。
【００８５】
モデル領域６２には、上記したゲームの一場面が表示される第１の表示画面と同じく、システム領域６１に描画されている画面や、その画面内に表示されている分身などの動作に関するデータが表示されている。
【００８６】
図７に示したモデル領域６２は、システム領域６１に表示されている住空間に関するデータであり、描画するためのデータや、テレビジョン受像機の電源の状態や、人がいる部屋などのデータが表示されている。
【００８７】
図７に示したモデル領域６２には、マス内の背景色が灰色で表示されているデータがある。例えば、データ（２、００）は、背景色が灰色であり、その数字は“０”とされている。この灰色の背景で表示されているデータは、ユーザ側で変更することができないデータとされている。
【００８８】
例えば、システム領域６１に表示されている住空間の壁に関するデータは、ユーザ側で変更することができないデータとされている。壁は通常、実空間では移動することはできず、その配置などに変更が加えられるものではない。よって、描画するためのデータとしても、ユーザが変更するデータには設定されず、変更できないことを表す表示がされている。
【００８９】
なお、本教材が、住環境のセンシングシステムに関する教材ではなく、住環境のインテリアに関する教材であり、壁の色などのデザインを変更でき、そのようなシミュレーションを行うことから、何かを学び取るような教材である場合、壁に関するデータは、ユーザ側で変更できるデータとされ、そのような変更が可能な他のデータと同じ表示がされる。
【００９０】
モデル領域６２内のデータが変更される際、ダイアログボックスが表示され、そのダイアログボックスを用いて変更が指示できるようにしても良い。そのような一例を、図１０に示す。図１０に示したモデル領域６２には、ダイアログボックス１５１が表示されている。
【００９１】
モデル領域６２内のデータ（０、００）に対して、タップやクリックなどの所定の操作がされた場合、データ（０、００）の付近に、ダイアログボックス１５１が表示される。ダイアログボックス１５１の上部には、入力された数字が表示される欄１６１が設けられている。この欄１６１の右側、図１０では、“１１”という数字が表示されているところには、入力された数字が表示される。欄１６１の左側、図１０では、“０−２３”という数字が表示されているところには、入力可能な数字の範囲が表示される。
【００９２】
データ（０、００）は、システム領域６１内の時刻１０１（図８）のうちの時間を表すデータである。２４時間表示とした場合、０：００から２３：５９まで表示されるため、時間として表示される数字は、０から２３までの数字となる。よって、データ（０、００）のところに入力できる数字は、０から２３までの数字となるため、欄１６１の左側には、“０−２３”との表示がされ、ユーザに入力可能な数字の範囲が示されている。
【００９３】
ダイアログボックス１５１（図１０）の欄１６１の下側には、欄１６１に数字を入力するための数字キー１６２が表示されている。ユーザは、数字キー１６２を操作することで、欄１６１に所望の数字を入力することができる。数字キー１６２の下側には、データの変更を中止するときに操作される“Cancel”というボタン１６３と、欄１６１に入力した数字でデータを変更するときに操作される“ＯＫ”というボタンが表示されている。
【００９４】
ユーザは、このようなダイアログボックス１５１を用いて、モデル領域６２内のデータを変更することができる。なお、ダイアログボックス１５１が表示されずに、モデル領域６２内のデータが変更される仕組みが設けられても良い。例えば、図１０を参照するに、ユーザにより変更対象とされたデータ（０、００）のマスは、他のマスとは異なる背景色で表示されている。このように、他のマスとは異なる背景色で表示されているマスのデータ（数値）が、直接変更できるように構成されていても良い。
【００９５】
モデル領域６２内のデータが変更されると、その変更に応じた描画が、システム領域６１内の画像に対して行われる。例えば、図１０に示したように、データ（０、００）の時間に関するデータが変更された場合、その変更に応じて、システム領域６１内の時刻１０１の時間の部分の表示が変更される。
【００９６】
ユーザは、モデル領域６２内のデータを変更すると、システム領域６１内に表示されている住空間の一部が変更されることを認識することで、モデル領域６２内のデータとシステム領域６１内の描画との関係性を認識（学習）する。また、モデル領域６２内のデータを、どのように変更すると、システム領域６１内の住環境において、どのような変更があるのかを認識（学習）する。
【００９７】
このように、ユーザは、システム領域６１内のシステムと、モデル領域６２内のデータとの関係性を学ぶことができる。
【００９８】
さらに、例えば、システム領域６１内の時間１０１を、１時間ずつ、自動的に進めるというような処理をさせたい場合、処理領域６３に所定のプログラムを記載することで、実行することができるように構成されている。この場合、ユーザは、システム領域６１内の時間１０１を、１時間ずつ進めるためには、モデル領域６２内のどのデータを変更し、どのようにデータを処理すべきかの手順を示すプログラムを作成すれば良いかを考えることで、プログラミングの学習を行うことができる。
【００９９】
図１１に、処理領域６３の表示例を示す。処理領域６３の上部には、タブが表示される。図１１に示した例では、タブ１８１−１乃至１８１−４の４個のタブが表示され、タブ１８１−４は、タブを追加したいときに操作されるタブとされている。
【０１００】
図１１に示した例ではタブ１８１−１が開かれた状態である。タブ１８１の下側には、データ構造の定義やデータの処理手続を示すプログラムが記載される欄１８２が設けられている。タブ１８１毎に、欄１８２が設けられており、タブ毎にプログラムを記載できる構成とされている。また、欄１８２の下側には、プログラムをどのように実行するかを設定するボタン１８３―１乃至１８３−３が表示されている。
【０１０１】
ボタン１８３−１は、“モデル更新時に実行”というボタンであり、モデル領域６２内のデータが更新（変更）されたときに、欄１８２に記載されているプログラムを実行するという設定を行うときに操作されるボタンである。
【０１０２】
ボタン１８３−２は、例えば“１秒ごとに実行”というボタンであり、１秒経過毎に、欄１８２に記載されているプログラムを実行するという設定を行うときに操作されるボタンである。なお、１秒ではなく、ユーザにより指定された時間が経過する毎にプログラムが実行されるように設定するためのボタンとすることもできる。
【０１０３】
ボタン１８３−３は、“実行”というボタンであり、即座に欄１８２に記載されているプログラムを実行するという設定を行うときに操作されるボタンである。すなわち、ボタン１８３−３が操作された場合、操作された時点で、欄１８２に記載されているプログラムが実行される。
【０１０４】
このように、処理領域６３は、例えば、JavaScript（登録商標）で記載された処理を、指定の条件でeval関数（文字列として与えられたJavaScript（登録商標）コードを、その場で実行する命令）で実行させるための領域として設けられている。また、処理領域６３には、複数のコード（プログラム）を登録でき、コード毎に実行方法を設定できるように構成されている。
【０１０５】
ユーザは、欄１８２にプログラムを記載し、そのプログラムを実際に実行させることで、システム領域６１内の変更を確認することができる。システム領域６１内の変更が、所望の変更であれば、記載したプログラムは正しいことを確認でき、所望の変更でなければ、記載したプログラムを訂正することができる。このようなことを繰り返すことで学習することができる。
【０１０６】
このように、１画面内に、システム領域６１、モデル領域６２、処理領域６３を設けることで、システム、データ（データ構造）、データの処理手続（プログラム）のそれぞれの関係を学ぶことができるようになる。
【０１０７】
図７に示した住環境のセンシングシステムの画面の教材を再度参照する。図７に示した画面を有する教材から、例えば、以下のようなことが検討課題として与えられ、ユーザは、その検討課題を解決するための手段を考えることで学習が行われる。
【０１０８】
例えば、検討課題１として、子供の夜更かしを判定するにはどうするか。
検討課題２として、子供の夜更かしを防止するにはどのような改良が良いか。
検討課題３として、家の防犯システムを実現するにはどうするか。
【０１０９】
これらの検討課題を解決するためには、どのデータを参照し、どのようなプログラムを作成すれば良いかなどを、ユーザが考えることで学習が進められる。
【０１１０】
例えば、検討課題１を検討することで、時刻１０１の時刻を判断基準とし、時刻１０１の時刻が、“２２：００”になったときに、子供部屋１０５の電気やテレビジョン受像機１１１がついていたら、子供が夜更かししていると判定できると考え、そのような判定が行えるようにするためには、モデル領域６２内のどのデータを参照し、どのようなプログラムを作成し、処理領域６３に記載すべきかを学ぶことができる。
【０１１１】
さらに、ユーザは、検討課題１が解決できた場合、検討課題２を検討し、子供が夜更かしをしていると判定できたとき、その夜更かしをどのようにして防止するかを検討する。例えば、２２時以降、子供部屋１０５のテレビジョン受像機１１１の電源がオンになっていた場合、テレビジョン受像機１１１の電源をオフにすれば良いという１案を考えついた場合、テレビジョン受像機１１１の電源のオン、オフを表すデータは、モデル領域６２内のどのデータであるのかを確認したり、処理領域６３に、２２時になったら、テレビジョン受像機１１１の電源をオフにするというプログラムを作成し、記載したりする必要があることを、ユーザは学ぶことができる。
【０１１２】
例えば、プログラムとして、時間を表すデータが、２２よりも大きくなったとき、テレビジョン受像機１１１の電源がオフになるようなプログラムを作成した場合、２２時になったときに、テレビジョン受像機１１１の電源はオフになる。しかしながら、“時間を表すデータが、２２よりも大きくなったとき”という条件下では、時刻が０：００を過ぎると、その条件を満たさないことになり、時刻０：００以降であれば、テレビジョン受像機１１１の電源はオンにできる状態になってしまう。これは事前に想定したシステムの挙動ではなく、論理的な不具合と言える。
【０１１３】
ユーザは、このようなことを学び取り、改善するためのプログラムを作成する。このようなこと、繰り返し行うことで学習が進められる。
【０１１４】
このように、本技術を適用することで、ユーザにプログラミングを学ぶことができる教材を提供することができる。
【０１１５】
＜変更されたデータの表示について＞
ところで、システム領域６１に変更があった場合、その変更に対応してモデル領域６２内のデータが変更される。本技術を教材として用いるときなど、システム領域６１に変更があると、モデル領域６２内のデータが変更されることをユーザに認識させることが大事である。例えば、図７に示したような画面が、教材としてユーザに提供された場合、システム領域６１内のテレビジョン受像器１１１の電源がオン、またはオフにされたとき、モデル領域６２内のどのデータが、どのように変更されるのかユーザに認識させ、システムとモデルとの関係性を気付かせる。
【０１１６】
例えば、テレビジョン受像器１１１の電源がオンにされたとき、モデル領域６２内の対応するデータが、テレビジョン受像器１１１の電源がオンにする操作がされたとときとほぼ同じタイミングで変更された場合、ユーザは、テレビジョン受像器１１１の電源をオンにする操作をするためにテレビジョン受像器１１１の付近を注視しているため、そのようなモデル領域６２内のデータが変更されたことを見逃してしまう。
【０１１７】
このようなことでは、システムとモデルとの関連性を学習することができず、好ましくないと考えられる。そこで、システム領域６１内に対してユーザが所定の操作をして、何らかの変更が生じたときには、少しの時間、例えば、ユーザがシステム領域６１から、モデル領域６２に視線を移すことが十分に行える時間が経過した後に、モデル領域６２内の対応するデータが変更するようにしても良い。
【０１１８】
このようにすることで、ユーザに、システム領域６１内に変更を加えると、その変更に対応するモデル領域６２内のデータが変更されることを認識させやすくすることが可能となる。
【０１１９】
また、モデル領域６２内の変更されたデータが一目でわかるように、変更されたデータに色をつけて表示されるようにしても良い。このように色をつけてデータが表示される場合について、図１２を参照して説明する。
【０１２０】
図１２は、モデル領域６２を図示し、システム領域６１内に変更が発生したことにより、モデル領域６２内のデータ（２、２０）のデータが変更されたときを示している。データ（２、２０）は、他のデータと区別がつくように、他のデータとは異なる背景色で表示されている。他のデータと異なる背景色とすることで、変更されたデータを一目で認識させることができるようになる。
【０１２１】
変更前の背景色は、白色であるとする。変更されたデータの背景色は、白色以外の比較的目立つ色とされる。例えば、ここでは、黄色であるとする（図１２では、白黒反転表示された例を示すが、背景色は黄色であるとして説明を続ける）。変更されたデータの背景色は、濃い黄色で表示される。そして、時間の経過とともに、徐々にその黄色の色が薄くなり、最終的には白色に戻る。このように、徐々に色が変更するようなアニメーションが行われて表示されるようにすることができる。
【０１２２】
さらに、データ（２、２０）のマスに注目する。データ（２、２０）のマス内の左上には、“０”という数字が小さく表示され、その“０”という数字の右側には、右方向の矢印が表示されている。そして、矢印の先に、“１”という数字がマスの中央部分に大きく表示されている。
【０１２３】
マスの左上に小さく表示される数字、この場合“０”という数字は、変更前の数字である。マスの中央に大きく表示される数字、この場合“１”という数字は、変更後の数字である。すなわち、ユーザは、データ（２、２０）のマス内の数字を見ることで、データが０から１に変更されたことを読み取ることができる。この左上に小さく表示されている数字（変更前のデータの値）は、時間の経過とともに薄い表示になり、最終的には非表示とされる。
【０１２４】
このように、背景色を変更させることで、ユーザに、どのデータが変更されたのかを知らせることができる。そして、変更前の値と変更後の値を併記することで、ユーザは、データがどのように変更されたのかを知ることができる。このようなことがわかりやすい表示とすることで、学習効果を高めることが可能となる。
【０１２５】
なお、ここでは、システム領域６１内に変更があったとき、その変更に対応するモデル領域６２内のデータのマスの背景色が変更されたり、変更前後の値が表示されたりするとして説明した。モデル領域６２内のデータがユーザにより変更されたとき、その変更されたデータのマスに対しても、同様に、背景色が変更されたり、変更前後の値が表示されたりするような表示が実行されるようにしても良い。
【０１２６】
また、処理領域６３に記載されたプログラムが実行されることで、システム領域６１やモデル領域６２に変更が発生した場合にも、モデル領域６２内のデータのマスに対して、背景色が変更されたり、変更前後の値が表示されたりするような表示が実行されるようにしても良い。
【０１２７】
さらに明確に、ユーザに変更箇所を認識させるような仕組みを設けても良い。例えば、図１３乃至図１５に示すように、変更箇所を矢印で表すといった表示が行われるようにしても良い。
【０１２８】
図１３に示した住環境のセンシングシステムに関する画面において、矢印２０１は、モデル領域６２内のデータ（０、３０）が変更されたため、システム領域６１内の扉１１０に変更が生じたときに表示される。矢印２０１の始点と終点には、円が表示され、変更箇所が明確になる表示がされている。すなわち、矢印２０１の始点の円は、モデル領域６２内のデータ（０、３０）のところに表示され、変更箇所のデータが、データ（０、３０）であることを表している。
【０１２９】
また、矢印２０１の終点の円は、システム領域６１の扉１１０のところに表示され、変更先が扉１１０であり、例えば、扉１１０が開くまたは閉じるといった変更があったことを表している。このように、モデル領域６２内に変更があった場合、モデル領域６２内の変更があったデータと、その変更によりシステム領域６１内で変更があった場所とを矢印で結ぶことで、モデル領域６２内のデータと、システム領域６１内の該当する箇所との関係性を明確にユーザに認識させることが可能となる。
【０１３０】
図１４に示した住環境のセンシングシステムに関する画面において、矢印２０２は、システム領域６１内のテレビジョン受像機１１１に対して、所定の操作が行われたため、モデル領域６２内のデータ（２、２０）が変更されたときに表示される。この場合、矢印２０２の始点の円は、システム領域６１のテレビジョン受像機１１１のところに表示され、変更基がテレビジョン受像機１１１であり、例えば、テレビジョン受像機１１１の電源がオンまたはオフにされたといった変更があったことを表している。
【０１３１】
また、矢印２０２の終点の円は、モデル領域６２内のデータ（２、２０）のところに表示され、変更先のデータが、データ（２、２０）であることを表している。このように、システム領域６１内に変更があった場合、システム領域６１内の変更があった箇所と、その変更によりモデル領域６２内で変更があったデータとを矢印で結ぶことで、システム領域６１内で変更が実行された箇所と、モデル領域６２内の該当するデータとの関係性を明確にユーザに認識させることが可能となる。
【０１３２】
図１５に示した住環境のセンシングシステムに関する画面において、矢印２０３は、処理領域６３に記載されているプログラムが実行されたため、モデル領域６２内のデータ（０、００）が変更されたときに表示される。また、矢印２０４は、モデル領域６２内のデータ（０、００）が変更されたため、システム領域６１内の時刻１０１の時間が変更されときに表示される。
【０１３３】
この場合、矢印２０３の始点の円（点）は、処理領域６３の実行されているプログラムのタグ（図１５では、タグ１８１−１）のところに表示され、変更基が処理領域６３のプログラムが実行されたことによるものであることを表している。なお図１５に示した表示では、矢印２０４の始点には、円ではなく点である場合を示した。このように、円ではなく点であっても良く、変更の開始点がユーザに明確に認識されるような表示であればよい。
【０１３４】
また、矢印２０３の終点の円は、モデル領域６２内のデータ（０、００）のところに表示され、変更先のデータが、データ（０、００）であることを表している。この場合、矢印２０３が表示されることで、処理領域６３に記載され、実行されているプログラムは、モデル領域６２内のデータ（０、００）のデータを変更するプログラムであることが読み取れる。
【０１３５】
矢印２０４は、モデル領域６２内のデータ（０、００）が変更されたため、システム領域６１内の時刻１０１の時間が変更されたときに表示される。矢印２０４の始点の円は、モデル領域６２内のデータ（０、００）のところに表示され、変更箇所のデータが、データ（０、００）であることを表している。また、矢印２０４の終点の円は、システム領域６１の時間１０１の時間の部分のところに表示され、変更先が時間であることを表している。
【０１３６】
このように、処理領域６３内に記載されたプログラムが実行された場合、そのプログラムによりモデル領域６２内の変更があったデータと矢印で結び、さらにモデル領域６２内で変更があったデータと、その変更によりシステム領域６１内で変更があった場所とを矢印で結ぶことで、処理領域６３内のプログラム、モデル領域６２内のデータ、およびシステム領域６１のそれぞれの該当する箇所との関係性を明確にユーザに認識させることが可能となる。
【０１３７】
なお、表示される矢印は、アニメーションで表示されるようにしても良い。例えば、矢印が表示され、時間経過と共に色が薄くなるような表示や、矢印が、始点から徐々に伸びて目的の箇所（終点）に届き、一定時間経過後、始点から徐々に消えるような表示や、変更元から変更先へ出射されるような表示が行われるようにしても良い。またここでは、矢印として記述したが、変更元と変更先を線で結ぶような表示であっても良い。
【０１３８】
またこのような矢印の表示と、図１２を参照して説明した、モデル領域６２内の変更が加えられたデータのマスの背景色が変更される表示とを、同時に行うように構成することも可能であるし、どちらか一方のみが行われるように構成することも可能である。
【０１３９】
上記したように、本技術によれば、プログラミングなどの学習を効率良く行え、より深い学習が行えるようになる。
【０１４０】
このように、本技術においては、１画面に収まる規模の（部分的な）システムを教材とし、画面は、システム状態、モデル状態（データ構造＋データ内容）、処理内容（アルゴリズム）を示す３つの表示領域を有するような画面とされている。画面内内のシステム状態や、モデル状態は、タッチやクリックといった所定の操作でその状態を変更できるように構成されている。
【０１４１】
そして、その変更に連動して関連するモデル状態やシステム状態が変更されるように構成されている。またタッチやクリックなどの所定の操作で、登録した処理が実行されるように構成されている。これらの対話的な操作を繰り返すことで、学習者は教材で提示したシステムのしくみを読み解く能力が養える。
【０１４２】
本技術によれば、対象となるシステムの状態と、コンピュータ内部でのデータ構造とそのデータ、データ処理のためのアルゴリズムを理解することができ、システムの仕組みを理解することが可能となる。
【０１４３】
また本技術を適用した教材で提示したシステムをベースとし、システムの拡張方法について議論することで、システム全体を理解したデザイン能力を養うことができる。
【０１４４】
また本技術を適用した教材は、「プログラミング言語の文法理解」程度であった学習目標を、「システム全体の仕組みの気付きと、継続的な学習へのインセンティブ付与」まで広げることができる。専門的な要素技術を深く学んでいなくても、システムの問題点や改良点について論理的に議論できる能力が養えるようになる。さらに、上記した住環境センシングシステムのような教材の場合、センサやアクチュエータといった、ハードウェアの技術要素も自然と理解できるようなることも期待でき、各要素技術への興味を高めることができ、効率的な学習が可能となる。
【０１４５】
なお、上記した実施の形態においては、１画面に、システム状態、モデル状態（データ構造＋データ内容）、処理内容（アルゴリズム）を示す３つの表示領域を有する画面を例に挙げて説明した。１画面に３つの表示領域を設けるのではなく、２つの表示領域であっても良い。
【０１４６】
例えば、１画面に、システム状態を表示する領域（システム領域６１）とモデル状態を表示する領域（モデル領域６２）の２領域が表示されるようにしても良い。または１画面に、システム状態を表示する領域（システム領域６１）と処理内容を表示する領域（処理領域６３）の２領域が表示されるようにしても良い。
【０１４７】
上述した実施の形態においては、教材を体に上げて説明したが、本技術は、教材に適用範囲が限定されることを示すわけではない。本技術は、例えば、電子教材、ｅラーニング、教育用のプログラミング言語／ツール、ゲーム、エディタなどのツール類などにも適用できる。
【０１４８】
＜記録媒体について＞
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【０１４９】
図２に示した端末１３のＣＰＵ３１が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア４１に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【０１５０】
コンピュータでは、プログラムは、リムーバブルメディア４１をドライブ４０に装着することにより、入出力インタフェース３５を介して、記憶部３８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部３９で受信し、記憶部３８にインストールすることができる。その他、プログラムは、ＲＯＭ３２や記憶部３８に、あらかじめインストールしておくことができる。
【０１５１】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０１５２】
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【０１５３】
１１  ネットワーク，  １２  サーバ，  １３  端末，  ６１  システム領域，  ６２  モデル領域，  ６３  処理領域，  １３１  ダイアログボックス，  １５１  ダイアログボックス，  ２０１乃至２０４  矢印
【図１】
2015018467.tif 000003
【図２】
2015018467.tif 000004
【図３】
2015018467.tif 000005
【図４】
2015018467.tif 000006
【図５】
2015018467.tif 000007
【図６】
2015018467.tif 000008
【図７】
2015018467.tif 000009
【図８】
2015018467.tif 000010
【図９】
2015018467.tif 000011
【図１０】
2015018467.tif 000012
【図１１】
2015018467.tif 000013
【図１２】
2015018467.tif 000014
【図１３】
2015018467.tif 000015
【図１４】
2015018467.tif 000016
【図１５】
2015018467.tif 000017