(57)【要約】      （修正有）【課題】どこからでも自由に退屈せずに自主的に学ぶことができ、良質なアシストの下に適切なナビゲートを受けることができるプログラム学習アプリケーションを提供する。【解決手段】ＰＣが、ロボットのイラスト、その制御対象部位であるパーツＰＴ、およびそのパーツＰＴに必要な機能を与えるための制御テーマをカリキュラム開始初期画面上に表示して、何れのパーツＰＴおよび制御テーマについても学習の頻度、進捗等のマスター状態に無関係に任意に学習要求を受け付けるアシストを行い、学習要求を受け付けた制御テーマに関して、具体的な学習項目ＣＬをリキュラム詳細選択欄Ｆｄ２に表示して何れの学習項目を学習するか選択を選択するアシストを行い、学習項目ＣＬが選択された場合に学習開始画面を開いて制御対象部位に対し学習項目をクリアするためのプログラム学習のアシストを行う。【選択図】図４
2018072726.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに読み込まれて実行されることにより、コンピュータが、
制御対象物のイラスト、その制御対象部位、およびその制御対象部位に必要な機能を与えるための制御テーマをカリキュラム開始初期画面上に表示して、
何れの制御対象部位および制御テーマについても学習の頻度、進捗等のマスター状態に無関係に任意に学習要求を受け付けるアシストを行い、
学習要求を受け付けた制御テーマに関して、具体的な学習項目をカリキュラム詳細選択欄に表示して何れの学習項目を学習するか選択を選択するアシストを行い、
学習項目が選択された場合に学習開始画面を開いて制御対象部位に対し学習項目をクリアするためのプログラム学習のアシストを行うものであり、
プログラム学習中に進捗度や習熟度等のマスター状態を感知して、上記アシストの少なくとも一部をマスター状態に応じて行うように構成されたことを特徴とするプログラム学習用アプリケーション。
【請求項２】
カリキュラム開始初期画面では、プログラム学習のマスター状態に応じた成長度を制御対象物の機能向上度として表示するアシストを行う請求項１に記載のプログラム学習用アプリケーション。
【請求項３】
カリキュラム詳細選択欄では、各学習項目についてマスター状態を表示するアシストを行う請求項１に記載のプログラム学習用アプリケーション。
【請求項４】
カリキュラム詳細選択欄では、未修の学習項目についてはそのうち最も習得レベルの低い学習項目以外は基本的に選択不可とする一方、未修であっても既に習得済の他の制御テーマでテクニックが共通する学習項目については選択可もしくは選択不要とするアシストを行う請求項１に記載のプログラム学習用アプリケーション。
【請求項５】
学習開始画面では、アシストコールに応じたアシストを行う請求項１に記載のプログラム学習用アプリケーション。
【請求項６】
学習者に要求や選択を求めるタイミングで学習者へ問いかけるアシストを行い、そのアシストは、学習者に対してではなく、画面上の制御対象物に対する使役的な表現の形で行われる請求項１〜５の何れかに記載のプログラム学習用アプリケーション。
【請求項７】
請求項１〜６の何れかに記載のプログラム学習支援アプリケーションを基本ツールと連動させて構成したことを特徴とするプログラム学習システム。
【請求項８】
プログラム学習用アプリケーションのなかの制御対象部位や制御テーマと、基本ツールの拡張機能とが予め関連づけてあり、プログラム学習支援アプリケーションで選択される制御対象部位や制御テーマに対応する拡張機能が稼動するように構成されている請求項７に記載のプログラム学習システム。
【請求項９】
プログラム学習用アプリケーションでの進捗や習熟度に応じて、基本ツールで使えるコマンドを編成してコンピュータと接続されたサーバからコンピュータにダウンロードする請求項８に記載のプログラム学習システム。
【請求項１０】
コンピュータと接続されたサーバにおいて進捗度や習熟度が管理される請求項９に記載のプログラム学習システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラミングに関して良好な教育環境を提供するプログラム学習用アプリケーション及びプログラム学習システムに関するものである。
【背景技術】
【０００２】
近年、プログラミングは学校においても必須科目になるなど、時代に適した思考力や応用力を鍛える教育ツールとして脚光を浴びている。教育カリキュラムにおいてはWEBやゲームプログラミングなど画面上でのみ動作するプログラムから、PCと接続した外部機器（ロボットやデバイス）の制御までさまざまで、とりわけ、低年齢層に関してはロボットとプログラミング言語を使わないブロック積み立て方式のビジュアル的なツールを利用したものが多く、多くの学習ツール・教室なども開かれている。
【０００３】
特に相応しい先行技術文献が見当たらないため、先行技術文献の欄は省略している。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ほとんどの上記の学習ツールや教室などにおけるカリキュラムに関し、ユーザが学ぶための単元は予め順序立てて決められており、順次単元を習得するようになっている。このため、興味が先にたっても途中を飛ばすと前後の脈絡がなくなるテキストが多く、似たような単元でも一通り地道に学習する必要があるため、退屈したりやる気を損ねることに繋がる。
【０００５】
また、単元をスキップして先をやってみようとしても、少し無理があることも教えてくれなければ、どの程度無理があるのか、どこを習得していないから無理があるのか等も、教室で個別指導が横にいて教えてくれるわけではないため、またたとえ指導者が横にいても定量的に判断するものがなくすべて指導員の裁量に左右されるため、結局、順序立てられた単元に従うか、指導員のたてたカリキュラムに従うほかはない。
【０００６】
プログラミング技術は職人技術でもあり、他の学習カリキュラムのように単純に指導要綱に基づいて指導員の短期的・一時的な訓練によって指導できるものではないため、学習塾等における指導員の質は大きく問われるもので、今後さらなに必要とされる良質な指導員の確保と良質で的確な指導は必須となる。
【０００７】
また、プログラミング教育における最大の目的は、論理的な思考の訓練以上に、自主性・能動性の自然な引き上げであり、これに対してのこれまでの単元積み重ねの指導方法は、あい反する手法であり、この根本問題を解決する必要がある。
【０００８】
本発明は、このような課題を解決した、従来にはない画期的なプログラム学習用アプリケーション及びプログラム学習システムを提供することを目的としている。
【課題を解決するための手段】
【０００９】
本発明は、かかる目的を達成するために、次のような手段を講じたものである。
【００１０】
すなわち、本発明のプログラム学習用アプリケーションは、コンピュータに読み込まれて実行されることにより、コンピュータが、制御対象物のイラスト、その制御対象部位、およびその制御対象部位に必要な機能を与えるための制御テーマをカリキュラム開始初期画面上に表示して、何れの制御対象部位および制御テーマについても学習の頻度、進捗等のマスター状態に無関係に任意に学習要求を受け付けるアシストを行い、学習要求を受け付けた制御テーマに関して、具体的な学習項目をカリキュラム詳細選択欄に表示して何れの学習項目を学習するか選択を選択するアシストを行い、学習項目が選択された場合に学習開始画面を開いて制御対象部位に対し学習項目をクリアするためのプログラム学習のアシストを行うものであり、プログラム学習中に進捗度や習熟度等のマスター状態を感知して、上記アシストの少なくとも一部をマスター状態に応じて行うように構成されたことを特徴とする。
【００１１】
また、カリキュラム開始初期画面では、プログラム学習のマスター状態に応じた成長度を制御対象物の機能向上度として表示するアシストを行うことを特徴とする。
【００１２】
また、カリキュラム詳細選択欄では、各学習項目についてマスター状態を表示するアシストを行うことを特徴とする。
【００１３】
また、カリキュラム詳細選択欄では、未修の学習項目についてはそのうち最も習得レベルの低い学習項目以外は基本的に選択不可とする一方、未修であっても既に習得済の他の制御テーマでテクニックが共通する学習項目については選択可もしくは選択不要とするアシストを行うことを特徴とする。
【００１４】
また、学習開始画面では、アシストコールに応じたアシストを行うことを特徴とする。
【００１５】
また、学習者に要求や選択を求めるタイミングで学習者へ問いかけるアシストを行い、そのアシストは、学習者に対してではなく、画面上の制御対象物に対する使役的な表現の形で行われることを特徴とする。
【００１６】
また、本発明のプログラム学習システムは、上記何れかに記載のプログラム学習支援アプリケーションを基本ツールと連動させて構成したことを特徴とする。
【００１７】
また、プログラム学習用アプリケーションのなかの制御対象部位や制御テーマと、基本ツールの拡張機能とが予め関連づけてあり、プログラム学習支援アプリケーションで選択される制御対象部位や制御テーマに対応する拡張機能が稼動するように構成されていることを特徴とする。
【００１８】
また、プログラム学習用アプリケーションでの進捗や習熟度に応じて、基本ツールで使えるコマンドを編成してコンピュータと接続されたサーバからコンピュータにダウンロードすることを特徴とする。
【００１９】
また、コンピュータと接続されたサーバにおいて進捗度や習熟度が管理されることを特徴とする。
【発明の効果】
【００２０】
以上説明したように、本発明によれば、一人で学習してもどこからでも興味がある部分のプログラミングからチャレンジすることができ、習熟度をコンピュータによって管理判断し定量的な計測結果から、学習者個々に個別に対応した適切なアシストを行うことができる。
【００２１】
また、学習者は画面中の学習対象物（例、ロボットやキャラクタ）に動きを教えてあげる指導者の感覚で学習を進めるため、無意識のうちに自らがプログラミングを習得しつつ、自主的・能動的な意識で飽きることなく学習を進めることができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施形態に係るプログラム学習を支援するシステム構成を示すシステム構成図。
【図２】同実施形態の制御対象部位を示す図。
【図３】制御対象部位とマイコンボード、定義名の関係を示す図。
【図４】同実施形態のカリキュラム開始初期画面を示す図。
【図５】図４の部分拡大図。
【図６】同実施形態中の学習開始画面を示す図。
【図７】同実施形態中のアシスト用ムービー画面を示す図。
【図８】同実施形態中のアシスト用画面シーケンスを示す図。
【図９】同実施形態中のアシストコール待ちを宣言する画面を示す図。
【図１０】同実施形態中のスクラッチ画面を示す図。
【図１１】同実施形態中のアシストコールがあったときの受付画面を示す図。
【図１２】図１０の対応フロー図。
【図１３】図１１の対応フロー図。
【図１４】同実施形態で長時間応答がなかった場合の対応フロー図。
【図１５】同実施形態でプログラム起動から学習開始までの流れを示すシーケンス図。
【図１６】図１５に引き続くシーケンス図。
【図１７】同実施形態で使用するスクラッチの機能とアシスト例を説明する図。
【図１８】同実施形態で使用するスクラッチの機能とアシスト例を説明する図。
【図１９】同実施形態で使用するスクラッチの機能とアシスト例を説明する図。
【図２０】同実施形態で使用するスクラッチの機能とアシスト例を説明する図。
【図２１】同実施形態で使用するスクラッチの機能とアシスト例を説明する図。
【図２２】同実施形態におけるＰＣ側のシステム構成を示す機能ブロック図。
【図２３】同実施形態におけるサーバ側のシステム構成を示す機能ブロック図。
【発明を実施するための形態】
【００２３】
以下、本発明の一実施形態を、図面を参照して説明する。
【００２４】
本発明を実施するための一つの形態例として、図１に示すように、制御対象物であるロボット1、ビジュアルプログラミングツールの一つであるScratch（スクラッチ）２、独自開発した学習支援アプリケーション３等を用いてロボットプログラミング教育を支援する。これらのスクラッチ２や学習支援アプリケーション３は学習者の対象ＰＣにサーバＳｖからインストールして実行する。
【００２５】
そして、ＰＣ上でスクラッチ２や学習支援アプリケーション３を使って作成したプログラムを実行することで、マイコンボード４を介して接続したロボット１を動かす。
【００２６】
スクラッチ２はブロック式プログラミングエディタであり、スクラッチ２が標準的にもつ拡張機能「エクステンション」を利用し、予めロボット１がもつ各パーツをコントロールする機能をコマンドとして提供する。
【００２７】
本実施形態ではＰＣで作成したプログラミングをＵＳＢやBluetooth（登録商標）、Wifiなどの通信機器を通じ、ＰＣからの命令によってマイコンボード４に搭載されたドライバがロボット１に制御信号を出力する。
【００２８】
学習支援アプリケーション３には、次の機能がある。
１）スクラッチ２から出力されるエクステンション命令を受信するhttpサーバ機能
２）エクステンション命令を受信してロボット１のパーツを動かすための命令に置き換え、マイコンボード４へ送信する機能
３）ロボット１のセンサー等からのデータをリアルタイムに受信してスクラッチ２へ転送する機能
４）学習者のＰＣ（マウス・キーボードなど）で操作された全内容をすべて記録し、インターネットＩＮを介してサーバＳｖに転送する機能
５）サーバＳｖより学習者の学習進捗を受信する機能
６）サーバＳｖより学習者のレベルに合わせた学習内容をＰＣ内にダウンロードし、適切な学習カリキュラムを提供する機能
【００２９】
一方、マイコンボード４には、学習支援アプリケーション３から送信される命令に基づいて、ロボット１に接続されているアクチュエータなどのパーツを動作させる機能。また、ロボット１のセンサー等から取得したデータを受信して学習支援アプリケーション３に送信する機能。
【００３０】
ロボット１のほうは、図２のパーツ図に基づくパーツと各種メカニカル機構から構成されている。
【００３１】
具体的にロボット１には、アクチュエータ等としてパーツＰＴ（ＳＰＥＡＫＥＲ１、２、モータＭ１〜Ｍ８、赤外線センサＲＩＰ１、２、ＬＥＤ１〜３等）が搭載されており、これらのパーツＰＴが図１に示すマイコンボード４のＩ／Ｏポート４ａに接続される。Ｉ／Ｏポート４ａと各パーツＰＴは、図３に示すように関係づけられ、プログラム中において各パーツＰＴは右の定義名で呼ばれる。これらが制御対象部位である。
【００３２】
勿論、パーツＰＴは適宜の組み合わせで搭載することができる。
【００３３】
本学習支援は、提供する学習支援アプリケーション３を基本に進める。
【００３４】
図４はカリキュラム開始初期画面ＳＣＲ４である。この画面では、学習対象とする機器であるロボット１のイラスト（ロボットイラスト）ＩＬＬが表示される。制御対象部位である動作可能な各パーツＰＴは、個人進捗別にマスター状態を色表現でわかり易く表示される。例えば、目と音のセンサーＲＩＰ、ＭＩＣ、足首Ｍ４、Ｍ７については未習熟であるため水色、ＬＥＤを光らせる箇所は習得済であるため緑、話すスピーカＳＰＥＡＫＥＲは一部未修得で黄色、手（肩）や足（足の付け根）は習得度が悪いため赤といった具合である。このイラストＩＬＬ上の適宜部位にマウスオーバーすると、そのパーツＰＴに関する制御テーマがテーマ表示欄Ｆｄ１に表示され、イラストＩＬＬ上のマウスオーバー位置ＭＯを変えると、テーマ表示欄Ｆｄ１に表示される制御テーマが切り替わり、マウスオーバーした状態でユーザは、学習の頻度や進捗等のマスター状態に無関係に、すなわち、順序関係なく、マスター完了未完了関係なく、どのパーツＰＴもクリック選択することができる。
【００３５】
画面上のメッセージは、今日はロボットに○○を教えてやろうという具合に、学習者が教育側になる様な使役的な言い回しで表示される。
【００３６】
例えば、図４はロボット１の胸に光るＬＥＤ１〜３の位置がマウスオーバーされており、手テーマ表示欄Ｆｄ１には「胸に光るＲＧＢのＬＥＤでＱｕｍｃｕｍが感情表現できるように教えよう」という制御テーマが説明とともに表示されている。「Ｑｕｍｃｕｍ」とはロボット１に付けられている愛称である。この状態で胸のＬＥＤ１〜３をマウスクリックすると、「Ｍｉｓｓｉｏｎ」と題したカリキュラム詳細選択欄Ｆｄ２と、「Ｙｏｕｒ  Ｍａｓｔｅｒｄ」と題した学習済項目欄Ｆｄ３が表示される。図５はその部分拡大図である。「Ｍｉｓｓｉｏｎ」は、選択したパーツに対してマスターすべき技術項目（カリキュラム）ＣＬをリスト化して表示している。このリストは、予め習得した方がよい技術項目ＣＬほど上にくるように降順となっている。複数の学習項目ＣＬに分解されたカリキュラムは、複数のマスターテクニックリストをもっている。マスターテクニックとは、後述するブロック（ＢＬ）、シーケンス（ＳＱ）、待ち時間（ＷＴ）、繰り返し（ＬＰ）などである。
【００３７】
学習項目ＣＬは、全項目のマスター度合いの平均値を基準にして色分けされている。この項目ＣＬをクリックすると図６に示す学習開始画面ＳＣＲ６が開いて、学習を開始する。図５に示す時間欄Ｔｍはシステムが想定する目標時間であり、学習履歴Ａｒは実際にマスターのために費やしている時間（日付と受講時間数）であって、目標時間Ｔｍに対する受講時間数、マウスクリック数、ロボット起動回数などから予め備えた適宜の計算あるいはテーブルに従って、学習の進捗度や習熟度を表すマスター状態の評価が行われ、前述した色分けで表示される。テクニックリスト欄ＴＬは、その学習項目ＣＬでマスター可能なプログラムテクニックを表示する。「ＢＬ」はスクラッチのブロック型の命令であり、「ＳＱ」はあらかじめ定められた順序または手続きに従って制御の各段階を逐次進めていく体系であり、「ＬＰ」は繰り返しループであり、「ＷＴ」は次のステップに入るまでの待ち時間の挿入である。これら以外にも種々のものが用意されている。
【００３８】
そして、これらのテクニックは、制御対象部位がＬＥＤであっても目のセンサーであっても手足の動きであっても共通する。
【００３９】
さらに言えば、まだ一度も経験していない学習項目は未経験表示（例えば赤表示）され、選択できない。経験済の学習項目ＣＬは経験済表示（例えば黒表示）される。当然、一番最初は全部未経験表示で最もテクニックレベルの低い一番上の学習項目しか選択することはできない。逆に、簡単にできるために飛ばしてもよい学習項目は経験不問表示（例えば青表示）され、クリックすることができる。図示例では、「まずは何色でもいいから光らせる」と「ＲＧＢ順序良く点滅させる」が経験済表示され、「ＲＧＢの組み合わせで好みの色」が未経験表示されている。
【００４０】
一方、「Ｍｉｓｓｉｏｎ」とは別欄の「Ｙｏｕｒ  Ｍａｓｔｅｒｄ」には、他の制御テーマにおいてすでにマスター済の学習項目がリスト表示される。
【００４１】
学習開始時にスクラッチを起動するとき、このマスター済の項目に基づいてスクラッチのエクステンション（コマンド）が編成される。
【００４２】
マスター状態に基づき予め学習者のプログラム学習に関する成長度を割り出す計算式あるいはテーブル等が用意されており、成長度はロボットの機能向上度（成長率）として図４のカリキュラム開始初期画面ＳＣＲ４の右上にパーセント表示される。図４では「２０％」と表示されている。マスター済の項目が増えるほど、また、マスターのために費やした時間が短いほど、成長度（ロボット成長率）の数値が上がる。
【００４３】
図６はスクラッチ３の学習開始画面ＳＣＲ６である。アシスタントＩＬＬは、プログラム学習メニューＭｕを表示する。「やり方ビデを見る」が選択された場合は予め用意している図７のムービー画面ＳＣＲ７を再生し、「一緒にやる」が選択された場合は図８のように、ステップ毎にガイダンス画面ＳＣＲ８ａ→アシスト画面又はムービー画面ＳＣＲ８ｂ→スタンバイ宣言画面ＳＣＲ８ｃ→スクラッチ画面ＳＣＲ８ｄというループを繰り返し、少なくともスクラッチ画面ＳＣＲ８ｄ上にアシスタントＩＬＬを表示してアシストコール待ち宣言をしてスクラッチ画面ＳＣＲ８ｄ上でアシスタントＩＬＬがクリックされることを待つアシストコール待ちのスタンバイ状態にする。「自分でやってみる」が選択された場合は図９に示すアシストコール待ちを宣言する画面ＳＣＲ９ａを表示したうえで画面を図１０に示すスクラッチ画面ＳＣＲ１０に切り替える。ここでも、画面上にアシスタントＩＬＬを表示して図１０に示すスクラッチ画面ＳＣＲ９ｂ上でアシスタントＩＬＬがクリックされることを待つアシストコール待ちのスタンバイ状態にする。対応フローは図１２のとおりである。
【００４４】
図１１はアシストコールがあったときの受付画面ＳＣＲ１１であり、どうしたいのかを選択させる。対応フローは図１３のとおりである。
【００４５】
なお、図１４は長時間対応なしの場合の対応フローを示している。
【００４６】
図１５、図１６はプログラム起動から学習開始までの流れを示している。プログラムを起動させると（ステップＳ１）、ロボット接続チェック（ステップＳ２）を行った後、ＰＣ１はログインユーザーの進捗から受講可能なカリキュラムを再構成して、制御テーマに関するテーマメニューデータをサーバＳｖからダウンロードする（ステップＳ３、Ｓ４）。テーマメニューは図４のカリキュラム開始初期画面に反映される（ステップＳ５）。すなわち、イラストＩＬＬをマウスオーバーしながら制御対象部位（制御テーマ）を選択し、更に学習項目ＣＬを選択すると、サーバＳｖがテーマに必要なエクステンションコマンドを編成して、スクラッチのファイルをＰＣ１にダウンロードする（ステップＳ６、Ｓ７）。制御テーマごとにクリアできるテクニックリストＴＬを予め持っており、これは上記ステップＳ５において図４のカリキュラム開始初期画面ＳＣＲのリキュラム詳細選択欄Ｆｄ２に反映される。スクラッチを起動（ステップＳ８）すると、プログラム学習に入り、図６の学習開始画面ＳＣＲ６から選択される方法で学習を行う。学習中は、アシストコールのたびにアシストのダウンロードと表示を行う（ステップＳ９、Ｓ１０）。
【００４７】
図１６においてテーマを終了したとき（ステップＳ１１）、終了時間や学習状況など、ローカルに記録したデータをアップロードする（ステップＳ１２）。このとき、前述したように受講時間数、マウスクリック数、ロボット起動回数などから予め備えられている計算式やテーブル等に基づきマスター状態（理解度段階）を割り出してテクニックリストに記録する。理解度段階とは基準とされる時間に対して、早い／ちょうどいい／遅い等の段階評価である。このようにして、サーバＳｖには進捗度や習熟度等のマスター状態が管理され、次の再構成の際に図４のカリキュラム開始初期画面ＳＣＲ４に反映される。具体的には、選択したテーマで以前受講したテーマに存在したテクニックで習熟度がよければ（理解度段階が高いものがあれば）、そのテクニック部分についてのカリキュラムは優先度を下げて表示する。逆に、習熟度が低ければ、そのカリキュラムの優先度を上げて表示する。
【００４８】
ここで、図１７〜図２１を参照してプログラミングエディタであるスクラッチ３の機能とアシスト例を簡単に紹介しておく。
【００４９】
図１７において右上はキャラクタＣｈを表示するステージ１０１であり、ステージ１０１中にはスプライトと呼ばれるキャラクタＣｈが表示される。ここでのスプライトＣｈは前述したロボット１のキャラクタＩＬＬである。右下はスプライト一覧１０２、真ん中はプログラムを作成するためのスクリプトエリア１０３、左上は命令種別エリア１０４、左下は選択した命令種別に応じて表示される命令集エリア１０５である。命令集エリア１０５から命令を選択し、スクリプトエリア１０３にドラッグドロップすることでプログラムの作成が進行する。
【００５０】
命令種別には、「制御」や「動き」などがある。「制御」は例えば図１８に示すように、「制御スタートのほか、「○○がクリックされたとき」、「○○キーが押されたとき」、「スプライトがクリックされたとき」といったイベント発生ブロックのほか、「○回繰り返す」、「ずっと」、あるいは「待つ」といった嵌め込み用ブロックが用意されている。これは、図４、５に示したブロックＢＬ、繰り返しＬＰ、待つＷＴなどのテクニックに相当する。
【００５１】
一方、「動き」には、図１９に示すように、「手を動かす」、「足を動かす」、「首を回す」等の動作が用意してある。「手を動かす」に関しては、右手か左手か、相対（何度）か絶対（何度のトコロ）かの入力欄を用意し、「足を動かす」に関しては、右足首か左足首か、右手か左手かに加え、相対（何度）か、図示しない絶対（何度のトコロ）かの入力欄を用意している。「首を動かす」、「ＬＥＤを光らせる」についてもこれに準ずる。制御対象部位である手、足、首は図４に示したパーツＰＴに相当し、テクニックの組み合わせはシーケンスＳＱに相当する。
【００５２】
図１７のスクリプトエリア１０３でプログラムを作成した後、ロボット１のスプライトＣｈ（ＩＬＬ）をクリックすると、図１に示すＰＣがモータ制御パルス等をリアルタイムで生成してマイコンボード４に送信し、マイコンボード４内のドライバでロボット１に搭載したアクチュエータ等を駆動する。このとき、図４のイラストＩＬＬが同じ動きをするように画像あるいはプログラムが用意されている。
【００５３】
図２０は例えば図１９の「手を動かす」の単元に含まれるカリキュラムを示している。iはサクッとある位置に動かす方法をロボット１に教え、iiはゆっくりある位置まで動かす方法をロボット１に教え、iiiは左と右を同時に動かす方法をロボット１に教え、ivは左と右を交互に動かす方法をロボット１に教え、vはキーボードの↑↓で反応する手の実現をロボット１に教え、viは右手と左手の動きをキーボードに割り当てる方法をロボット１に教える。図２１はステップごと、或いはわからないから教えて欲しいが選択されたときに学習をアシストする内容を書き出したもので、iでは絶対位置項目をスクリプトエリアにドラッグドロップして項目を入力すればよいこと、iiでは相対位置項目をスクリプトエリアにドラッグドロップして項目を入力すればよいこと、iiiでは右と左を繰り返しブロックの中に嵌め込んで繰り返し制御をさせるスクリプトを作ればよいこと、ivではiiiで右と左の方向を逆にすればよいこと、vでは矢印キーが押されたらというイベント項目をスクリプトエリアにドラッグドロップしてブロックの頭につければよいこと、viではvとi〜ivを組み合わせればよいこと等々をアシスト画面又はムービー画面を通じてサポートする。viiは両手を動かす課題の単元である。
【００５４】
履修管理部はその単元について履修済のチェックフラグを立て、習熟度に反映させる。
【００５５】
以上は、他のアイテムについても同様である。
【００５６】
図２２はコンピュータＰＣ側のシステム構成を機能面から説明する機能ブロック図であり、図２３はサーバＳｖ側のシステム構成を機能面から説明する機能ブロック図である。
【００５７】
サーバＳｖのスクラッチ管理部Ｂ１及びプログラム学習アプリ管理部Ｂ２は、スクラッチ２及びプログラム学習アプリケーション３を管理する。これらは、要求に応じてコンピュータＰＣにダウンロードされる。
【００５８】
かかるダウンロードによって、コンピュータＰＣには、以下に述べる機能Ａ１〜Ａ４等が備わる。
【００５９】
学習要求受付部Ａ１は、制御対象物であるロボット１のイラストＩＬＬ、その制御対象部位であるパーツＰＴ、およびその制御対象部位であるパーツＰＴに必要な機能を与えるための制御テーマをカリキュラム開始初期画面ＳＱＲ４上に表示する。そして、何れのパーツＰＴおよび制御テーマについても学習の頻度、進捗に無関係に任意に学習要求を受け付けるアシストを行う。
【００６０】
カリキュラム詳細選択部Ａ２は、学習要求を受け付けた制御テーマに関して、具体的な学習項目ＣＬをカリキュラム詳細選択欄Ｆ２に表示して何れの学習項目ＣＬを学習するかのアシストを行う。その際、カリキュラム詳細選択欄Ｆｄにおいて、未修の学習項目ＣＬについてはそのうち最もレベルの低い学習項目以外は基本的に選択不可とする一方、未修であっても既に習得済の他の制御テーマでテクニックが共通する学習項目については選択可もしくは選択不要とするアシストを行う。このとき、習得難易度が低いものから降順にする表示アシストも行う。
【００６１】
プログラム学習アシスト部Ａ３は、学習項目ＣＬが選択された場合に図６の学習開始画面ＳＣＲ４を開いて制御対象部位に対し学習項目ＣＬをクリアするためのプログラム学習のアシストを図６〜図１４に基づいて説明した態様で行う。このアシストには、サーバＳｖのアシストファイル管理部Ｂ６から適宜必要なデータが取り出される。
【００６２】
進捗管理部Ａ４は、プログラム学習中に進捗度や習熟度等のマスター状態を感知してログをとり、サーバＳｖに送信する。サーバＳｖのマスター状態管理部Ｂ５はこれを管理し、次にＰＣから制御テーマの選択があったときに、進捗度や習熟度等のマスター状態に応じてカリキュラム編成部Ｂ３が学習項目ＣＬを選択してカリキュラムを送信する。これを受信したＰＣは、カリキュラム開始初期画面ＳＣＲ４上でかかる学習項目ＣＬを表示するアシストを行う。また、カリキュラム開始初期画面ＳＣＲ４において、マスター状態に応じた制御対象物の機能向上度（ロボット成長率）を表示するアシストを行う。さらに、カリキュラム詳細選択欄Ｆｄ２において、各学習項目ＣＬについて習得の有無、受講時間や進捗に基づいて習熟度（マスター状態）を色分け表示するアシストを行う
【００６３】
さらに、以上において学習者の要求や選択を求めるタイミングで学習者へ問いかけるアシストを行い、そのアシストは、学習者に対してではなく、画面上の制御対象物であるロボット１に対する使役的な表現（「何をさせるか」という文言）の形でアシストを行う。ここでも、プログラム学習アシスト部Ａ３とアシストファイル管理部Ｂ６とが連携して対応する。
【００６４】
また、プログラム学習システムとしては、以下の特徴を有する。
【００６５】
プログラム学習支援アプリケーション３を基本ツールであるスクラッチ２と連動させて構成されている点。
【００６６】
プログラム学習支援アプリケーション３のなかの制御対象部位（パーツＰＴ）や制御テーマと、基本ツールであるスクラッチに備わる拡張機能（エクステンション）とが予め関連づけてあり、プログラム学習支援アプリケーションで選択される制御対象部位や制御テーマに対応する拡張機能（エクステンション）が稼動するようにサーバのエクステンション編成部Ｂ４が編成を行っている点。
【００６７】
プログラム学習支援アプリケーション３での進捗や習熟度等を通じて基本ツールであるスクラッチのコマンドがスクラッチ管理部Ｂ１やエクステンション編成部Ｂ４で編成される点。
【００６８】
以上のように、本実施形態のプログラム学習用アプリケーションは、コンピュータに読み込まれて実行されることにより、コンピュータが以下の処理を行なっている。
（１）制御対象物であるロボットのイラスト、その目やＬＥＤや手足等の制御対象部位、およびその制御対象部位に必要な、距離を測る、ＬＥＤを光らせる、手足を動かすといった機能を与えるための制御テーマをカリキュラム開始初期画面上に表示する。
（２）何れの制御対象部位および制御テーマについても学習の頻度、進捗に無関係に任意に学習要求を受け付ける。
（３）学習要求を受け付けた制御テーマに関して、具体的な機能を与えるための学習項目をカリキュラム詳細選択欄に表示して何れの学習項目を選択するかの選択を求める。
（４）学習項目が選択された場合に学習開始画面を開いて制御対象部位に対し学習項目をクリアするためのプログラム学習支援を行う。
（５）プログラム学習中に進捗度や習熟度等のマスター状態を感知して、上記一連の処理のなかで進捗度や習熟度等のマスター状態に応じたアシストを行う。
【００６９】
このように支援アプリケーションを構成すると、一人で学習してもどこからでも興味がある部分のプログラミングからチャレンジすることができる。しかも、プログラム学習の進捗度や習熟度等のマスター状態の感知がなされ、それに応じたアシストがなされるため、指導者のように裁量や資質に左右されることがない。このようにして、自由なカリキュラムのもと、誰に対しても常時均質な学習支援環境を提供することができる。また、学習者は画面中の学習対象物であるロボットに機能を与えてあげる形をとるため、指導者の感覚を持ちながら、無意識のうちに学習を進め自らがプログラミングを習得することができ、自主的・能動的な意識で飽きることなく学習を進めることが可能となる。
【００７０】
また、カリキュラム開始初期画面では、プログラム学習のマスター状態に応じた制御対象物（ロボット）の機能向上度（ロボット成長率）を表示するアシストを行うようにしているので、自らの学習を第三者的に正当評価を行うことができることで、学習の進捗や習熟度を無意識のうちに自らの定量的な数値の積み重ねに置き換えることができる。
【００７１】
カリキュラム詳細選択欄では、各学習項目について習得の有無、習得に要した時間や進捗を総合的に勘案して習熟度を（評価として）表示するアシストを行うようにしている点も同様の効果を奏する。
【００７２】
特に、カリキュラム詳細選択欄では、未修の学習項目についてはそのうち最もレベルの低い学習項目以外は基本的に選択不可とする一方、未修であっても既に習得済の他の制御テーマでテクニックが共通する学習項目については選択可もしくは選択不要とするアシストを行うようにしているので、進捗度や習熟度に応じた円滑な学習の誘導を行うことができる。
【００７３】
学習開始画面では、アシストコールに応じたアシストを行うようにしているため、学習者が発信する進捗状況にマッチしたアシストを行うことができる。
【００７４】
さらに、学習者の要求や選択を求めるタイミングで学習者へ問いかけるアシストを行い、そのアシストは、学習者に対してではなく、画面上の制御対象物であるロボットに対する使役的な表現（「何をさせるか」という文言）の形で行われるので、学習者に「自分がプログラム対象物に対して教える」という意識を自覚させられるため、自発的な学習態度をより助長させる。
【００７５】
システムとしては、プログラム学習支援アプリケーションを基本ツールであるスクラッチと連動させて構成しているため、必要に応じて基本ツールに切り替えつつ、本アプリケーションを主体としてプログラム学習支援環境を整えることができる。
【００７６】
この場合、プログラム学習支援アプリケーションのなかの制御対象部位や制御テーマと、基本ツールに備わる拡張機能であるエクステンションとが予め関連づけてあり、プログラム学習支援アプリケーションで選択される制御対象部位や制御テーマに対応する拡張機能（エクステンション）が稼動するように構成されているので、基本ツールを学習者のレベルにマッチした状態で利用することができる。
【００７７】
そして、プログラム学習支援アプリケーションでの進捗や習熟度に応じて、基本ツールで使えるコマンドを編成してコンピュータと接続されたサーバからコンピュータにダウンロードするようにしているので、実行プログラムの最小化が図れる。
【００７８】
また、コンピュータと接続されたサーバにおいて進捗度や習熟度が管理されるようにしているので、所定のユーザーネームとパスワードでログインすれば、どこでも継続的な学習を行うことができる。
【００７９】
その他、このアプリケーションをロボットのプログラム以外の種々の制御対象物に適用するなど、本発明の趣旨を逸脱しない範囲で種々変形が可能である。
【符号の説明】
【００８０】
１…制御対象物（ロボット）
２…基本ツール（スクラッチ）
３…プログラム学習アプリケーション
Ｆｄ２…カリキュラム詳細選択欄
ＩＬＬ…ロボットのイラスト
ＰＣ…コンピュータ
ＰＴ…制御対象部位（パーツ）
ＳＱＲ４…カリキュラム開始初期画面
ＳＱＲ６…学習開始画面
【図１】
2018072726.tif 000003
【図２】
2018072726.tif 000004
【図３】
2018072726.tif 000005
【図４】
2018072726.tif 000006
【図５】
2018072726.tif 000007
【図６】
2018072726.tif 000008
【図７】
2018072726.tif 000009
【図８】
2018072726.tif 000010
【図９】
2018072726.tif 000011
【図１０】
2018072726.tif 000012
【図１１】
2018072726.tif 000013
【図１２】
2018072726.tif 000014
【図１３】
2018072726.tif 000015
【図１４】
2018072726.tif 000016
【図１５】
2018072726.tif 000017
【図１６】
2018072726.tif 000018
【図１７】
2018072726.tif 000019
【図１８】
2018072726.tif 000020
【図１９】
2018072726.tif 000021
【図２０】
2018072726.tif 000022
【図２１】
2018072726.tif 000023
【図２２】
2018072726.tif 000024
【図２３】
2018072726.tif 000025