(57)【要約】【課題】  コンピュータプログラミング教育において、学習者のプログラミング過程を把握し、学習者の思考過程、理解の不足の箇所、解答中の思考プロセスの時間経過を把握し、プログラミング教育を支援する。【解決手段】  本発明のプログラミング教育支援システムは、学習者が学習者用クライアント300上で行うプログラム作成課題の解答過程を、学習管理サーバ200がネットワーク100を通してオンラインでリアルタイムに把握してデータベース210に保存してデータベース化し、学習管理者が学習管理者用クライアント400を通じてデータベース210に記録したデータを読出し、そのデータ基に任意の時間軸で解答過程を再現したりグラフによる視覚化を行ったりして、各学習者のプログラミング習熟度を容易にかつ的確に把握できるようにしたものである。【選択図】      図１
2006227218.tif 000002
【特許請求の範囲】
【請求項１】
学習管理サーバと、学習者用クライアントと、学習管理者用クライアントと、これらを接続する情報ネットワークとで構成されるプログラミング教育支援システムであって、
前記学習管理サーバは、
前記学習者用クライアントからのプログラム編集作業の履歴データを保存するデータベースと、
前記データベースに対するクライアントごとのデータの書込み及び読出しを管理するデータ記憶管理手段と、
前記学習者用クライアントで編集中のプログラムをコンパイルし、当該プログラムを実行し、その結果を当該学習者用クライアントに送信するコンパイル・プログラム実行処理手段とを備え、
前記学習者用クライアントは、
キー入力手段と、
諸情報の表示手段と、
前記表示手段の画面上に表示されているポインタと部品の移動、部品の選択を操作するためのポインティングデバイスと、
前記表示手段にプログラム編集ウインドウを表示させると共に、当該プログラム編集ウインドウに、入力位置を示すカーソルと前記キー入力手段により入力されたキー入力信号に対応する文字とを表示させるプログラミング支援手段と、
前記キー入力手段から入力されたキー入力信号を、前記プログラム編集ウインドウ内の入力位置及び当該キー入力信号の入力時刻情報と共に前記学習管理サーバに送信する作業データ送信手段と、
前記プログラム編集ウインドウに表示されているプログラムに対してコンパイル指令及びプログラム実行指令を与えるコンパイル・実行指令手段と、
前記コンパイル指令及びプログラム実行指令を前記学習管理サーバに送信するコンパイル・実行指令送信手段と、
前記表示手段にコンパイル・プログラム実行ウインドウを表示させると共に、前記学習管理サーバからのコンパイル・プログラム実行結果を受信して当該コンパイル・プログラム実行ウインドウに表示させるコンパイル・プログラム実行結果表示処理手段とを備え、
前記学習管理者用クライアントは、
キー入力手段と、
諸情報の表示手段と、
前記表示手段の画面上に表示されているポインタと部品の移動、部品の選択を操作するためのポインティングデバイスと、
前記学習管理サーバに対して、前記学習者用クライアントの識別番号を指定して前記プログラム編集作業の履歴データの送信要求を発信する手段と、
前記学習管理サーバから受信した前記プログラミング編集作業の経過時間とプログラム文字数とを軸とするグラフとして表示させる作業履歴表示処理手段を備えたことを特徴とするプログラミング教育支援システム。
【請求項２】
学習者用クライアントからのプログラム編集作業の履歴データを保存するデータベースと、
前記データベースに対するクライアントごとのデータの書込み及び読出しを管理するデータ記憶管理手段と、
前記学習者用クライアントで編集中のプログラムをコンパイルし、当該プログラムを実行し、その結果を当該学習者用クライアントに送信するコンパイル・プログラム実行処理手段とを備えた学習管理サーバ。
【請求項３】
キー入力手段と、
諸情報の表示手段と、
前記表示手段の画面上に表示されているポインタと部品の移動、部品の選択を操作するためのポインティングデバイスと、
前記表示手段にプログラム編集ウインドウを表示させると共に、当該プログラム編集ウインドウに、入力位置を示すカーソルと前記キー入力手段により入力されたキー入力信号に対応する文字とを表示させるプログラミング支援手段と、
前記キー入力手段から入力されたキー入力信号を、前記プログラム編集ウインドウ内の入力位置及び当該キー入力信号の入力時刻情報と共に学習管理サーバに送信する作業データ送信手段と、
前記プログラム編集ウインドウに表示されているプログラムに対してコンパイル指令及びプログラム実行指令を与えるコンパイル・実行指令手段と、
前記コンパイル指令及びプログラム実行指令を前記学習管理サーバに送信するコンパイル・実行指令送信手段と、
前記表示手段にコンパイル・プログラム実行ウインドウを表示させると共に、前記学習管理サーバからのコンパイル・プログラム実行結果を受信して当該コンパイル・プログラム実行ウインドウに表示させるコンパイル・プログラム実行結果表示処理手段とを備えた学習者用クライアント。
【請求項４】
キー入力手段と、
諸情報の表示手段と、
前記表示手段の画面上に表示されているポインタと部品の移動、部品の選択を操作するためのポインティングデバイスと、
学習管理サーバに対して、学習者用クライアントの識別番号を指定してプログラム編集作業の履歴データの送信要求を発信する手段と、
前記学習管理サーバから受信した前記プログラミング編集作業の経過時間とプログラム文字数とを軸とするグラフとして表示させる作業履歴表示処理手段を備えた学習管理者用クライアント。
【請求項５】
学習管理サーバと、学習者用クライアントと、学習管理者用クライアントと、これらを接続する情報ネットワークとで構成されるプログラミング教育支援システムにより実行されるプログラミング教育支援プログラムであって、
前記学習管理サーバにて、前記学習者用クライアントからのプログラム編集作業の履歴データをデータベースに保存するステップと、
前記学習管理サーバにて、前記データベースに対するクライアントごとのデータの書込み及び読出しを管理するステップと、
前記学習管理サーバにて、前記学習者用クライアントで編集中のプログラムをコンパイルし、当該プログラムを実行し、その結果を当該学習者用クライアントに送信するステップと、
前記学習者用クライアントにて、表示手段にプログラム編集ウインドウを表示させると共に、当該プログラム編集ウインドウに、入力位置を示すカーソルとキー入力手段により入力されたキー入力信号に対応する文字とを表示させるステップと、
前記学習者用クライアントにて、前記キー入力手段から入力されたキー入力信号を、前記プログラム編集ウインドウ内の入力位置及び当該キー入力信号の入力時刻情報と共に前記学習管理サーバに送信するステップと、
前記学習者用クライアントにて、前記プログラム編集ウインドウに表示されているプログラムに対してコンパイル指令及びプログラム実行指令を与えるステップと、
前記学習者用クライアントにて、前記コンパイル指令及びプログラム実行指令を前記学習管理サーバに送信するステップと、
前記学習者用クライアントにて、前記表示手段にコンパイル・プログラム実行ウインドウを表示させると共に、前記学習管理サーバからのコンパイル・プログラム実行結果を受信して当該コンパイル・プログラム実行ウインドウに表示させるステップと、
前記学習管理者用クライアントにて、前記学習管理サーバに対して、前記学習者用クライアントの識別番号を指定して前記プログラム編集作業の履歴データの送信要求を発信するステップと、
前記学習管理者用クライアントにて、前記学習管理サーバから受信した前記プログラミング編集作業の経過時間とプログラム文字数とを軸とするグラフとして表示させるステップとを有するプログラミング教育支援プログラム。
【請求項６】
学習者用クライアントからのプログラム編集作業の履歴データをデータベースに保存するステップと、
前記データベースに対するクライアントごとのデータの書込み及び読出しを管理するステップと、
前記学習者用クライアントで編集中のプログラムをコンパイルし、当該プログラムを実行し、その結果を当該学習者用クライアントに送信するステップとをコンピュータに実行させる学習管理サーバ用プログラミング教育支援プログラム。
【請求項７】
表示手段にプログラム編集ウインドウを表示させると共に、当該プログラム編集ウインドウに、入力位置を示すカーソルとキー入力手段により入力されたキー入力信号に対応する文字とを表示させるステップと、
前記キー入力手段から入力されたキー入力信号を、前記プログラム編集ウインドウ内の入力位置及び当該キー入力信号の入力時刻情報と共に学習管理サーバに送信するステップと、
前記プログラム編集ウインドウに表示されているプログラムに対してコンパイル指令及びプログラム実行指令を与えるステップと、
前記コンパイル指令及びプログラム実行指令を前記学習管理サーバに送信するステップと、
前記表示手段にコンパイル・プログラム実行ウインドウを表示させると共に、前記学習管理サーバからのコンパイル・プログラム実行結果を受信して当該コンパイル・プログラム実行ウインドウに表示させるステップとをコンピュータに実行させる学習者用プログラミング教育支援プログラム。
【請求項８】
学習管理サーバに対して、学習者用クライアントの識別番号を指定してプログラム編集作業の履歴データの送信要求を発信するステップと、
前記学習管理サーバから受信した前記プログラミング編集作業の経過時間とプログラム文字数とを軸とするグラフとして表示させるステップとをコンピュータに実行させる学習管理者用プログラミング教育支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラミング教育支援システムとそれを構成するクライアント、サーバ及びそれに用いるプログラミング教育支援プログラムに関する。
【背景技術】
【０００２】
コンピュータ援用教育の現状として、コンピュータを利用した試験システムがある。しかしながら、現実のコンピュータ利用の試験システムは、単に答案用紙を電子媒体に置き換え、最終解答をコンピュータによって自動的に採点するだけのものにすぎず、試験を受けている学習者が課題に対してどのように解答していくかの解答過程を把握することはできなかった。
【０００３】
ところが、特に初級のコンピュータプログラミング教育の場合、学習者のプログラミング過程をリアルタイムに把握することができれば、各学習者の思考過程、理解の不足の箇所、解答中の思考プロセスの時間経過等を把握することができ、また複数の学習者の思考過程のパターン分類を行うこともでき、学習指導に役立てることができる。
【０００４】
オンラインシステムを用いた教育システムとして、ウェブベース学習における学習履歴画面の時系列再現システムが開発されている。しかしながら、この従来技術とて、学習履歴画面の再現に終始している。
【０００５】
さらに、現状のプログラミング教育としての初級のコンピュータプログラミング教育では、学習項目（繰り返し処理等）の講義し、その項目を使用する演習課題の提示して学習者にプログラムを作成させ、また作成したプログラムをコンパイルし、実行させるデバッグ作業を行わせ、学習者が完成したと判断した時点でそのプログラムと実行結果を提出させる手法をとっている。
【０００６】
しかしながら、このプログラミング教育手法では、学習者がどのような過程を経て解答を導いたかの時系列的な把握ができず、それゆえにプログラミング作業過程で間違いを起こしやすい箇所や理解が不足している箇所の把握や解答を終えるまでにかかった時間やデバッグの回数等の把握が困難であった。例えば、解答結果としては１００点満点の二人の答案でも、５分で解けた学習者と３０分かかった学習者とでは当然能力差があり、それを評価に考慮すべきであるが、従来のプログラミング教育では、それができなかった。また、教員が学習指導の改善を検討するための材料も不足しがちであった。
【特許文献１】特開２００１−１３８６１号公報
【特許文献２】特開２００３−２８８２１２号公報
【特許文献３】特開２００３−２４８４１８号公報
【特許文献４】特開２００４−８５９９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、このような従来の技術的課題に鑑みてなされたもので、学習者による課題の解答過程をオンラインでリアルタイムに把握してデータベース化し、記録したデータを基に任意の時間軸で解答過程を再現したりグラフによる視覚化を行ったりして、各学習者のプログラミング習熟度を容易にかつ的確に把握できるプログラミング教育支援システム及びプログラミング教育支援プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
請求項１の発明は、学習管理サーバと、学習者用クライアントと、学習管理者用クライアントと、これらを接続する情報ネットワークとで構成されるプログラミング教育支援システムであって、前記学習管理サーバは、前記学習者用クライアントからのプログラム編集作業の履歴データを保存するデータベースと、前記データベースに対するクライアントごとのデータの書込み及び読出しを管理するデータ記憶管理手段と、前記学習者用クライアントで編集中のプログラムをコンパイルし、当該プログラムを実行し、その結果を当該学習者用クライアントに送信するコンパイル・プログラム実行処理手段とを備え、前記学習者用クライアントは、キー入力手段と、諸情報の表示手段と、前記表示手段の画面上に表示されているポインタと部品の移動、部品の選択を操作するためのポインティングデバイスと、前記表示手段にプログラム編集ウインドウを表示させると共に、当該プログラム編集ウインドウに、入力位置を示すカーソルと前記キー入力手段により入力されたキー入力信号に対応する文字とを表示させるプログラミング支援手段と、前記キー入力手段から入力されたキー入力信号を、前記プログラム編集ウインドウ内の入力位置及び当該キー入力信号の入力時刻情報と共に前記学習管理サーバに送信する作業データ送信手段と、前記プログラム編集ウインドウに表示されているプログラムに対してコンパイル指令及びプログラム実行指令を与えるコンパイル・実行指令手段と、前記コンパイル指令及びプログラム実行指令を前記学習管理サーバに送信するコンパイル・実行指令送信手段と、前記表示手段にコンパイル・プログラム実行ウインドウを表示させると共に、前記学習管理サーバからのコンパイル・プログラム実行結果を受信して当該コンパイル・プログラム実行ウインドウに表示させるコンパイル・プログラム実行結果表示処理手段とを備え、前記学習管理者用クライアントは、キー入力手段と、諸情報の表示手段と、前記表示手段の画面上に表示されているポインタと部品の移動、部品の選択を操作するためのポインティングデバイスと、前記学習管理サーバに対して、前記学習者用クライアントの識別番号を指定して前記プログラム編集作業の履歴データの送信要求を発信する手段と、前記学習管理サーバから受信した前記プログラミング編集作業の経過時間とプログラム文字数とを軸とするグラフとして表示させる作業履歴表示処理手段を備えたものである。
【０００９】
請求項２の発明の学習管理サーバは、学習者用クライアントからのプログラム編集作業の履歴データを保存するデータベースと、前記データベースに対するクライアントごとのデータの書込み及び読出しを管理するデータ記憶管理手段と、前記学習者用クライアントで編集中のプログラムをコンパイルし、当該プログラムを実行し、その結果を当該学習者用クライアントに送信するコンパイル・プログラム実行処理手段とを備えたものである。
【００１０】
請求項３の発明の学習者用クライアントは、キー入力手段と、諸情報の表示手段と、前記表示手段の画面上に表示されているポインタと部品の移動、部品の選択を操作するためのポインティングデバイスと、前記表示手段にプログラム編集ウインドウを表示させると共に、当該プログラム編集ウインドウに、入力位置を示すカーソルと前記キー入力手段により入力されたキー入力信号に対応する文字とを表示させるプログラミング支援手段と、前記キー入力手段から入力されたキー入力信号を、前記プログラム編集ウインドウ内の入力位置及び当該キー入力信号の入力時刻情報と共に学習管理サーバに送信する作業データ送信手段と、前記プログラム編集ウインドウに表示されているプログラムに対してコンパイル指令及びプログラム実行指令を与えるコンパイル・実行指令手段と、前記コンパイル指令及びプログラム実行指令を前記学習管理サーバに送信するコンパイル・実行指令送信手段と、前記表示手段にコンパイル・プログラム実行ウインドウを表示させると共に、前記学習管理サーバからのコンパイル・プログラム実行結果を受信して当該コンパイル・プログラム実行ウインドウに表示させるコンパイル・プログラム実行結果表示処理手段とを備えたものである。
【００１１】
請求項４の発明の学習管理者用クライアントは、キー入力手段と、諸情報の表示手段と、前記表示手段の画面上に表示されているポインタと部品の移動、部品の選択を操作するためのポインティングデバイスと、学習管理サーバに対して、学習者用クライアントの識別番号を指定してプログラム編集作業の履歴データの送信要求を発信する手段と、前記学習管理サーバから受信した前記プログラミング編集作業の経過時間とプログラム文字数とを軸とするグラフとして表示させる作業履歴表示処理手段を備えたものである。
【００１２】
請求項５の発明は、学習管理サーバと、学習者用クライアントと、学習管理者用クライアントと、これらを接続する情報ネットワークとで構成されるプログラミング教育支援システムにより実行されるプログラミング教育支援プログラムであって、前記学習管理サーバにて、前記学習者用クライアントからのプログラム編集作業の履歴データをデータベースに保存するステップと、前記データベースに対するクライアントごとのデータの書込み及び読出しを管理するステップと、前記学習者用クライアントで編集中のプログラムをコンパイルし、当該プログラムを実行し、その結果を当該学習者用クライアントに送信するステップとを実行させ、前記学習者用クライアントにて、表示手段にプログラム編集ウインドウを表示させると共に、当該プログラム編集ウインドウに、入力位置を示すカーソルとキー入力手段により入力されたキー入力信号に対応する文字とを表示させるステップと、前記キー入力手段から入力されたキー入力信号を、前記プログラム編集ウインドウ内の入力位置及び当該キー入力信号の入力時刻情報と共に前記学習管理サーバに送信するステップと、前記プログラム編集ウインドウに表示されているプログラムに対してコンパイル指令及びプログラム実行指令を与えるステップと、前記コンパイル指令及びプログラム実行指令を前記学習管理サーバに送信するステップと、前記表示手段にコンパイル・プログラム実行ウインドウを表示させると共に、前記学習管理サーバからのコンパイル・プログラム実行結果を受信して当該コンパイル・プログラム実行ウインドウに表示させるステップとを実行させ、前記学習管理者用クライアントにて、前記学習管理サーバに対して、前記学習者用クライアントの識別番号を指定して前記プログラム編集作業の履歴データの送信要求を発信するステップと、前記学習管理サーバから受信した前記プログラミング編集作業の経過時間とプログラム文字数とを軸とするグラフとして表示させるステップとを実行させるものである。
【００１３】
請求項６の発明の学習管理サーバ用プログラミング教育支援プログラムは、学習者用クライアントからのプログラム編集作業の履歴データをデータベースに保存するステップと、前記データベースに対するクライアントごとのデータの書込み及び読出しを管理するステップと、前記学習者用クライアントで編集中のプログラムをコンパイルし、当該プログラムを実行し、その結果を当該学習者用クライアントに送信するステップとをコンピュータに実行させるものである。
【００１４】
請求項７の発明の学習者用プログラミング教育支援プログラムは、表示手段にプログラム編集ウインドウを表示させると共に、当該プログラム編集ウインドウに、入力位置を示すカーソルとキー入力手段により入力されたキー入力信号に対応する文字とを表示させるステップと、前記キー入力手段から入力されたキー入力信号を、前記プログラム編集ウインドウ内の入力位置及び当該キー入力信号の入力時刻情報と共に学習管理サーバに送信するステップと、前記プログラム編集ウインドウに表示されているプログラムに対してコンパイル指令及びプログラム実行指令を与えるステップと、前記コンパイル指令及びプログラム実行指令を前記学習管理サーバに送信するステップと、前記表示手段にコンパイル・プログラム実行ウインドウを表示させると共に、前記学習管理サーバからのコンパイル・プログラム実行結果を受信して当該コンパイル・プログラム実行ウインドウに表示させるステップとをコンピュータに実行させるものである。
【００１５】
請求項８の発明の学習管理者用プログラミング教育支援プログラムは、学習管理サーバに対して、学習者用クライアントの識別番号を指定してプログラム編集作業の履歴データの送信要求を発信するステップと、前記学習管理サーバから受信した前記プログラミング編集作業の経過時間とプログラム文字数とを軸とするグラフとして表示させるステップとをコンピュータに実行させるものである。
【発明の効果】
【００１６】
本発明によれば、コンピュータプログラミング教育において、学習者のプログラミング過程を把握することができ、学習者の思考過程、理解の不足の箇所、解答中の思考プロセスの時間経過を把握し評価することができ、プログラミング教育を支援することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態を図に基づいて詳説する。図１は本発明の一つの実施の形態のプログラミング教育支援システムのシステム構成を示している。本実施の形態のプログラミング教育支援システムは、有線、無線のＬＡＮ及びインターネット等の情報ネットワーク１００で接続された学習管理用サーバ２００、複数台の学習者用クライアント３００、学習管理者用クライアント４００、インターネット接続に介在するウェブサーバ５００から構成されている。なお、学習管理者用クライアント４００の機能は学習管理用サーバ２００に組み込み、兼用させることもできる。学習管理用サーバ２００は各クライアントの入力データを登録し、管理するデータベース２１０を備えている。また情報ネットワーク１００に接続されているコンピュータ間はウェブサーバ５００を介してＴＣＰ／ＩＰのプロトコルにてデータ通信を行う設定である。
【００１８】
図２に示すように、学習管理サーバ２００は、情報ネットワーク１００との間でＴＣＰ／ＩＰベースの通信を行うネットワーク接続部２０１、ネットワーク接続部２０１で受信したデータ信号からコマンドや入力データを取り出す入力処理部２０２、コマンドや入力データの送信元クライアントＩＤを識別し、また出力データに送信先のクライアントＩＤを付加するクライアント識別部２０３、データベース２１０にクライアント別に入力データを蓄積する入力データ蓄積処理部２０４、コマンドに基づいてデータベース２１０から該当する記録データを読み出す記録データ読出し処理部２０５、記録データ読出し処理部２０５が読み出した作成中あるいは完成後のプログラムデータをコンパイルし、プログラム実行するコンパイル・実行処理部２０６、クライアント識別部２０３が送信先クライアントのＩＤを送信先にして、記録データ読出し処理部２０５の読み出したデータやコンパイル・実行処理部２０６のコンパイル・プログラム実行結果をネットワーク接続部２０１を通じて情報ネットワーク１００に送信する出力処理部２０７を備えている。なお、ウェブサーバ５００は、本システムがＴＣＰ／ＩＰのプロトコルをベースにしてサーバ・クライアント間、クライアント・クライアント間のインターネット接続を介助するためのものである。
【００１９】
図３に示すように、学習者用クライアント３００は、情報ネットワーク１００との間でＴＣＰ／ＩＰベースの通信を行うネットワーク接続部３０１、ネットワーク接続部３０１で受信したデータ信号からの入力、キーボード３０２やポインティングデバイス３０３からの入力を処理する入力処理部３０４、本学習者用クライアント３００の動作機能を制御するプログラム作成支援部３０５、入力処理部３０４が受け付けたデータの内、プロ作成支援部３０５にて表示指令を受けたデータをディスプレイ３０６に表示し、またネットワーク送信指令を受けたデータをネットワーク接続部３０１に受け渡す出力処理部３０７、諸データを記憶する記憶装置３０８を備えている。
【００２０】
図４に示すように、学習管理者用クライアント４００は、情報ネットワーク１００との間でＴＣＰ／ＩＰベースの通信を行うネットワーク接続部４０１、ネットワーク接続部４０１で受信したデータ信号からの入力、キーボード４０２やポインティングデバイス４０３からの入力を処理する入力処理部４０４、本学習管理者用クライアント４００の動作機能を制御する学習管理部４０５、入力処理部４０４が受け付けたデータの内、学習管理部４０５にて表示指令を受けたデータをディスプレイ４０６に表示し、またネットワーク送信指令を受けたデータをネットワーク接続部４０１に受け渡す出力処理部４０７、諸データを記憶する記憶装置４０８を備えている。
【００２１】
次に、上記構成のプログラミング教育支援システムの動作について説明する。なお、以下の説明では、学習者（１）、（２）がプログラミング学習者であり、それぞれが別個の学習者用クライアント３００から学習管理サーバ２００にアクセスし、課題のプログラミング作業を実行する場合について説明する。
【００２２】
＜プログラム編集動作＞
図５に示すように、学習者（１）、（２）それぞれは学習者用クライアント３００を使用して学習管理サーバ２００にアクセスし、学習者識別ＩＤを入力してログイン・認証手続を行うことで、本システムに参加する（シーケンスＳＱ１，ＳＱ２）。
【００２３】
ログイン成功後、各学習者（１）、（２）がそれぞれの学習者用クライアント３００にて行うプログラミング作業の過程の全てが学習管理サーバ２００に送信され、学習管理サーバ２００はこれをデータベース２１０に記録する（シーケンスＳＱ３，ＳＱ４）。この学習ログとして記録する内容は、学習者用クライアント３００のキーボード３０２やポインティングデバイス３０３にて入力操作されたキー操作入力時刻、作業を識別するＩＤ、学習者ＩＤ、プログラム編集の情報（編集文字とその位置、長さ）、コンパイル・プログラム実行の情報（プログラムの標準入出力、エラー出力）である。
【００２４】
図６は学習者用クライアント３００のディスプレイ３０６に表示されるプログラミング編集画面を示している。また図７は学習管理サーバ３００のデータベース３１０の記録されたプログラミング作業過程の学習ログを示している。学習者ＩＤが０１ＩＥ９９９と０３ＩＥ０９９の学習者の入力記録がログされている。
【００２５】
＜コンパイル動作（エラーあり）＞
プログラミング作業中のコンパイル、プログラム実行動作は図８、図９のシーケンスによる。図８は編集プログラムにエラーがある場合、図９は正しくプログラミングされている場合を示している。
【００２６】
図８に示すように、学習者（１）の学習者用クライアント３００からコンパイル・実行要求が送信されると（シーケンスＳＱ１１）、学習管理サーバ２００は、データベース２１０から学習者（１）のＩＤをキーにしてその作業ログを呼び出して最終作業状態まで再現し、その状態でコンパイルを行う（シーケンスＳＱ１２，ＳＱ１３）。そしてコンパイル実行をデータベース２１０に作業ログとして登録し（シーケンスＳＱ１４）、コンパイル開始を学習者用クライアント３００に送信する（シーケンスＳＱ１５）。このコンパイルにてエラーが見つかると、エラー発生をログとしてデータベース２１０に登録し（シーケンスＳＱ１６）、学習者（１）のクライアント３００にエラーメッセージを送信する（シーケンスＳＱ１７）。学習者（１）はクライアント３００のコンパイル画面にて、エラー情報を確認し、プログラミング中のテキスト画面において該当箇所の修正作業を実施することになる。このエラー修正過程の作業ログも学習管理サーバ２００に送信され、学習管理サーバ２００はこれをデータベース２１０に作業ログとして逐次登録する（シーケンスＳＱ１８，ＳＱ１９）。
【００２７】
＜コンパイル・プログラム実行動作＞
コンパイル動作でエラーが発生しない場合の動作は、図９のようになる。学習者（１）の学習者用クライアント３００からコンパイル・実行要求が送信されると（シーケンスＳＱ２１）、学習管理サーバ２００は、データベース２１０から学習者（１）のＩＤをキーにしてその作業ログを呼び出して最終作業状態まで再現し、その状態でコンパイルを行う（シーケンスＳＱ２２，ＳＱ２３）。そしてコンパイル実行をデータベース２１０に作業ログとして登録し（シーケンスＳＱ２４）、コンパイル開始を学習者用クライアント３００に送信する（シーケンスＳＱ２５）。このコンパイルが成功すれば、次にプログラムを実行し、このプログラム実行を作業ログとしてデータベース２１０に登録し（シーケンスＳＱ２６）、またプログラム実行開始を学習者（１）のクライアント３００に送信する（シーケンスＳＱ２７）。そしてプログラム実行が成功すれば、プログラム実行結果をデータベース２１０に登録し（シーケンスＳＱ２８）、また学習者（１）のクライアント３００にプログラム実行結果を送信して表示させる（シーケンスＳＱ２９）。図１０は、プログラミング中のプログラムのコンパイルとプログラム実行が成功したときの学習者用クライアント３００のディスプレイ３０６の表示画面を示している。
【００２８】
＜学習ログによる履歴の再現＞
学習管理者が学習管理者用クライアント４００から学習者（１）の学習ログを再現させる手順は次の通りである。図１０に示すように、学習管理者がクライアント４００から学習管理サーバ２００にログイン手続を行う（シーケンスＳＱ３１，ＳＱ３２）。その後、学習者（１）のＩＤを指定してプログラミング作業ログを要求する（シーケンスＳＱ３３）。これに対して、学習管理サーバ２００はデータベース２１０にアクセスして、学習者（１）のＩＤをキーにその作業ログを呼び出し、作業ログデータを学習管理者用クライアント４００へ送信し、また作業最終状態の画面を表示させる（シーケンスＳＱ３４）。
【００２９】
図１２は、学習管理者用クライアント４００のディスプレイ４０６に表示された学習者（１）のプログラミング作業最終状態の表示画面を示している。なお、この画面に対しては、作業開始時点からのコマ再生、連続再生、倍速再生が可能である。図１３は、同じ学習者（１）の学習ログをグラフ化した画面を示している。このグラフでは、プログラミング作業の開始時点からの経過時間と入力文字数との関係を表示している。また画面右のウインドウには該当時点の編集状態を表示させるウインドウであり、グラフ中の任意の点をクリックすることで該当時点での編集画面の状態がこのウインドウに再現表示される。また、図１４も、同じ学習者（１）の学習ログをグラフ化した画面を示している。このグラフでは、ある文字の入力から次の文字の入力までに要した時間間隔と開始時点からの操作番号との関係を表示している。図１４では、操作番号２８５で学習者（１）は考え込み、次にどんな文字を入力すればよいか行き詰まったものと理解することができる。
【００３０】
次に、実験例を説明する。工科系大学の初級プログラミング教育への適用実験を実施した結果を、図１５〜図２２を用いて説明する。
【００３１】
＜実験方法＞
学習者に対して演習問題を提示し、本システムを使って解答作業を行わせ、その過程をデータベースに記録していった。そして、情報ネットワーク１００に接続されているパソコンから学習管理者ＩＤを用いて学習管理サーバ２００にアクセスし、データベース２１０に蓄積された学習者（１）〜（３）の解答作業過程を呼び出し、任意の時間軸で再現及びグラフによる視覚化を行った。図１５は、学習者（１）の解答過程のログから求めたグラフを示している。図１６は学習者（２）の同様の解答過程のグラフを示し、図１７は図１６のグラフにおいて学習時間約１５分経過時Ｔ１１のプログラム編集状態の画面、図１８は図１６のグラフにおいて学習時間約２５分経過時Ｔ１２のプログラム編集状態の画面を示している。また図１９は学習者（３）の同様の解答過程のグラフを示し、図２０〜図２２はそれぞれ図１９のグラフにおいて学習時間約１０分経過時Ｔ２１、約２５分経過時Ｔ２２、約５０分経過時Ｔ２３のプログラム編集状態の画面を示している。これらの図において、各グラフは入力文字累積数、削除文字累積数、編集画面に実際に表示されている文字数それぞれの推移を表し、またコンパイルイベント、プログラム実行イベントの発生時点も実際の文字数の推移グラフ上に符号で示している。
【００３２】
これらのプログラミング作業過程を再現し、グラフ表示を見、また任意の時点でのプログラム編集状態を見ることで、個々の学習者のプログラミング修得程度、プログラミング過程の差異等を把握することができる。特に、プログラミング過程の差異については、
・大枠をまずつくり上げ次に細部に移るタイプか、その逆のタイプか、
・よく考えずに頻繁にデバッグするタイプか、その逆のタイプか、
・主機能部分を完成させ、次にユーザインタフェースの完成度を上げるタイプか、その逆のタイプか、
等の完成品の提出物のみでは把握が困難なプログラミング過程の学習者個々の特性を的確に把握することができる。また、学習者個々の解答作業の遅滞状況を検出し理解が不足する箇所を把握することができる。加えて、学習管理者として、完成までの時間計測による学習者個々の成績評価への反映させることが可能となり、また解答作業のパターン分類を行うことにより、多数の学習者の思考過程を分類し、後々の講義方法の改良への利用も可能である。
【図面の簡単な説明】
【００３３】
【図１】本発明の１つの実施の形態のプログラミング教育支援システムのブロック図。
【図２】上記実施の形態における学習管理サーバのブロック図。
【図３】上記実施の形態における学習者用クライアントのブロック図。
【図４】上記実施の形態における学習管理者用クライアントのブロック図。
【図５】上記実施の形態のプログラミング教育支援システムにおけるプログラミング編集手順のシーケンス図。
【図６】上記実施の形態において学習管理者用クライアントのディスプレイに表示されたプログラミング編集作業画面の説明図。
【図７】上記実施の形態においてデータベースに登録されたプログラム編集過程のデータログの説明図。
【図８】上記実施の形態のプログラミング教育支援システムにおけるコンパイル・プログラム実行手順（エラーあり）のシーケンス図。
【図９】上記実施の形態のプログラミング教育支援システムにおけるコンパイル・プログラム実行手順（エラーなし）のシーケンス図。
【図１０】上記実施の形態において学習管理者用クライアントのディスプレイに表示されたコンパイル・プログラム実行結果の表示画面の説明図。
【図１１】上記実施の形態のプログラミング教育支援システムにおける学習者（１）のプログラム編集の作業ログの再現手順のシーケンス図。
【図１２】上記実施の形態において学習管理者用クライアントのディスプレイに表示された学習者（１）の作業ログの再現画面の説明図。
【図１３】上記実施の形態において学習管理者用クライアントのディスプレイに表示された学習者（１）の文字入力推移グラフとプログラム編集状態の再現画面とを表示する画面の説明図。
【図１４】上記実施の形態において学習管理者用クライアントのディスプレイに表示された学習者（１）の文字入力操作番号と文字入力時間間隔との関係を示すグラフとプログラム編集状態の再現画面とを表示する画面の説明図。
【図１５】本発明のプログラミング教育支援システムの実験システムを用いた実験における学習者（１）の文字入力推移グラフの説明図。
【図１６】本発明のプログラミング教育支援システムの実験システムを用いた実験における学習者（２）の文字入力推移グラフの説明図。
【図１７】図１６のグラフにおけるＴ１１時点でのプログラム編集状態の再現画面の説明図。
【図１８】図１６のグラフにおけるＴ１２時点でのプログラム編集状態の再現画面の説明図。
【図１９】本発明のプログラミング教育支援システムの実験システムを用いた実験における学習者（３）の文字入力推移グラフの説明図。
【図２０】図１９のグラフにおけるＴ２１時点でのプログラム編集状態の再現画面の説明図。
【図２１】図１９のグラフにおけるＴ２２時点でのプログラム編集状態の再現画面の説明図。
【図２２】図１９のグラフにおけるＴ２３時点でのプログラム編集状態の再現画面の説明図。
【符号の説明】
【００３４】
１００  情報ネットワーク
２００  学習管理サーバ
２０１  ネットワーク接続部
２０２  入力処理部
２０３  クライアント識別部
２０４  入力データ蓄積処理部
２０５  記録データ読出し処理部
２０６  コンパイル・実行処理部
２０７  出力処理部
２１０  データベース
３００  学習者用クライアント
３０１  ネットワーク接続部
３０２  キーボード
３０３  ポインティングデバイス
３０４  入力処理部
３０５  プロ作成支援部
３０６  ディスプレイ
３０７  出力処理部
４００  学習管理者用クライアント
４０１  ネットワーク接続部
４０２  キーボード
４０３  ポインティングデバイス
４０４  入力処理部
４０５  学習管理部
４０６  ディスプレイ
４０７  出力処理部
５００  ウェブサーバ
【図１】
2006227218.tif 000003
【図２】
2006227218.tif 000004
【図３】
2006227218.tif 000005
【図４】
2006227218.tif 000006
【図５】
2006227218.tif 000007
【図６】
2006227218.tif 000008
【図７】
2006227218.tif 000009
【図８】
2006227218.tif 000010
【図９】
2006227218.tif 000011
【図１０】
2006227218.tif 000012
【図１１】
2006227218.tif 000013
【図１２】
2006227218.tif 000014
【図１３】
2006227218.tif 000015
【図１４】
2006227218.tif 000016
【図１５】
2006227218.tif 000017
【図１６】
2006227218.tif 000018
【図１７】
2006227218.tif 000019
【図１８】
2006227218.tif 000020
【図１９】
2006227218.tif 000021
【図２０】
2006227218.tif 000022
【図２１】
2006227218.tif 000023
【図２２】
2006227218.tif 000024