(57)【要約】      （修正有）【課題】ユーザー、特に受講生が、実習環境作りのための各種ソフトウェアのインストール負担を軽減させ、プラウザさえあれば簡単に実習ができるようにした遠隔プログラミング実習システムを提供する。【解決手段】プログラミング学習用コンテンツを送信するサーバー側コンピュータ２と、このサーバー側コンピュータ２に通信ネットワーク３を介して接続するためのプラウザがインストールされたユーザー側コンピュータとによって少なくとも構成され、サーバー側コンピュータ２が、実習システム３０により、各々のユーザー毎に学習環境を持ち、また、それぞれのユーザーが随時参照できる学習コンテンツ４０を保有する。【選択図】図５
2005215714.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークと、該通信ネットワークを介してサーバーに接続するためのプラウザがインストールされたユーザー側コンピュータと、前記通信ネットワークを介して接続されたユーザー側コンピュータにプログラミング学習用コンテンツを送信するサーバー側コンピュータとによって少なくとも構成され、プログラミングの実習システムを具備する遠隔プログラミング実習システムにおいて、
前記サーバー側コンピュータが、各々のユーザーに対して、少なくともソースプログラムを保存するソースプログラム保存手段と、ソースプログラム保存手段に保存されたソースプログラムを呼び出してコンパイルするコンパイル実行手段と、コンパイルされた実行プログラムを保存する実行プログラム保存手段と、実行プログラム保存手段に保存された実行プログラムを呼び出して実行するプログラム実行手段と、実行されたプログラムの結果をユーザー側コンピュータに伝達する結果伝達手段とを具備することを特徴とする遠隔プログラミング実習システム。
【請求項２】
前記サーバー側コンピュータは、さらに、
前記コンパイル実行手段によるコンパイルの結果、エラーが生じた場合、エラーメッセージをユーザー側コンピュータに送るコンパイルエラー伝達手段と、
プログラム実行手段による実行時にエラーが生じた場合に、エラーメッセージをユーザー側コンピュータに送る実行時エラー伝達手段とを具備することを特徴とする請求項１記載の遠隔プログラミング実行システム。
【請求項３】
ユーザー側コンピュータから、コンパイルエラー及び／若しくは実行時エラーが改善されたソースコードが送信された場合に、ソースファイルを書き換えるソースファイル書き換え手段を具備することを特徴とする請求項２記載の遠隔プログラミング実行システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、通信ネットワークと、該通信ネットワークを介してサーバーに接続するためのプラウザがインストールされたユーザー側コンピュータと、前記通信ネットワークを介して接続されたユーザー側コンピュータにプログラミング学習用コンテンツを送信するサーバー側コンピュータとによって少なくとも構成される遠隔プログラミング実習システムに関する。
【背景技術】
【０００２】
特許文献１は、ユーザーがＷｅｂプラウザからＷｅｂサーバーにアクセスして学習するＷｅｂベース学習システムであって、通信ネットワークを介して学習サービスを提供するＷｅｂサーバーと、登録会員となったユーザーに関する情報を格納するデータベースと、仮想プログラミングの問題を格納するデータベースと、各種学習用コンテンツを格納するデータベースと、仮想プログラミングの問題を提示してオンラインのトレーニングを行う学習手段と、ユーザーの能力レベルと学習分野に基づいた学習コースの選択を行う手段と、一定時間が経過しても解答がない場合は問題解答のヒントを表示して支援する手段と、学習履歴情報を含む会員情報及び学習用コンテンツを管理する手段とを有する学習システムを開示する。
【特許文献１】特開２００２−３６６６６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記引例に開示される学習システムに代表される遠隔プログラミング教育の最大の欠点は、プログラミング学習において、最も重要な要素である実施面のサポートがかけている点である。○×式の問題などによる資格試験等の学習には適しているといえるが、実践面での実力をつけるには限界がある。
【０００４】
また、現在Ｊａｖａプログラマ等は、特に不足しており、効率的に、また大量にプログラマを養成することが必要であり、このため遠隔教育への期待は大きい。
【０００５】
このため、この発明は、ユーザー、特に受講生が、実習環境作りのための各種ソフトウェアのインストール負担を軽減させ、プラウザさえあれば簡単に実習ができるように、サーバー側に実習環境を用意した遠隔プログラミング実習システムを提供することにある。
【課題を解決するための手段】
【０００６】
このため、この発明は、通信ネットワークと、該通信ネットワークを介してサーバーに接続するためのプラウザがインストールされたユーザー側コンピュータと、前記通信ネットワークを介して接続されたユーザー側コンピュータにプログラミング学習用コンテンツを送信するサーバー側コンピュータとによって少なくとも構成され、プログラミングの実習システムを具備する遠隔プログラミング実習システムにおいて、前記サーバー側コンピュータが、各々のユーザーに対して、少なくともソースプログラムを保存するソースプログラム保存手段と、ソースプログラム保存手段に保存されたソースプログラムを呼び出してコンパイルするコンパイル実行手段と、コンパイルされた実行プログラムを保存する実行プログラム保存手段と、実行プログラム保存手段に保存された実行プログラムを呼び出して実行するプログラム実行手段と、実行されたプログラムの結果をユーザー側コンピュータに伝達する結果伝達手段とを具備することにある。
【０００７】
また、前記サーバー側コンピュータは、さらに、前記コンパイル実行手段によるコンパイルの結果、エラーが生じた場合、エラーメッセージをユーザー側コンピュータに送るコンパイルエラー伝達手段と、プログラム実行手段による実行時にエラーが生じた場合に、エラーメッセージをユーザー側コンピュータに送る実行時エラー伝達手段とを具備することにある。
【０００８】
さらに、前記サーバー側コンピュータが、ユーザー側コンピュータから、コンパイルエラー及び／若しくは実行時エラーが改善されたソースコードが送信された場合に、ソースファイルを書き換えるソースファイル書き換え手段を具備することにある。
【発明の効果】
【０００９】
したがって、この発明によれば、ユーザー（受講生）のソースコード、コンパイル後のプログラム、データ等の実習に関するすべての情報をサーバー側コンピュータで保管するので、受講生は、コーディングのソースの作成、コンパイル、実行、テキスト、動画の参照等がボタン操作でシームレスに且つ効率的に学習することができるものである。
【発明を実施するための最良の形態】
【００１０】
以下、この発明の実施例について図面により説明する。
【実施例１】
【００１１】
本願発明の実施例に係る遠隔プログラミング実習システム１は、例えば図１に示すように、通信ネットワーク３と、この通信ネットワーク３を介してサーバーに接続するためのプラウザがインストールされたユーザー側コンピュータ４と、前記通信ネットワーク３を介して接続されたユーザー側コンピュータ４にプログラミング学習用コンテンツを送信するサーバー側コンピュータ２とによって少なくとも構成される。また、サーバー側コンピュータ２は、ユーザー、例えば受講生の実習プログラムが蓄積される記憶装置５を具備する。
【００１２】
受講生は、ユーザー側コンピュータ４にインストールされたプラウザを立ち上げることにより、インターネット等の通信ネットワーク３を介してサーバー側コンピュータ２に接続すると、サーバー側コンピュータ２から学習コンテンツが受講生のプラウザに提供され、例えば動画、テキスト、○×の選択テスト等、従来の遠隔プログラミング学習システムが所有する学習コンテンツを表示し、実行することができる。
【００１３】
また、サーバー側コンピュータ２は、実習環境、例えばＪａｖａ，データベース環境を具備している。このため、受講生は、プラウザ上でプログラムソースを作成してサーバー側コンピュータ２に送信することによって、サーバー側コンピュータ２において、プログラムコンパイル及び／若しくはプログラム実行を行うことができ、その結果をプラウザ上に表示することができる。また、作成したプログラムは、サーバー側コンピュータ２の記憶装置５内に蓄積することができる。
【００１４】
これによって、従来、例えばＪａｖａプログラミング実習を行うためには、Ｊａｖａの環境、ＤＢの環境、ＷＥＢアプリケーション環境等の環境作りを受講生がユーザー側コンピュータ４で行う必要があったが、このシステムによれば、受講生はプラウザのみで実習を行うことが可能となるものである。
【００１５】
受講生は、自身のユーザー側コンピュータ４のプラウザを立ち上げると、例えば図２に示される画面がユーザー側コンピュータ４に表示される。
【００１６】
このプラウザ画面１０は、例えば、登録ファイル名記入窓１１、新規作成ボタン１２、登録ファイルを開くボタン１３、削除ボタン１４、教科書表示ボタン１５、動画表示ボタン１６、ＡＰＩボタン１７、ＦＡＱボタン１８、質問ボタン１９、掲示板ボタン２０、戻るボタン２１、実行パラメータ入力窓２２、実行ボタン２３、書き込み画面２４、新ファイル名入力窓２５、新規保存、コンパイル等の命令表示窓２６、ＧＯ（送信）ボタン２７、キャンセルボタン２８及び戻るボタン２９によって少なくとも構成される。受講生は、このプラウザ画面１０上で、全ての処理を行うことができる。
【００１７】
図３は、ソースコード入力及びコンパイル処理についての流れを示したものである。先ず、ステップ１１０において、受講生は、前記プラウザ画面１０において、ソースコードを作成して書き込み画面２４に入力し、登録ファイル名記入窓１１に登録ファイル名を記入して、命令表示窓２６に、例えば新規保存及びコンパイル等の指示を指定してＧＯ（送信）ボタン２７をクリックしてサーバー側コンピュータ２に送信する。サーバー側コンピュータ２では、送信されたソースコードを指定されたファイル名でファイル（ソースファイル１３０）を作成する（ステップ１２０）。
【００１８】
受講生からのコンパイル指示がある場合、ステップ１４０においてコンパイルのコマンドを生成してコンパイラー１６０を起動する。そして、ソースコードファイル１３０を入力してコンパイルを行う。この間、主制御は、コンパイル待ち（ステップ１５０）の状態となる。コンパイルが成功すれば、その結果であるプログラムをファイル１７０に保存する。また、ステップ１８０においてコンパイルの結果を判定し、コンパイルが完了した場合には、ステップ１９０に進んでコンパイル完メッセージを作成する。また、ステップ１８０の判定においてエラーが生じた場合には、ステップ２００においてエラーメッセージを受け取る。ステップ１９０及びステップ２００のメッセージは、ステップ２１０においてＨＴＭＬ文に変換されてユーザー側コンピュータ４に送信され、プラウザ画面１０の書き込み画面２４に表示される。
【００１９】
図４は、プログラムの実行処理の流れを示す。先ず、ステップ２１０において、受講生は、コンパイルに成功し且つプログラムファイル１７０に保存されたプログラムのファイル名を登録ファイル記入窓１１に記入して実行ボタン２３をクリックして送信する。サーバー側コンピュータ２では、そのファイル名を受信した場合、プログラム実行コマンドを生成し、実行コマンドを発行する（ステップ２２０）。そして、ステップ２４０において、プログラムファイル１７０に保存されたプログラムが実行され、その間、主制御はプログラム実行終了待ちとなる（ステップ２３０）。そして、プログラムの実行終了後に、ステップ２５０においてエラーが発生したか否かの判定を行い、プログラムが正常に作動した場合（Ｎ）には、ステップ２６０に進んで、プログラム出力メッセージを受け取る。また、エラーが発生した場合には、ステップ２７０に進んでエラーメッセージを受け取る。ステップ２６０及び２７０で受け取ったメッセージは、ステップ２８０においてＨＴＭＬ文に変換され、ユーザー側コンピュータ４に送信される。ユーザー側コンピュータ４のプラウザ画面１０ではそのメッセージが、例えば書き込み画面２４に表示される。
【実施例２】
【００２０】
図５は、遠隔プログラミング実習システム１の第２の実施例の構成を示す。この実施例２において、受講生４Ａ，４Ｂ，４Ｃは、インターネット３を介して遠隔プログラミング実習サーバーを有するサーバー側コンピュータ２にアクセスする。サーバー側コンピュータ２では、実習システム３０によって、受講生４Ａ，４Ｂ，４Ｃ毎に学習環境５Ａ，５Ｂ，５Ｃを持ち、お互いに干渉されることなくそれぞれの受講生４Ａ，４Ｂ，４Ｃが独立して学習できるようになっている。また、サーバー側コンピュータ２では、それぞれの受講生４Ａ，４Ｂ，４Ｃが随時参照できる学習コンテンツ４０を保有している。また、このシステムにおいては、講師６Ａ，６Ｂは、受講生の実習状況が常時把握でき、受講生４Ａ，４Ｂ，４Ｃにとってきめの細かい指導、アドバイスができるものである。
【００２１】
さらに、詳細に説明すると、図６で示すように、サーバー側コンピュータ２は、実習システム３０と、前述した各受講生の学習環境５Ａ，５Ｂ，５Ｃと、学習コンテンツＤＢ４０と、Ｗｅｂアプリケーションサーバー４１と、Ｗｅｂサーバー４２とを少なくも具備する。また、ユーザー側コンピュータ４は、プラウザとして実習ウィンドウ４４及び実習Ｗｅｂアプリケーションウィンドウ４５を具備する。
【００２２】
実習ウィンドウ４４は、例えば図７で示すような遠隔プログラミング実習メニュー（以下、実習メニュー）４４Ａを有する。この実習メニュー４４Ａの「１．ソースプログラム入力」をクリックすると、Ｗｅｂ画面６０が立ち上がり、受講生４Ａ，４Ｂ，４Ｃは入力エリア６１にソースプログラムを入力し、所望のファイル名をファイル名記入窓６２に入力して登録ボタン６３をクリックする。それによって、図６で示すように、ソース入力３１が立ち上がってプログラムソースファイル５１にソースプログラムが保存する。
【００２３】
実習メニュー４４Ａの「２．ソースプログラム表示＆修正」がクリックされると、ソースプログラム表示画面６４が立ち上がる。このファイル名記入窓６５にファイル名を記入して表示ボタン６６をクリックすると、ソースプログラム修正画面６７が立ち上がり、表示＆編集エリア６８にファイル名記入窓６５において指定したファイル名のソースプログラムが表示される。ここで、表示＆編集エリア６８に表示されたソースプログラムを確認又は修正し、新しいファイル名とする場合には、ファイル記入窓６９に新しいファイル名を記入し、また従来のままのファイル名でよい場合にはファイル記入窓６９に表示されたファイル名をそのままにして登録ボタン７０をクリックすることによって、再度ソース入力３１が立ち上がり、プログラムソースファイル５１にソースプログラムを保存又は上書き保存する。
【００２４】
実習メニュー４４Ａの「３．コンパイル指示」がクリックされると、コンパイル指示画面７１が立ち上がり、コンパイルするファイル名をファイル名記入窓７２に記入してコンパイルボタン７３をクリックする。これによって、コンパイル３２が立ち上がり、プログラムソースファイル５１から指定されたソースプログラムを呼び出してコンパイルを行い、実行プログラムファイル５２に保存する。
【００２５】
実習メニュー４４Ａの「４．実習プログラム実行指示」がクリックされると、実習プログラム指示画面７４が立ち上がり、実行したいプログラムのファイル名をファイル記入窓７５に記入して実行ボタン７６をクリックすると、プログラム実行３３が立ち上がり、実行プログラムファイル５２から指定された実行プログラムを呼び出して実行する。そして実習プログラムが正常に終了すれば、その旨のメッセージが返され、また実習プログラムから標準出力装置への出力があれば、そのメッセージがＷｅｂ画面上に出力される。
【００２６】
実習メニュー４４Ａの「５．プログラム実行のための環境設定」の［ａ  ファイルアップロード］がクリックされた場合、ファイルアップロード画面７７が立ち上がり、ファイル名指定窓７８にファイル名を指定し、アップロードボタン７９をクリックすることによって、プログラム実行のための環境設定３４のテストデータ設定３５が立ち上がり、受講生４Ａ，４Ｂ，４Ｃのユーザー側コンピュータ４上に予め用意された実習プログラムが必要とする画像ファイル等を、指定されたファイル名で画像ファイル５６に作成する。
【００２７】
また、「ｂ  ＳＱＬデータベース操作」がクリックされると、ＳＱＬ入力画面８０が立ち上がり、ＳＱＬ入力エリア８１にＳＱＬ文を入力して、ＳＱＬ実行ボタン８２をクリックすることによってテストデータベース設定３５が立ち上がり、データベースシステム５３に対してＳＱＬ文を発行してテストデータ５３Ａを作成する。これにより、テーブルの生成、データレコードの挿入、データの抽出等ができる環境を整えることができる。
【００２８】
また、「ｃ  ディレクトリ操作」がクリックされると、ディレクトリ操作メニュー画面８３が立ち上がり、さらに「１．ディレクトリ作成」がクリックされると、ディレクトリ作成画面８４が立ち上げる。そして、ディレクトリ先指定窓８５でディレクトリ先を指定し、作成ディレクトリ指定窓８６によって作成ディレクトリを指定して、実行ボタン８７をクリックすることによって、ディレクトリを作成することができるものである。また、「２．ファイルコピー」がクリックされると、ファイルコピー画面８８が立ち上がり、ファイル名指定窓８９によってファイル名を指定し、コピー先のディレクトリを、ディレクトリ先指定窓９０によって指定し、実行ボタン９１をクリックすることによって指定先にファイルをコピーすることができるものである。この機能は、Ｗｅｂアップリケーションが、実行プログラム、ＨＴＭＬ、ＪＳＰ、画像ファイルなど、Ｗｅｂアプリケーションを構築するいくつかの「部品」によって構成され、それらを論理的に統合する必要があるため、ディレクトリを作成したり、「部品」である各ファイルを所定の位置にコピーする機能が必要となるために設けられるものである。
【００２９】
実習メニュー４４Ａの「６．教科書参照」がクリックされると、教科書表示画面９２が立ち上がり、教科書が表示される。
【００３０】
以上説明した実施例２においても、実施例１の場合と同様に、ソースプログラムのコンパイル機能は図３で示すものであり、実習プログラムの実行機能も図４に示すものである。
【図面の簡単な説明】
【００３１】
【図１】本願発明の実施例１に係る遠隔プログラミング実習システムの概略構成図である。
【図２】プラウザ画面の一例を示した説明図である。
【図３】ソースコード入力及びコンパイル処理についての流れの一例を示したフローチャート図である。
【図４】プログラムの実行処理の流れの一例を示したフローチャート図である。
【図５】本願発明の実施例２に係る遠隔プログラミング実習システムの概略構成図である。
【図６】実施例２に係る遠隔プログラミング実習システムの具体的な構成を示した説明図である。
【図７】実施例２における実習画面の具体例を示した説明図である。
【符号の説明】
【００３２】
１  遠隔プログラミング実行システム
２  サーバー側コンピュータ
３  通信ネットワーク
４  ユーザー側コンピュータ
４Ａ，４Ｂ，４Ｃ  受講生
５  記憶装置
５Ａ，５Ｂ，５Ｃ  受講生の学習環境
６Ａ，６Ｂ  講師
【図１】
2005215714.tif 000003
【図２】
2005215714.tif 000004
【図３】
2005215714.tif 000005
【図４】
2005215714.tif 000006
【図５】
2005215714.tif 000007
【図６】
2005215714.tif 000008
【図７】
2005215714.tif 000009