以下、実施の形態について図面を参照して説明する。
図1は、一実施形態に係る電子機器によって管理されるグループの例を示す。この電子機器は、手書き共有サービスを利用する少なくとも1つのグループを管理(監視)するスーパーバイザ機器として用いられ、グループ毎の手書き共有サービスの開始、終了、再開等のための処理や、グループで作成されたドキュメント(共同成果物)に対する各ユーザの貢献度を評価するための処理、等を実行する。
グループには、複数の電子機器(以下、ユーザ機器とも称する)が属し、そのグループ内の電子機器間で手書き情報が共有される。グループに参加しているユーザ機器において手書き入力されるストロークのデータは、このグループに参加している他の各ユーザ機器にリアルタイムで配信される。これによって、グループ内のユーザ機器の画面に表示される手書き文書の内容を同期させることができる。
手書き共有サービスは、図1に示すように、例えば、学校の授業支援システムで提供されるサービスとして利用される。教師が使用する電子機器(スーパーバイザ機器)は、手書き情報を共有する児童や生徒の電子機器(ユーザ機器)が属するグループを管理する。スーパーバイザ機器は、グループのオーナー機器に設定された1台のユーザ機器との間で必要なときだけ通信を行うことによって、グループを管理する。そして、グループ内では、そのオーナー機器が手書き共有サービスを管理することによって、グループに参加しているユーザ機器間で手書き情報が共有される。これにより、スーパーバイザ機器は、各々が手書き情報を共有する複数のユーザ機器からなる複数のグループを管理することができる。例えば、N個のグループそれぞれにM台のユーザ機器が参加する場合、スーパーバイザ機器は、N×M台のユーザ機器を管理できることになる。
教師は、このような複数のグループで並行して行われるグループ学習(グループでの協働学習)の授業において、児童や生徒をそれぞれ評価する必要がある。教師は、グループ学習において、例えば、児童や生徒の意欲、協調性、課題に関する知識、等をポイントとして評価を行う。
しかし、グループ学習で制作されたドキュメント等の成果物は、グループに属する複数のユーザが合同で制作したものであるので、誰がどの部分を作成し、成果物の制作にどのように貢献したのかが不明である。そのため、完成したドキュメント(成果物)の内容だけに基づいて、児童や生徒を適切に評価することは困難である。このような評価を適切に行うためには、教師は、例えば、グループ学習が行われる授業中に、ドキュメントが制作される過程での児童や生徒による活動の様子を観察する必要がある。しかし、複数のグループで並行して行われるグループ学習の授業において、児童や生徒による活動の様子をくまなく観察することは困難である。
そのため本実施形態では、グループで作成されたドキュメント(成果物)に対する各ユーザの貢献度(貢献度パラメータ)を可視化する。貢献度は、例えば、各ユーザによるストロークの入力又は編集を示すデータを解析することにより算出される。このような貢献度が可視化されることにより、グループで協働作業によりドキュメントが作成された場合に、スーパーバイザ(教師)が各ユーザ(児童や生徒)によるドキュメント作成のための活動を適切に評価することを支援できる。
図2は、本実施形態の電子機器の外観を示す斜視図である。この電子機器は、例えば、ペン(スタイラス)又は指を使用した手書き入力を実行することが可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、PDA等として実現され得る。以下では、この電子機器がタブレットコンピュータ10として実現されている場合を例示する。タブレットコンピュータ10は、タブレット又はスレートコンピュータとも称される携帯型電子機器である。このタブレットコンピュータ10は、上述したスーパーバイザ機器とユーザ機器のいずれとしても動作し得る。タブレットコンピュータ10は、例えば、当該コンピュータ10上で実行されるアプリケーションプログラムによって、スーパーバイザ機器として動作するモードとユーザ機器として動作するモードとを切り替えることができる。
タブレットコンピュータ10は、図2に示すように、本体11とタッチスクリーンディスプレイ17とを備える。タッチスクリーンディスプレイ17は、本体11の上面に重ね合わされるように取り付けられている。
本体11は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ17には、フラットパネルディスプレイと、センサとが組み込まれている。センサは、ペン又は指と接触されるフラットパネルディスプレイの画面上の位置(接触位置)を検出する。フラットパネルディスプレイは、例えば、液晶表示装置(LCD)であってもよい。センサとしては、例えば、静電容量式のタッチパネル、電磁誘導式のデジタイザなどを使用することができる。デジタイザとタッチパネルの2種類のセンサの双方がタッチスクリーンディスプレイ17に組み込まれていてもよい。
このタッチスクリーンディスプレイ17は、指と接触される画面上の位置を検出することができ、またペン100と接触される画面上の位置を検出することもできる。ペン100は例えば電磁誘導ペン(デジタイザペン)であってもよい。ユーザは、外部オブジェクト(指又はペン100)を使用してタッチスクリーンディスプレイ17の画面上に文字等を書くことができる。この手書き入力操作中においては、画面上の外部オブジェクトの動きの軌跡、つまり手書き入力されるストロークが、リアルタイムで画面上に描画される。外部オブジェクトが画面に接触されている間の外部オブジェクトの動きの軌跡が1ストロークに相当する。手書き入力された文字又は図形などに対応する多数のストロークの集合が手書き文書を構成する。
一つのストロークは、このストローク上の複数の点それぞれに対応する複数の点データの集合によって表現される。各点データは、対応する点の座標(X座標、Y座標)を示す。上述したように、外部オブジェクトはペン100又は指のいずれであってもよいが、以下では、ペン100を使用して手書き入力が行われる場合を主に説明する。
さらに、タブレットコンピュータ10は、手書き情報を複数の電子機器間で共有することが可能な手書き共有サービスを実行する。手書き共有サービスは、各電子機器のユーザが、共有される手書き情報を閲覧すること、他の電子機器のユーザとの協働作業によって手書き情報を編集することを可能にする。
手書き共有サービスは、複数人が属するグループによって利用される。グループには、例えば、一人のオーナー(主催者)と、一人以上の参加者とが属する。また、オーナーもグループに参加している一人と云える。
図3は、手書き共有サービスを利用する電子機器間の接続例を示す。
電子機器(スーパーバイザ機器)10Sは、グループを管理するスーパーバイザ(例えば、教師)によって使用されるタブレットコンピュータである。
電子機器(ユーザ機器)10Aは、第1グループに属するユーザAによって使用されるタブレットコンピュータである。電子機器(ユーザ機器)10Bは、第1グループに属するユーザBによって使用されるタブレットコンピュータである。電子機器(ユーザ機器)10Cは、第1グループに属するユーザCによって使用されるタブレットコンピュータである。
電子機器(ユーザ機器)10Dは、第Nグループに属するユーザDによって使用されるタブレットコンピュータである。電子機器(ユーザ機器)10Eは、第Nグループに属するユーザEによって使用されるタブレットコンピュータである。電子機器(ユーザ機器)10Fは、第Nグループに属するユーザFによって使用されるタブレットコンピュータである。
これらスーパーバイザ機器10Sとユーザ機器10A,10B,10C,10D,10E,10Fの各々は、本実施形態のタブレットコンピュータ10と同等の機能を有している。
スーパーバイザ機器10Sは、各グループ内のいずれか1台のユーザ機器(ここでは、第1グループのユーザ機器10Aと第Nグループのユーザ機器10D)と有線ネットワーク又は無線ネットワークを介して互いに接続される。第1グループ内のユーザ機器10A,10B,10Cは有線ネットワーク又は無線ネットワークを介して互いに接続され得る。また、第Nグループ内のユーザ機器10D,10E,10Fは有線ネットワーク又は無線ネットワークを介して互いに接続され得る。2台の機器を互いに無線接続するための方法としては、複数の機器を互いに無線接続することが可能な任意の無線接続規格が使用され得る。例えば、Wi−Fi Direct(登録商標)、又はBluetooth(登録商標)、等が使用されてもよい。
図3に示す例では、スーパーバイザ機器10Sと第1グループに属するユーザ機器10Aとが無線ネットワークを介して接続され、スーパーバイザ機器10Sと第Nグループに属するユーザ機器10Dとが無線ネットワークを介して接続されている。第1グループでは、ユーザ機器10Aとユーザ機器10Bとが無線ネットワークを介して接続され、ユーザ機器10Aとユーザ機器10Cとが無線ネットワークを介して接続されている。また、第Nグループでは、ユーザ機器10Dとユーザ機器10Eとが無線ネットワークを介して接続され、ユーザ機器10Dとユーザ機器10Fとが無線ネットワークを介して接続されている。
スーパーバイザ機器10Sは、各グループのための手書き共有サービスを開始し、グループへの参加を要求したユーザ機器が手書き共有サービスを利用するための処理を実行する。スーパーバイザ機器10Sは、各グループのための手書き共有サービスを実行する暫定的なオーナー(暫定的なサーバ)として機能する。オーナーは、手書き共有サービスの主催者に相当する。
より具体的には、スーパーバイザ機器10Sは、各グループのための手書き共有サービスを開始し、いずれかのユーザ機器からグループへの参加が要求された場合、グループで共有されるデータをそのユーザ機器に送信する。スーパーバイザ機器10Sは、グループへの参加を要求しているユーザ機器がグループに参加すること、すなわち、手書き共有サービスにログインすること、を許可するか否かを決定してもよい。オーナーから参加(ログイン)の許可を受け取った機器だけが、手書き共有サービスにログインすること、つまりこのグループに参加することが許可されてもよい。
次いで、スーパーバイザ機器10Sは、グループのオーナーを、スーパーバイザ機器10Sからそのグループに最初に参加したユーザ機器に変更するための処理を実行する。ここでは、ユーザ機器10Aが第1グループに最初に参加し、ユーザ機器10Dが第Nグループに最初に参加した場合を例示する。その場合、スーパーバイザ機器10Sは、第1グループのオーナーを、スーパーバイザ機器10Sからユーザ機器10Aに変更し、また第Nグループのオーナーを、スーパーバイザ機器10Sからユーザ機器10Dに変更する。このオーナーを変更する処理の詳細については図9を参照して後述する。
スーパーバイザ機器10Sは、2番目以降に第1グループへの参加を要求したユーザ機器10B,10Cに、第1グループのオーナーがユーザ機器10Aであることを通知する。ユーザ機器10B,10Cは、この通知に応じて、暫定的なオーナーであったスーパーバイザ機器10Sではなく、ユーザ機器10Aに第1グループへの参加を要求する。同様に、スーパーバイザ機器10Sは、2番目以降に第Nグループへの参加を要求したユーザ機器10E,10Fに、第Nグループのオーナーがユーザ機器10Dであることを通知する。ユーザ機器10E,10Fは、この通知に応じて、暫定的なオーナーであったスーパーバイザ機器10Sではなく、ユーザ機器10Dに第Nグループへの参加を要求する。
第1グループのオーナーとなったユーザ機器10Aは、第1グループのための手書き共有サービスを開始し、第1グループへの参加を要求したユーザ機器10B,10Cが手書き共有サービスを利用するための処理を実行する。ユーザ機器10Aは、ユーザ機器10B,10Cが第1グループへの参加を要求した場合、ユーザ機器10A,10B,10C間で手書き情報を共有するための処理を実行する。
いま、ユーザ機器10A,10B,10Cが第1グループの手書き共有サービスにログインしている状態である場合、つまり、ユーザ機器10A,10B,10Cが第1グループに参加している場合を想定する。ユーザ機器10A,10B,10Cの各々のディスプレイには、共有される手書き情報を見るための手書き共有画面(共有カンバス)が表示される。手書き共有画面はユーザ機器10A,10B,10Cに共通の表示エリアとして使用される。この手書き共有画面は、ユーザ機器10A,10B,10C間のビジュアル通信を可能にする。ビジュアル通信は、手書き情報、及び他の様々な電子文書を機器間で交換することを可能にする。
ユーザA,B,Cの各々が自身の電子機器上で手書き入力したストロークは、自身のユーザ機器の手書き共有画面に表示されるだけでなく、他の各ユーザのユーザ機器の手書き共有画面にもリアルタイムで反映される。つまり、ユーザA,B,Cの各々が手書き入力したストローク(手書き文字、手書き図形等)に対応するストロークデータをユーザ機器10A,10B,10C間で交換・共有することができる。
さらに、ユーザ機器10A,10B,10Cは、教材のような同じコンテンツをカンバス上に表示することもできる。この場合、各ユーザ機器において手書き入力されるストロークデータは、このコンテンツ上に表示される。ユーザA,B,Cは、同じコンテンツを見ながら、このコンテンツ上に手書きされる手書き文字、手書き図形等をユーザ機器10A,10B,10C間で交換・共有することができる。
同様にして、第Nグループのオーナーとなったユーザ機器10Dは、第Nグループのための手書き共有サービスを開始し、第Nグループへの参加を要求したユーザ機器10E,10Fが手書き共有サービスを利用するための処理を実行する。ユーザ機器10Dは、ユーザ機器10E,10Fが第Nグループへの参加を要求した場合、ユーザ機器10D,10E,10F間で手書き情報を共有するための処理を実行する。
スーパーバイザ機器10Sは、各グループのオーナーのユーザ機器10A,10Dと通信することにより、各グループを管理する。スーパーバイザ機器10Sは、例えば、ユーザ機器10A,10Dからグループで共有されているデータを受信することによって、グループのオーナーになることなく、グループを管理することができる。したがって、スーパーバイザ機器10Sによって実行される処理の負荷を低減することができる。
図4は、同一のカンバスがユーザ機器10A,10B,10C間で共有される例を示す。
手書き共有サービスでは、ユーザ機器10Aとユーザ機器10Bとが互いに無線接続され、またユーザ機器10Aとユーザ機器10Cとが互いに無線接続される。そして、手書き共有サービスは、各端末の画面表示及び手書き操作を同期させることによって、複数人のユーザが同じカンバスに同時に手書きすることを実現する。
ユーザ機器10A,10B,10Cそれぞれのカンバス上には、同一のストローク21,22,23が表示される。図5に示されているように、ストローク21は、ユーザ機器10AにおいてユーザAによって手書き入力されたストロークである。ストローク22は、ユーザ機器10BにおいてユーザBによって手書き入力されたストロークである。ストローク23は、ユーザ機器10CにおいてユーザCによって手書き入力されたストロークである。
図6は、手書き共有画面(カンバス)の例を示している。各ユーザ機器のカンバス30Aは手書きエリアである。この手書きエリア30A上に、各ユーザが手書き入力したストロークが表示される。なお、教材のようなコンテンツがカンバス30A上に表示されてもよい。この場合、各ユーザのストロークはこのコンテンツ上に描画される。
例えば、ユーザ機器10Bのカンバス30Aには、カンバス30A上でペン100Bを使用してユーザBによって手書き入力されるストローク40がそれぞれ表示される。さらに、カンバス30Aには、他の各ユーザ機器10A,10Cで手書き入力されたストロークがそれぞれ表示される。他の各ユーザ機器10A,10Cで手書き入力されたストロークには、ユーザCがユーザ機器10C上で手書き入力したストローク42と、ユーザAがユーザ機器10A上で手書き入力したストローク44とが含まれる。
次いで、図7を参照して、ストロークデータについて説明する。図7においては、「ABC」の手書き文字列が「A」、「B」、「C」の順番で手書きされた場合が想定されている。
手書き文字「A」は、ペン100などを使用して手書き入力される2つのストローク(「∧」形状の軌跡、「−」形状の軌跡)によって表現される。
ペン100が画面に接触している間に、「∧」形状のペン100の軌跡がリアルタイムでサンプリングされる。これによって、「∧」形状のペン100の軌跡上の複数の点それぞれに対応する複数の点データ(複数の座標データ)PD11、PD12、…PD1mが次々と得られる。点データは、ペン100が画面に接触している間に、例えば、所定時間毎に得られる。点データは、ペン100が画面に接触した状態で移動しない場合にも、所定時間毎に得られる。そのような場合には、同一又はほぼ同一の座標を示す点データが生成されることになる。
図7においては、図示の簡単化のために点データの密度が粗く描かれているが、実際には、より高い密度で複数の点データが得られる。これら点データPD11、PD12、…PD1mは、「∧」形状のペン100の軌跡を画面上に描画するために使用される。ペン100の動きに追従するように、「∧」形状のペン100の軌跡がリアルタイムで画面上に描画される。
同様に、「−」形状のペン100の軌跡も、ペン100が画面に接触している間に、リアルタイムでサンプリングされる。これによって「−」形状のペン100の軌跡上の複数の点それぞれに対応する複数の点データ(複数の座標データ)PD21、PD22、…PD2nが次々と得られる。
手書き文字「B」は、ペン100などを使用して手書きされた2つのストロークによって表現される。手書き文字「C」は、ペン100などを使用して手書きされた1つのストロークによって表現される。
図8は、図7の手書き文字列に対応する時系列情報200を示している。時系列情報200は、複数のストロークデータSD1、SD2、…、SD5を含む。時系列情報200内においては、これらストロークデータSD1、SD2、…、SD5は、筆跡順に、つまり複数のストロークが手書きされた順に時系列に並べられている。
時系列情報200において、1番目と2番目のストロークデータSD1、SD2は、手書き文字「A」の2つのストロークをそれぞれ示している。3番目と4番目のストロークデータSD3、SD4は、手書き文字「B」を構成する2つのストロークをそれぞれ示している。5番目のストロークデータSD5は、手書き文字「C」を構成する1つのストロークを示している。
各ストロークデータは、1つのストロークの軌跡上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいて、複数の座標はストロークが書かれた順に時系列に並べられている。例えば、手書き文字「A」に関しては、ストロークデータSD1は、手書き文字「A」の「∧」形状のストロークの軌跡上の点それぞれに対応する座標データ系列(時系列座標)、つまりn個の座標データSD11、SD12、…SD1nを含む。ストロークデータSD2は、手書き文字「A」の「−」形状のストロークの軌跡上の点それぞれに対応する座標データ系列、つまりn個の座標データSD21、SD22、…SD2nを含む。なお、座標データの数nは、ストロークデータ毎に異なる。
各座標データは、対応する軌跡内のある1点に対応するX座標及びY座標を示す。例えば、座標データSD11は、「∧」形状のストロークの始点のX座標(X11)及びY座標(Y11)を示す。SD1nは、「∧」形状のストロークの終点のX座標(X1n)及びY座標(Y1n)を示す。
さらに、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Tを含んでいてもよい。手書きされた時点は、絶対時間(例えば、年月日時分秒)又はある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間(例えば、年月日時分秒)をタイムスタンプ情報として付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Tとして付加してもよい。
さらに、各座標データには、筆圧を示す情報(Z)が追加されてもよい。
次いで、図9を参照して、第1グループのための手書き共有サービスが開始される場合の、スーパーバイザ機器10S及びユーザ機器10A,10B,10Cの間のデータの流れを説明する。図9に示す例では、スーパーバイザ機器10Sが、第1グループのための手書き共有サービスの暫定的なオーナー(サーバ)として動作した後に、この第1グループに最初に参加したユーザ機器10Aが、当該手書き共有サービスのオーナー(サーバ)として動作する場合が想定されている。ユーザ機器10Bとユーザ機器10Cとは、ユーザ機器10Aがオーナーである第1グループに参加する。つまり、ユーザ機器10B,10Cの各々はクライアントとして動作する。
まず、スーパーバイザ機器10Sは第1グループを作成する。スーパーバイザ機器10Sは、第1グループのための手書き共有サービスで共有される画面(カンバス)のフォーマットデータ(共有データ)を生成し、ローカルなデータベース12Sに格納する。このフォーマットデータは、例えば、初期状態の空白のカンバスを表示するためのデータや、第1グループに与えられる課題(コンテンツ)を含むカンバスを表示するためのデータである。
スーパーバイザ機器10Sは、生成されたフォーマットデータを用いて、暫定的なオーナーとして第1グループのための手書き共有サービスを開始する。そして、スーパーバイザ機器10Sは、最初の参加者であるユーザ機器10Aから第1グループへの参加要求を受信する。スーパーバイザ機器10Sは、この要求を受信したことに応じて、第1グループで共有されるフォーマットデータをユーザ機器10Aに送信する。ユーザ機器10Aは、このフォーマットデータを受信し、ローカルなデータベース12Aに格納する。これにより、スーパーバイザ機器10Sとユーザ機器10Aとは、このフォーマットデータに基づく画面をディスプレイに表示することができるので、これら2つの機器10S,10A間で画面を共有することができる。なお、暫定的なオーナーとして動作するスーパーバイザ機器10Sは、フォーマットデータをユーザ機器10Aに送信するための処理を行えばよく、フォーマットデータに基づく画面をディスプレイに表示するための処理は行ってもよいし、行わなくてもよい。
次いで、暫定的なオーナーであるスーパーバイザ機器10Sは、第1グループのための手書き共有サービスを終了すると共に、ユーザ機器10Aに第1グループのための手書き共有サービスを開始させる。ユーザ機器10Aは、スーパーバイザ機器10Sから受信したフォーマットデータを用いて、オーナーとして、第1グループのための手書き共有サービスを開始する。これにより、グループの作成や管理が難しいユーザ(例えば、子供)が使用するユーザ機器で、ユーザにオーナーであることを意識させることなく、グループを開催させることができる。
スーパーバイザ機器10Sは、当該スーパーバイザ機器10Sに対して、2番目以降に第1グループへの参加を要求したユーザ機器10B,10Cに、第1グループのオーナーがユーザ機器10Aであること(すなわち、第1グループのオーナーがスーパーバイザ機器10Sからユーザ機器10Aに移ったこと)を通知する。ユーザ機器10B,10Cは、この通知に応じて、ユーザ機器10Aに第1グループへの参加を要求し直す。
ユーザ機器10Aは、ユーザ機器10Bから、当該ユーザ機器10Bが第1グループに参加することを要求する参加要求を受け取ったことに応じて、第1グループのフォーマットデータをユーザ機器10Bに送信する。同様に、ユーザ機器10Aは、ユーザ機器10Cから、当該ユーザ機器10Cが第1グループに参加することを要求する参加要求を受け取ったことに応じて、第1グループのフォーマットデータをユーザ機器10Cに送信する。ユーザ機器10B,10Cは、このフォーマットデータを受信し、ローカルなデータベース12B,12Cに格納する。これにより、ユーザ機器10A,10B,10Cは、このフォーマットデータに基づく画面をディスプレイに表示することができるので、これら3つの機器10A,10B,10C間で画面を共有することができる。
次いで、図10は、第1グループのための手書き共有サービスが実行されている間の、スーパーバイザ機器10S及びユーザ機器10A,10B,10Cの間のデータの流れを示す。ここでは、ユーザ機器10Aがオーナーである第1グループにユーザ機器10B,10Cが参加し、スーパーバイザ機器10Sがこの第1グループを管理する場合を例示する。
ユーザ機器10Aは、ユーザ機器10Bにおいて手書き入力されるストロークに対応するストロークデータ(ユーザBのストロークデータ)をユーザ機器10Bから受信する。また、ユーザ機器10Aは、ユーザ機器10Cにおいて手書き入力されるストロークに対応するストロークデータ(ユーザCのストロークデータ)をユーザ機器10Cから受信する。
さらに、ユーザ機器10Aは、ユーザ機器10Aにおいて手書き入力されるストロークに対応するストロークデータ(オーナーであるユーザAのストロークデータ)と、ユーザ機器10Cから受信されたストロークデータ(ユーザCのストロークデータ)とをユーザ機器10Bに送信する。またさらに、ユーザ機器10Aは、ユーザ機器10Aにおいて手書き入力されるストロークに対応するストロークデータ(オーナーであるユーザAのストロークデータ)と、ユーザ機器10Bから受信されたストロークデータ(ユーザBのストロークデータ)とをユーザ機器10Cに送信する。
したがって、ユーザ機器10Aのディスプレイには、ユーザA(オーナー)のストロークが表示されるだけでなく、ユーザBのストローク、さらにはユーザCのストロークも表示される。
同様にして、ユーザ機器10Bのディスプレイにも、ユーザBのストロークが表示されるだけでなく、ユーザA(オーナー)のストローク、さらにはユーザCのストロークも表示される。
また同様に、ユーザ機器10Cのディスプレイにも、ユーザCのストロークが表示されるだけでなく、ユーザA(オーナー)のストローク、さらにはユーザBのストロークも表示される。
このように、ユーザ機器10A,10B,10Cのいずれのディスプレイにも同様のストロークが描画された画面が表示され、したがって、第1グループに参加しているユーザ機器10A,10B,10C間で画面が共有されている。
ユーザ機器10A,10B,10Cの各々は、自身の電子機器で手書き入力されたストロークに対応するストロークデータをローカルなデータベース12A,12B,12Cに格納する。さらに、ユーザ機器10A,10B,10Cの各々は、他のユーザ機器から受信されたストロークデータもローカルなデータベース12A,12B,12Cに格納する。
スーパーバイザ機器10Sは、上述のような手書きストロークの共有を行う第1グループを管理する。スーパーバイザ機器10Sは、第1グループのオーナーであるユーザ機器10Aに、スーパーバイザ機器10Sが第1グループに参加することを要求する。ユーザ機器10Aは、スーパーバイザ機器10Sの第1グループへの参加を許可し、第1グループの共有データをスーパーバイザ機器10Sに送信する。この第1グループの共有データには、例えば、ローカルなデータベース12Aに格納されているストロークデータ(すなわち、ユーザ機器10Aで手書き入力されたストロークに対応するストロークデータ、及び他のユーザ機器10B,10Cから受信されたストロークデータ)が含まれている。
スーパーバイザ機器10Sは、受信された第1グループの共有データをローカルなデータベース12Sに格納する。これにより、スーパーバイザ機器10Sは、第1グループの共有データを回収することができる。
スーパーバイザ機器10Sは、共有データを回収した後、第1グループを退出してもよいし、第1グループへの参加を続行してもよい。第1グループへの参加を続行する場合、スーパーバイザ機器10Sは、この共有データを用いてディスプレイに第1グループの共有画面を表示する。スーパーバイザ機器10Sは、スーパーバイザ機器10Sで手書き入力されたストロークに対応するストロークデータをユーザ機器10A(オーナー)に送信する。ユーザ機器10Aは、スーパーバイザ機器10Sから受信したストロークデータを、ユーザ機器10B,10Cに送信する。また、スーパーバイザ機器10Sは、ユーザ機器10A,10B,10Cで手書き入力されたストロークに対応するストロークデータをユーザ機器10Aから受信する。
したがって、スーパーバイザ機器10Sのディスプレイには、スーパーバイザのストロークが表示されるだけでなく、ユーザA,B,Cのストロークも表示される。同様に、ユーザ機器10A,10B,10Cのディスプレイには、ユーザA,B,Cのストロークが表示されるだけでなく、スーパーバイザのストロークも表示される。
図11は、タブレットコンピュータ10のシステム構成を示す。上述したように、このタブレットコンピュータ10は、スーパーバイザ機器10Sとユーザ機器10A,10B,10Cのいずれとしても動作し得る。
タブレットコンピュータ10は、CPU101、システムコントローラ102、主メモリ103、グラフィクスプロセッシングユニット(GPU)104、BIOS−ROM105、不揮発性メモリ106、無線通信デバイス107、エンベデッドコントローラ(EC)108等を備える。
CPU101は、タブレットコンピュータ10内の様々なコンポーネントの動作を制御するプロセッサである。CPU101は、ストレージデバイスである不揮発性メモリ106から主メモリ103にロードされる様々なプログラムを実行する。これらプログラムには、オペレーティングシステム(OS)201、及び様々なアプリケーションプログラムが含まれている。アプリケーションプログラムには、手書き共有アプリケーションプログラム202が含まれている。この手書き共有アプリケーションプログラム202は、手書き情報を共有するグループを管理する機能、グループに属する電子機器間で手書き情報を共有するための機能、グループ内での手書き情報の共有によるドキュメントの制作を評価するための機能、等を実行することができる。
また、CPU101は、BIOS−ROM105に格納された基本入出力システム(BIOS)も実行する。BIOSは、ハードウェア制御のためのプログラムである。
システムコントローラ102は、CPU101のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ102には、主メモリ103をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ102は、PCI EXPRESS規格のシリアルバスなどを介してグラフィクスプロセッシングユニット(GPU)104との通信を実行する機能も有している。
GPU104は、本タブレットコンピュータ10のディスプレイモニタとして使用されるLCD17Aを制御する表示プロセッサである。このGPU104によって生成される表示信号はLCD17Aに送られる。LCD17Aは、表示信号に基づいて画面イメージを表示する。このLCD17Aの上面側にはタッチパネル17Bが配置されている。LCD17Aの下面側にはデジタイザ17Cが配置されている。タッチパネル17Bは、LCD17Aの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置及び接触位置の動き等はタッチパネル17Bによって検出される。デジタイザ17CはLCD17Aの画面上で入力を行うための電磁誘導式のポインティングデバイスである。ペン(スタイラス)100が接触される画面上の接触位置及び接触位置の動き等はデジタイザ17Cによって検出される。
無線通信デバイス107は、無線通信を実行するように構成されたデバイスである。無線通信デバイス107は、信号を無線送信する送信部107Tと、信号を無線受信する受信部107Rとを含む。EC108は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。EC108は、ユーザによるパワーボタンの操作に応じて本タブレットコンピュータ10を電源オン又は電源オフする機能を有している。
次いで、図12を参照して、手書き共有アプリケーションプログラム202の構成について説明する。手書き共有アプリケーションプログラム202は、グループを管理するためのスーパーバイザモードと、グループ内で手書き情報を共有するためのユーザモードのいずれかのモードで動作する。つまり、スーパーバイザモードで動作する手書き共有アプリケーションプログラム202が実行されている電子機器10がスーパーバイザ機器に相当し、ユーザモードで動作する手書き共有アプリケーションプログラム202が実行されている電子機器10がユーザ機器に相当する。
手書き共有アプリケーションプログラム202は、グループを管理し、グループ内で手書き情報を共有し、グループ内での手書き情報の共有によるドキュメントの制作を評価するための機能実行モジュールとして、グループ処理部301、表示処理部302、ストロークデータ処理部303、送信制御部304、受信制御部305、貢献度算出部306、等を備える。
まず、手書き共有アプリケーションプログラム202がスーパーバイザモードで動作する場合について説明する。
グループ処理部301は、手書き共有サービスが実行されるグループを管理する。
グループ処理部301は、グループを作成するための処理を実行する。グループ処理部301は、スーパーバイザ機器10Sがオーナーであるグループを作成する。グループ処理部301は、作成されたグループに対応するグループデータ411のレコードを生成し、記憶媒体402(スーパーバイザ機器10Sのローカルなデータベース12S)に格納されているグループデータ411に追加する。このグループデータ411は、スーパーバイザ機器10Sによって管理されるグループに関するデータを含む。
図13は、グループデータ411の一構成例を示す。グループデータ411は、スーパーバイザ機器10Sによって管理される複数のグループに対応する複数のレコードを含む。各レコードは、例えば、「グループID」フィールド、「グループ名」フィールド、「オーナーID」フィールド、「参加者ID」フィールド、「状態」フィールド、等を含む。
あるグループに対応するレコードにおいて、「グループID」フィールドは、そのグループに付与された識別情報を示す。「グループ名」フィールドは、そのグループに付けられた名称を示す。「グループ名」フィールドには、“1班”、“2班”のようなグループの名称だけでなく、そのグループで扱うコンテンツを示す情報(例えば、グループによる協働作業が行われる教科、課題、教材等を示す情報)であってもよい。
「オーナーID」フィールドは、そのグループを主催するユーザに付与された識別情報を示す。なお、「オーナーID」フィールドには、そのグループを主催するユーザが使用する電子機器に付与された識別情報(デバイスID)が設定されてもよい。「参加者ID」フィールドは、そのグループに参加しているユーザに付与された識別情報(又は、そのユーザが使用する電子機器に付与された識別情報)を示す。「状態」フィールドは、そのグループの状態を示し、例えば、ユーザがグループに参加できる状態であることを示す「開催」、又はユーザがグループに参加できない状態であることを示す「終了」が設定される。
なお、グループデータ411のレコードには、グループが作成された作成日時、グループの内容が更新された更新日時、等の情報が含まれていてもよい。
グループ処理部301は、作成されたグループ内で共有されるカンバス(共有画面)を生成する。表示処理部302は、初期状態のカンバス(例えば、空白のカンバス)を画面に表示する。スーパーバイザは、このカンバス上に、グループ内のユーザに配布したいコンテンツ(教材等)を配置するための操作を行うことができる。グループ処理部301は、スーパーバイザがカンバスに配置するコンテンツを選択した場合、カンバス上に、選択されたコンテンツを配置する。このコンテンツは、文書や画像等である。
なお、このカンバス上には、スーパーバイザによる手書き入力操作に応じてストロークを描画することもできる。タッチスクリーンディスプレイ17(デジタイザ17C、又はタッチパネル17B)は、「タッチ」、「移動(スライド)」、「リリース」等のイベントの発生を検出するように構成されている。「タッチ」は、画面上に外部オブジェクトが接触したことを示すイベントである。「移動(スライド)」は、画面上に外部オブジェクトが接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面から外部オブジェクトが離されたことを示すイベントである。
表示処理部302及びストロークデータ処理部303は、タッチスクリーンディスプレイ17によって発生される「タッチ」、「移動(スライド)」又は「リリース」のイベントを受信し、これによって手書き入力操作を検出する。「タッチ」イベントには、接触位置の座標が含まれている。「移動(スライド)」イベントには、移動先の接触位置の座標が含まれている。「リリース」イベントには、接触位置が画面から離された位置の座標が含まれている。したがって、表示処理部302及びストロークデータ処理部303は、タッチスクリーンディスプレイ17から、接触位置の動きの軌跡に対応する座標列を受信することができる。
表示処理部302は、タッチスクリーンディスプレイ17の画面上で手書き入力されるストロークをカンバスに表示する。表示処理部302は、タッチスクリーンディスプレイ17から座標列を受信し、この座標列に基づいて、ペン100等を使用した手書き入力操作によって手書きされる各ストロークの軌跡をカンバスに表示する。
ストロークデータ処理部303は、タッチスクリーンディスプレイ17から出力される上述の座標列を受信し、この座標列に基づくストロークデータ412Aを生成する。そして、ストロークデータ処理部303は、描画されるストロークに用いられるペンのタイプ、色、太さ、透過度、等のペンの属性を示すストローク属性データ412Bを生成する。この場合、生成されたストロークデータ412A及びストローク属性データ412Bは作業メモリ401に一時保存されてもよい。
さらに、スーパーバイザによる編集操作に応じて、カンバス上に描画されているストロークを編集することもできる。この編集操作は、例えば、描画されているストロークの内の1つ以上のストロークに対して、移動、削除、サイズの変更、ペンタイプの変更、色の変更、太さの変更、透過度の変更等を施すための操作である。ストロークデータ処理部303は、このような編集操作によりストロークが編集された内容を示すストローク編集データ412Cを生成する。
グループ処理部301は、上述のようにして生成されたストロークデータ412A、ストローク属性データ412B及びストローク編集データ412Cを、グループ共有データ412として記憶媒体402等に格納する。このグループ共有データ412を利用して、グループに参加する他の電子機器でも同一のカンバスを表示することができるので、グループ内でカンバス(画面)を共有することができる。
次いで、グループ処理部301は、作成されたグループを開催するための処理、すなわち、作成されたグループのための手書き共有サービスを開始するための処理を行う。グループ処理部301は、例えば、作成されたグループの開催が指示された場合、そのグループのグループ共有データ412を用いて、暫定的なオーナー(サーバ)としてグループを開催する。以下では、説明を分かりやすくするために、第1グループが開催される場合を例示するが、グループ処理部301は複数のグループを開催するための処理を並行して行うこともできる。
グループ処理部301は、開催中のグループを広告する。より具体的には、グループ処理部301は、受信制御部305を介して、ユーザ機器から開催中のグループの問い合わせを受信したことに応じて、送信制御部304を介して、そのユーザ機器に開催中のグループを通知する。
そして、グループ処理部301は、受信制御部305を介して、ユーザ機器(クライアント)からの第1グループへの参加要求を待ち受ける。グループ処理部301は、その第1グループに最初に参加を要求したユーザ機器10Aに、送信制御部304を介して、第1グループのグループ共有データ412を送信する。なお、グループ処理部301は、ユーザ機器10Aに、送信制御部304を介して、グループデータ411内の第1グループに対応するレコードを送信してもよい。グループ処理部301は、ユーザ機器10Aからのグループ参加要求を受け取ったときに、このユーザ機器10AのIPアドレスを保存する。送信制御部304は、このIPアドレスに基づいて、ユーザ機器10Aにデータを送信する。ユーザ機器10Aは、この第1グループのグループ共有データ412を受信し、ローカルなデータベース12Aに保存する。
次いで、このユーザ機器10Aが第1グループに参加した場合(例えば、受信制御部305を介して、ユーザ機器10Aからグループ共有データ412の受信確認が受信された場合)、グループ処理部301は第1グループを終了する。グループ処理部301は、例えば、送信制御部304を介して、グループに参加しているユーザ機器10Aにグループの終了を通知し、ユーザ機器10Aがグループから退出した後に、グループを終了する。そして、グループ処理部301は、送信制御部304を介して、保存していたユーザ機器10AのIPアドレスに基づいて、ユーザ機器10Aに、開催していた第1グループの開催を要求する。
クライアントであったユーザ機器10Aは、この要求に応じて、オーナーとして第1グループを開催する。ユーザ機器10Aは、スーパーバイザ機器10Sから受信していた第1グループのグループ共有データ412を用いて、第1グループのための手書き共有サービスを実行する。これにより、スーパーバイザ機器10Sが暫定的なオーナーとして開催していたグループを、このグループに最初に参加したユーザ機器10Aに、オーナーとして開催させることができる。
グループ処理部301は、さらに、開催中のグループを管理するための処理を実行する。グループ処理部301は、開催中のグループで共有されているグループ共有データ412を回収するための処理を実行する。グループ処理部301は、共有データ412を回収しようとするグループに一時的に参加することによって、グループの共有データ412を受信する。グループ処理部301は、送信制御部304を介して、オーナーであるユーザ機器10Aに、スーパーバイザ機器10Sがグループに参加することを要求し、受信制御部305を介して、そのグループの共有データ412を受信する。グループ処理部301は、受信されたグループ共有データ412を記憶媒体402(ローカルなデータベース12S)に格納する。グループ共有データ412を回収した後、グループ処理部301は、スーパーバイザ機器10Sがグループから退出することをオーナーであるユーザ機器10Aに通知する。
グループ処理部301は、スーパーバイザによる操作等に応じて、例えば、グループ学習(授業)の終了時に、各グループのグループ共有データ412を回収するための処理を行う。これにより、スーパーバイザ機器10Sは、各グループのオーナー機器から、グループで制作された共有カンバス上のドキュメント(成果物)に関するグループ共有データ412を受信(回収)することができる。
開催中のグループで共有されるグループ共有データ412を回収することによって、スーパーバイザは、グループの状況を把握することができる。また、スーパーバイザ機器10Sが、グループのオーナー(サーバ)として動作することなく、オーナーとなったユーザ機器との通信だけでグループを管理できるので、スーパーバイザ機器10Sによって実行される処理の負荷を低減することができる。
次いで、手書き共有アプリケーションプログラム202がユーザモードで動作する場合について説明する。
まず、グループ処理部301は、送信制御部304を介して、開催中のグループの探索要求をマルチキャストする。グループ処理部301は、受信制御部305を介して、開催中のグループの探索結果を受信し、表示処理部302は、その探索結果を用いて、開催中のグループのリストを画面に表示する。グループ処理部301は、送信制御部304を介して、表示されているリストから選択されたグループへの参加を、そのグループのオーナー機器に要求する。
グループ処理部301は、受信制御部305を介して、グループのオーナー機器から、そのグループの共有データ412を受信する。表示処理部302は、受信されたグループ共有データ412を用いて、グループの共有カンバス(共有画面)を表示する。
オーナー機器がスーパーバイザ機器10Sである場合、グループ処理部301は、受信制御部305を介して、スーパーバイザ機器10Sからグループの終了の通知を受信したことに応じて、グループを退出する。そして、グループ処理部301は、受信制御部305を介して、スーパーバイザ機器10S(オーナー機器)から、退出したグループの開催が要求されたことに応じて、スーパーバイザ機器10Sから受信していたグループ共有データ412を用いて、自身をオーナーとしてグループを開催する(すなわち、グループの手書き共有サービスを開始する)。そして、表示処理部302は、このグループ共有データ412に基づく共有カンバス(共有画面)を表示する。
そして、グループ処理部301は、受信制御部305を介して、クライアント機器からのグループへの参加要求を待ち受ける。グループ処理部301は、グループへの参加を要求したクライアント機器に、送信制御部304を介して、グループ共有データ412を送信する。クライアント機器でも同様に、表示処理部302によって、このグループ共有データ412に基づく共有カンバス(共有画面)が表示される。
表示処理部302及びストロークデータ処理部303は、タッチスクリーンディスプレイ17によって発生される「タッチ」、「移動(スライド)」又は「リリース」のイベントを受信し、これによって手書き入力操作を検出する。「タッチ」イベントには、接触位置の座標が含まれている。「移動(スライド)」イベントには、移動先の接触位置の座標が含まれている。「リリース」イベントには、接触位置が画面から離された位置の座標が含まれている。したがって、表示処理部302及びストロークデータ処理部303は、タッチスクリーンディスプレイ17から、接触位置の動きの軌跡に対応する座標列を受信することができる。
表示処理部302は、タッチスクリーンディスプレイ17の画面上で手書きにより入力されるストロークをカンバスに表示する。表示処理部302は、タッチスクリーンディスプレイ17から座標列を受信し、この座標列に基づいて、ペン100等を使用した手書き入力操作によって手書きされる各ストロークの軌跡をカンバスに表示する。
ストロークデータ処理部303は、タッチスクリーンディスプレイ17から出力される上述の座標列を受信し、この座標列に基づくストロークデータ412Aを生成する。そして、ストロークデータ処理部303は、描画されるストロークに用いられるペンのタイプ、色、太さ、透過度、等のペンの属性を示すストローク属性データ412Bを生成する。この場合、生成されたストロークデータ412A及びストローク属性データ412Bは作業メモリ401に一時保存されてもよい。
さらに、ユーザによる編集操作に応じて、カンバス上に描画されているストロークを編集することもできる。この編集操作は、例えば、描画されているストロークの内の1つ以上のストロークに対して、移動、削除、サイズの変更、ペンタイプの変更、色の変更、太さの変更、透過度の変更等を施すための操作である。ストロークデータ処理部303は、このような編集操作によりストロークが編集された内容を示すストローク編集データ412Cを生成する。
グループ処理部301は、上述のようにして生成されたストロークデータ412A、ストローク属性データ412B及びストローク編集データ412Cを、グループ共有データ412として記憶媒体402等に格納する。
また、送信制御部304は、自身がクライアント機器である場合、オーナー機器に、生成されたストロークデータ412A、ストローク属性データ412B及びストローク編集データ412Cを送信する。送信制御部304は、自身がオーナー機器である場合、クライアント機器に、生成されたストロークデータ412A、ストローク属性データ412B及びストローク編集データ412Cを送信する。
さらに、受信制御部305は、自身がクライアント機器である場合、オーナー機器からストロークデータ412A、ストローク属性データ412B及びストローク編集データ412Cを受信する。表示処理部302は、受信したストロークデータ412A及びストローク属性データ412Bに基づくストロークを共有カンバスに表示し、また受信したストローク編集データ412Cに基づいて、共有カンバス上に描画されているストロークを編集(変更)する。
受信制御部305は、自身がオーナー機器である場合、クライアント機器からストロークデータ412A、ストローク属性データ412B及びストローク編集データ412Cを受信する。表示処理部302は、受信したストロークデータ412A及びストローク属性データ412Bに基づくストロークを共有カンバスに表示し、また受信したストローク編集データ412Cに基づいて、共有カンバス上に描画されているストロークを編集(変更)する。さらに、送信制御部304は、このストロークデータ412A、ストローク属性データ412B及びストローク編集データ412Cをクライアント機器に送信する。
このように送受信されるストロークデータ412A、ストローク属性データ412B及びストローク編集データ412Cを利用して、グループに参加する他の電子機器でも同一のカンバスを表示することができるので、グループ内でカンバス(画面)を共有することができる。
なお、タブレットコンピュータ10は、例えば、手書き共有アプリケーションプログラム202と同様にして手書き文書を作成することができるノートブックアプリケーションプログラムも実行することができる。ユーザは、このノートブックアプリケーションプログラムを用いて、自身の記録のための手書きのノートを作成することができる。そして、ユーザは、この手書きのノート上のストロークをコピーし、手書き共有アプリケーションプログラム202で共有されるカンバス上に貼り付けるための操作を行うことができる。
この操作に応じて、表示処理部302は貼り付けが指示されたストロークをカンバス上に描画し、ストロークデータ処理部303は、そのストロークに対応するストロークデータ412A及びストローク属性データ412Bを生成する。生成されるストローク属性データ412Bでは、そのストロークがカンバス上に貼り付けられたものであることが示される。
貼り付けられたストロークに対応するストロークデータ412A及びストローク属性データ412Bも同様にして、送信制御部304及び受信制御部305を介して、グループ内の電子機器で共有され、グループに参加する他の電子機器でも同一のカンバスを表示することができるので、グループ内でカンバス(画面)を共有することができる。
図14から図16を参照して、グループ共有データ412の一構成例について説明する。グループ共有データ412は、グループ毎に生成され、例えば、各グループの識別情報(グループID)に関連付けられることによって、いずれのグループのグループ共有データ412であるかを特定することができる。グループ共有データ412は、上述したように、ストロークの軌跡を示すストロークデータ(ストロークの時系列情報)412Aと、ストロークに関する各種の属性を示すストローク属性データ412Bと、カンバス(画面)上のストロークの編集に関するストローク編集データ412Cとを含む。
図14は、ストロークデータ412Aの一構成例を示す。このストロークデータ412Aは、ストローク(軌跡)が手書き入力される間にサンプリングされた、ストローク上の複数の点に対応する複数のレコードを含む。各レコードは、例えば、「ストロークID」フィールド、「X座標」フィールド、「Y座標」フィールド、「時間」フィールドを含む。
ある点に対応するレコードにおいて、「ストロークID」フィールドは、その点がサンプリングされたストロークに付与された識別情報を示す。「X座標」フィールドは、その点のX座標を示す。「Y座標」フィールドは、その点のY座標を示す。「時間」フィールドは、その点が手書き入力(すなわち、サンプリング)された時間を示す。「時間」フィールドには、例えば、カンバス上の最初のストロークの手書き入力が開始された時間を基準(例えば、00:00)として、その基準時間からの経過時間(相対時間)が設定される。
図15は、ストローク属性データ412Bの一構成例を示す。このストローク属性データ412Bは、複数のストロークに対応する複数のレコードを含む。各レコードは、「ストロークID」フィールド、「ユーザID」フィールド、「ペンタイプ」フィールド、「色」フィールド、「太さ」フィールド、「透過度」フィールド、「貼り付け」フィールド、等を含む。
あるストロークに対応するレコードにおいて、「ストロークID」は、そのストロークに付与された識別情報を示す。「ユーザID」は、そのストロークを手書き入力したユーザに付与された識別情報を示す。なお、この「ユーザID」の代わりに、そのストロークが手書き入力された電子機器に付与された識別情報(デバイスID)が用いられてもよい。
「ペンタイプ」フィールドは、そのストロークを描画するために用いられるペンのタイプ(例えば、ボールペン、鉛筆、毛筆、万年筆、マーカ、等)を示す。「色」フィールドは、そのストロークが描画される色を示す。「太さ」フィールドは、そのストロークが描画される太さ(幅)を示す。「透過度」フィールドは、そのストロークが描画される透過度を示す。このようなストロークの描画に関する属性は、ユーザが、例えば、そのストロークを手書き入力する前に、ペンタイプ、色、幅、透過度、等の各種の属性を選択することによって決定される。
「貼り付け」フィールドは、そのストロークが、別の手書き文書上のストロークをコピーして、カンバス上に貼り付けられたものであるか否かを示す。上述したように、ユーザは、ノートブックアプリケーションプログラムを用いて、自身の記録のための手書きのノートを作成することができる。ユーザは、この手書きのノート上のストロークをコピーし、手書き共有アプリケーションプログラム202で共有されるカンバス上に貼り付ける操作を行うことができる。この操作により、例えば、ユーザが予習により手書き入力したノート上のストローク(ストローク群)が、カンバス上に貼り付けられる。このような貼り付けられたストロークに対応するレコードの「貼り付け」フィールドには、そのストロークがカンバス上に貼り付けられたものであることを示す値(例えば、“YES”)が設定される。なお、カンバス上に貼り付けられたストロークではなく、カンバス上で手書き入力されたストロークに対応するレコードの「貼り付け」フィールドには、そのストロークがカンバス上に貼り付けられたものではないことを示す値(例えば、“NO”)が設定される。
また、図16は、グループ編集データ412Cの一構成例を示す。グループ編集データ412Cは、カンバス上に描画されているストロークに対する複数の編集操作に対応する複数のレコードを含む。各レコードは、例えば、「編集ID」フィールド、「時間」フィールド、「ユーザID」フィールド、「ストロークID」フィールド、「編集内容」フィールド、等を含む。
ある編集操作に対応するレコードにおいて、「編集ID」フィールドは、その編集操作に付与された識別情報を示す。「時間」フィールドは、その編集操作が行われた時間を示す。この「時間」フィールドには、例えば、カンバス上の最初のストロークの手書き入力が開始された時間を基準(例えば、00:00)として、その基準時間からの経過時間(相対時間)が設定される。「ユーザID」フィールドは、その編集操作を行ったユーザに付与された識別情報を示す。なお、この「ユーザID」の代わりに、その編集操作が行われた電子機器に付与された識別情報(デバイスID)が用いられてもよい。
「ストロークID」フィールドは、その編集操作によって編集されたストロークに付与された識別情報を示す。複数のストロークがまとめて編集された場合、「ストロークID」フィールドには、それら複数のストロークに対応する複数の識別情報が設定される。「編集内容」フィールドは、その編集操作によって実行された編集の内容を示す。この「編集内容」フィールドには、編集操作に応じて、例えば、ストロークの消去、位置の変更(移動)、サイズの変更(拡大/縮小)、色の変更、太さの変更、透過度の変更、等の編集の種類と、変更後に設定された位置やサイズのような各種の値とが記述される。
なお、図14から図16では、グループで共有されるカンバスに手書きストロークが描画されている場合のグループ共有データ412の例を示したが、グループ共有データ412には、カンバス上に配置されたコンテンツ(例えば、画像や文書)のデータや、そのカンバス上の位置やサイズを示すデータ等も含まれ得る。
図17は、手書き共有サービスを利用する電子機器(グループに参加するユーザ機器10A,10B,10C、スーパーバイザ機器10S、等)のディスプレイに表示される画面の例を示す。この画面は、共有カンバスのプレビュー表示エリア51と、ツールバー52とを含む。ツールバー52は、このプレビュー表示エリア15上での入力のための各種のツールボタンを含み、例えば、「領域選択」ボタン521、「消しゴム」ボタン522、「ペン」ボタン523、等を含む。ユーザは、ツールバー52内のこれらのボタン521,522,523を選択(例えば、タップ)することによって、プレビュー表示エリア51上での入力のモードを切り替えることができる。
より具体的には、「領域選択」ボタン521は、プレビュー表示エリア51内の領域を選択するモード(第3モード)に切り替えるためのボタンである。このモードにおいて、ユーザは、プレビュー表示エリア51内の領域を選択する操作を行った後、選択された領域に対する各種の編集操作、すなわち、領域内のストロークに対する各種の編集操作(ストロークのコピー、削除、移動、サイズ変更、ペンタイプ変更、色変更、太さ変更、透過度変更、等)を行うことができる。この領域内のストロークに対する編集操作の内容は、ストローク編集データ412Cとして保存される。
「消しゴム」ボタン522は、プレビュー表示エリア51上に描画されたストローク等を消去するモード(第2モード)に切り替えるためのボタンである。このモードにおいて、ユーザは、プレビュー表示エリア51上で外部オブジェクト(ペン100又は指)が接触した位置のストロークを消去する操作を行うことができる。このストロークを消去する操作の内容は、ストローク編集データ412Cとして保存される。
なお、プレビュー表示エリア51上で消去(削除)されたストロークに対応するストロークデータのレコードは、保存されているストロークデータ412Aから削除されない。これは、プレビュー表示エリア51上で消去されたストロークのデータも保存しておくことで、この消去されたストロークも用いて、例えば、各ユーザによるグループでの学習活動を適切に評価するためである。
また、「ペン」ボタン523は、プレビュー表示エリア51にストロークを手書き入力するモード(第1モード)に切り替えるためのボタンである。このモードにおいて、ユーザは、プレビュー表示エリア51上で外部オブジェクト(ペン100又は指)が接触した位置にストロークを手書き入力(描画)する操作を行うことができる。「ペン」ボタン523がタップされたことに応じて、手書き入力されるストロークの属性を設定するための属性設定画面53が表示されてもよい。この属性設定画面53には、ペンのタイプを選択するためのボタン531、色を選択するためのカラーパレット532、太さを指定するためのスライダ533、透過度(濃さ)を指定するためのスライダ534、選択(指定)された設定をキャンセルするためのキャンセルボタン535、選択(指定)された設定を確定するためのOKボタン536、等が含まれている。この属性設定画面53で選択(指定)された属性は、ストロークが手書き入力された場合に、そのストロークのストローク属性データ412Bとして保存される。
上述したように、スーパーバイザモードで動作する手書き共有アプリケーションプログラム202が実行されるスーパーバイザ機器10Sでは、グループのオーナーとして動作する電子機器(ユーザ機器)から、そのグループで共有されているカンバス上のドキュメントを示すグループ共有データ412を回収することができる。スーパーバイザ機器10Sは、回収されたグループ共有データ412を用いて、スーパーバイザ(教師)が、グループでの学習をユーザ(児童や生徒)毎に評価するための画面を表示することができる。
例えば、受信制御部305は、第1ユーザ機器(第1電子機器)と第2ユーザ機器(第2電子機器)とが属するグループで作成され、第1ユーザ機器上で手書き入力された複数の第1ストロークに対応する第1ストロークデータと第2ユーザ機器上で手書き入力された複数の第2ストロークに対応する第2ストロークデータとを含むドキュメント(グループ共有データ412)を受信(回収)する。受信制御部305は、このドキュメントを、そのグループのオーナーであるユーザ機器(例えば、第1ユーザ機器又は第2ユーザ機器)から受信する。貢献度算出部306は、第1ストロークデータを用いて、第1ユーザ機器を使用する第1ユーザが、ドキュメントの作成に貢献した度合いに関する第1貢献度を算出し、第2ストロークデータを用いて、第2ユーザ機器を使用する第2ユーザが、ドキュメントの作成に貢献した度合いに関する第2貢献度を算出する。そして、表示処理部302は、ドキュメントと、算出された第1貢献度と第2貢献度とをLCD17Aの画面に表示する。
より具体的には、グループ処理部301、貢献度算出部306及び表示処理部302は、例えば、あるグループから回収されたグループ共有データ412を用いて、そのグループで制作された共有カンバス上のドキュメント(共同成果物)と、そのドキュメントに対してグループ内の各ユーザが貢献した度合いに関する貢献度とを含むビューをLCD17Aの画面に表示する。以下では、スーパーバイザによって、評価の対象となる第1グループが選択された場合を例示する。
まず、グループ処理部301は、記憶媒体402から、選択された第1グループに対応するグループ共有データ412を読み出す。
貢献度算出部306は、読み出されたグループ共有データ412を用いて、第1グループに属する各ユーザが、当該第1グループによる共有カンバス上のドキュメントの制作に貢献した度合いに関する貢献度を算出する。この貢献度は、グループ学習における、ユーザ(児童や生徒)の意欲、協調性、課題に関する知識、等を評価するために、ユーザ毎の、例えば、ストローク量、ストロークが手書き入力されたときの時間の偏りに関する度合い、ツールやペンの属性の変更に関する度合い、予習に関する度合い、編集の度合い、及び関連ストローク量のような複数のパラメータ(貢献度パラメータ)を含む。貢献度算出部306は、このような複数のパラメータの内の少なくとも1つを用いて、ユーザの貢献度を算出してもよい。
以下に、貢献度算出部306によって算出される貢献度及び複数の貢献度パラメータの一例を説明する。
貢献度算出部306は、あるユーザによって手書き入力された複数のストロークに対応するストロークデータ412Aを用いて、そのユーザによって手書き入力されたストロークの量に基づく貢献度を算出する。例えば、貢献度算出部306は、ユーザによって手書き入力された複数のストロークに対応するストロークデータ412Aを用いて、それら複数のストロークに含まれるストロークの数と、複数のストロークに含まれる複数の点の数(座標データの数)と、複数のストロークの長さの少なくともいずれか1つに基づいて、貢献度を算出する。また、貢献度算出部306は、各ユーザにより手書き入力されたストローク群の外接矩形の面積のような、ストロークの量に関する他の特徴量をさらに用いて、貢献度を算出することもできる。
より具体的には、貢献度算出部306は、第1グループに属する第1ユーザによって手書き入力された複数の第1ストロークについて、複数の第1ストロークに含まれるストロークの数と、複数の第1ストロークに含まれる複数の点の数(座標データの数)と、複数の第1ストロークの長さ(例えば、複数の第1ストロークに含まれる各ストロークの長さの総和)の少なくともいずれか1つに基づいて、第1ユーザが、ドキュメントの作成に貢献した度合いに関する第1貢献度を算出する。また、貢献度算出部306は、第1グループに属する第2ユーザによって手書き入力された複数の第2ストロークについて、複数の第2ストロークに含まれるストロークの数と、複数の第2ストロークに含まれる複数の点の数と、複数の第2ストロークの長さ(例えば、複数の第2ストロークに含まれる各ストロークの長さの総和)の少なくともいずれか1つに基づいて、第2ユーザが、ドキュメントの作成に貢献した度合いに関する第2貢献度を算出する。
なお、カンバス上で、塗りつぶしのためのストロークが手書き入力される場合、例えば、そのようなストロークに含まれる多数の点の数や長さに基づいて、大きな貢献度が算出されてしまうので、ドキュメントの作成に貢献した度合いに関する貢献度として適切でなくなる可能性がある。そのため、貢献度算出部306は、塗りつぶしのためのストロークが一筆で書き続けられる傾向があることに基づいて、第1しきい値以上の長さ、又は第2しきい値以上の点の数を有するストロークを、貢献度を算出する対象のストロークから除外してもよい。
また、貢献度算出部306は、ユーザによって手書き入力されたストロークに対応するストロークデータ412Aを用いて、ユーザによってストロークが手書き入力されたときの時間の偏りに関する度合いを算出する。貢献度算出部306は、例えば、複数の第1ストロークが手書き入力されたときの時間の偏りに関する度合いを算出し、複数の第2ストロークが手書き入力されたときの時間の偏りに関する度合いを算出する。
より具体的には、貢献度算出部306は、例えば、ユーザによってストロークが手書き入力されたときの時間の間隔の標準偏差を、ストロークが手書き入力されたときの時間の偏りに関する度合いとして算出する。例えば、上述した第1ストロークデータは、複数の第1ストロークの各々の手書き入力が開始された時間と終了した時間とを含み、第2ストロークデータは、複数の第2ストロークの各々の手書き入力が開始された時間と終了した時間とを含む。貢献度算出部306は、複数の第1ストロークの内の連続する2つのストローク毎に、前のストロークの手書き入力が終了した時間(例えば、前のストロークの最後の座標データの入力時間)と、後のストロークの手書き入力が開始された時間(例えば、後のストロークの最初の座標データの入力時間)との間隔を算出し、算出された複数の間隔の標準偏差を算出する。また、貢献度算出部306は、複数の第2ストロークの内の連続する2つのストローク毎に、前のストロークの手書き入力が終了した時間と後のストロークの手書き入力が開始された時間との間隔を算出し、算出された複数の間隔の標準偏差を算出する。なお、貢献度算出部306は、ユーザによってストロークが手書き入力されたときの時間の間隔の平均と標準偏差のような、手書き入力されたときの時間の偏りに関する複数のパラメータを用いて、ストロークが手書き入力されたときの時間の偏りに関する度合いを算出してもよい。
スーパーバイザは、例えば、ユーザによってストロークが手書き入力されたときの時間の偏り(例えば、書き込み時間間隔の標準偏差)が小さいほど、ストロークを書き込んでいない時間(平均無操作時間)のばらつきが小さく、グループでの学習に能動的に参加していると判断することができる。
また、貢献度算出部306は、ユーザによって手書き入力又は編集されたストロークに対応するストロークデータ412A、ストローク属性データ412B及びストローク編集データ412Cを用いて、そのユーザによるストロークの入力又は編集における、ツールやペンの属性の変更に関する度合いを算出する。貢献度算出部306は、例えば、ユーザがストロークを入力又は編集するために、ペンのツールと、領域選択のツールと、消しゴムのツールとを切り替えた第1の回数をツールの変更に関する度合いとして算出し、ペンタイプ、色、太さ、及び透過度のようなペンの属性を切り替えた第2の回数をペンの属性の変更に関する度合いとして算出する。なお、貢献度算出部306は、第1の回数と第2回数との総和を、ツール及びペンの属性の変更に関する度合いとして算出してもよい。また、貢献度算出部306は、ツール及びペンの属性が変更された時間や頻度のような他のパラメータを用いて、ツールやペンの属性の変更に関する度合いを算出してもよい。
より具体的には、貢献度算出部306は、例えば、ユーザが第1ストロークと第2ストロークとを連続して入力していた場合に、第1ストロークに対応するストローク属性データ412Bのレコードに示される属性(ペンタイプ、色、太さ、透過度)と、第2ストロークに対応するストローク属性データ412Bのレコードに示される属性とが異なれば、そのユーザによって属性が変更されたと判断し、1回の属性変更としてカウントする。また、貢献度算出部306は、例えば、ユーザが第3ストロークを入力した直後に、カンバス上に既に描画されていた第1ストロークを消去する編集を行っていた場合に、そのユーザによって、「ペン」のツールから「消しゴム」のツールに変更されたと判断し、1回のツール変更としてカウントする。このように、ストロークデータ412A、ストローク属性データ412B及びストローク編集データ412Cを用いて属性変更回数やツール変更回数が算出されることにより、ストロークが入力又は編集されることなく、ツールやペンの属性の変更だけが繰り返し行われたような場合には、その変更が、変更回数としてカウントされないようにすることができる。
また、例えば、グループ共有データ412は、さらに、上述した複数の第1ストロークの入力に用いられた複数のペンの属性を示す第1属性データと、複数の第2ストロークの入力に用いられた複数のペンの属性を示す第2属性データと、第1ユーザ機器上で、複数の第1ストロークと複数の第2ストロークとの内の1つ以上のストロークが編集された内容を示す第1編集データと、第2ユーザ機器上で、複数の第1ストロークと複数の第2ストロークとの内の1つ以上のストロークが編集された内容を示す第2編集データとを含む。
その場合、貢献度算出部306は、第1ストロークデータと第1属性データと第1編集データとを用いて、第1ユーザによる複数の第1ストローク及び複数の第2ストロークの入力又は編集において、手書き入力されるストロークのペンタイプ、色、太さ、及び透過度の少なくとも1つで規定される属性の変更に関する度合いを算出する。また、貢献度算出部306は、第2ストロークデータと第2属性データと第2編集データとを用いて、第2ユーザによる複数の第1ストローク及び複数の第2ストロークの入力又は編集において、手書き入力されるストロークのペンタイプ、色、太さ、及び透過度の少なくとも1つで規定される属性の変更の度合いを算出する。
また、貢献度算出部306は、第1ストロークデータと第1属性データと第1編集データとを用いて、第1ユーザ機器上で、複数の第1ストローク及び複数の第2ストロークを入力又は編集するために、ストロークを手書き入力する第1モード(ペンのツール)と、ストロークを消去する第2モード(消しゴムのツール)と、ストロークを選択する第3モード(領域選択のツール)との間で、モードが切り替えられた後に、複数の第1ストローク及び複数の第2ストロークが入力又は編集された回数を、第1ユーザによるツールの変更に関する度合いとして算出し、第1ユーザ機器が第1モードに設定されている間に、手書き入力されるストロークのペンタイプ、色、太さ、及び透過度の少なくとも1つで規定される属性が変更された後に、複数の第1ストロークの内の1つ以上のストロークが入力された回数を、第1ユーザによる属性の変更に関する度合いとして算出してもよい。さらに、貢献度算出部306は、第2ストロークデータと第2属性データと第2編集データとを用いて、第2ユーザ機器上で、複数の第1ストローク及び複数の第2ストロークを入力又は編集するために、上述した第1モードと第2モードと第3モードとの間でモードが切り替えられた後に、複数の第1ストローク及び複数の第2ストロークが入力又は編集された回数を、第2ユーザによるツールの変更に関する度合いとして算出し、第2ユーザ機器が第1モードに設定されている間に、手書き入力されるストロークのペンタイプ、色、太さ、及び透過度の少なくとも1つで規定される属性が変更された後に、複数の第2ストロークの内の1つ以上のストロークが入力された回数を、第2ユーザによる属性の変更の度合いとして算出してもよい。
また、貢献度算出部306は、ユーザによって予め作成されたストロークデータに基づくストロークを用いて貼り付けられた、共有カンバス(プレビュー表示エリア51)上のストロークに基づいて、予習に関する度合い(例えば、予習量)を算出する。ユーザは、自身のノートに手書き入力されたストロークの一部をコピーし、共有カンバス上に貼り付けるための操作を行うことができる。予習に関する度合いは、例えば、この操作により貼り付けられたストロークの量(すなわち、貼り付けられたストロークの数、ストロークに含まれる点の数、及びストロークの長さの少なくともいずれか1つに基づく値)によって示される。貢献度算出部306は、例えば、ユーザに対応するストローク属性データ412Bを用いて「貼り付け」フィールドに“YES”が設定されたストロークを検出し、その検出されたストロークの量を対応するストロークデータ412Aを用いて算出することにより、予習に関する度合いを決定する。
算出された貢献度や貢献度パラメータ(例えば、ストローク量、ストロークが手書き入力されたときの時間の偏りに関する度合い、ツールや属性の変更に関する度合い、及び予習に関する度合い)を用いて、スーパーバイザは、例えば、今回のグループ学習に対するユーザの意欲を評価することができる。
また、貢献度算出部306は、ユーザが、共有カンバス上で他のユーザが入力したストロークを編集した度合いを算出する。貢献度算出部306は、例えば、ユーザが、共有カンバス上で他のユーザが入力したストロークを編集した回数(編集回数)に基づいて、この度合いを算出する。また、貢献度算出部306は、編集回数だけでなく、編集されたストロークの量や編集内容のような編集に関する他のパラメータをさらに用いて、この度合いを算出してもよい。
貢献度算出部306は、例えば、上述した第1編集データを用いて、第1ユーザが複数の第2ストロークの内の1つ以上のストロークを編集した度合い(例えば、編集した回数)を算出する。また、貢献度算出部306は、第2編集データを用いて、第2ユーザが複数の第1ストロークの内の1つ以上のストロークを編集した度合い(例えば、編集した回数)を算出する。
より具体的には、貢献度算出部306は、例えば、あるユーザによる編集を示すストローク編集データ412Cのレコードの内、「ストロークID」フィールドに、他のユーザが入力したストロークのIDが含まれるレコードの数を算出し、算出された数を他のユーザが入力したストロークを編集した度合い(編集回数)に決定する。この度合いは、例えば、他のユーザによって手書き入力されたストロークに対して、移動、消去、サイズの変更、色の変更、太さの変更、透過度の変更、等を指示する操作を行った回数を表す。ユーザは、例えば、共有カンバス上に描画されたストロークのまとまりを整理したり、ストロークを見やすくしたりするために、このような編集操作を行うことが想定されるので、決定された度合いは協調性の指標として用いられる。
さらに、貢献度算出部306は、ストロークデータ412Aを用いて、ユーザによって共有カンバス上にストロークが手書き入力されていた場合に、そのストロークに関連して、他のユーザによってストロークが手書き入力された度合いを算出する。この度合いは、例えば、ユーザによって共有カンバス上にストロークが手書き入力されていた場合に、その第3しきい値時間内又は第4しきい値距離内に、他のユーザによって入力されたストロークの量(関連ストローク量とも称する)によって表される。この度合い(関連ストローク量)も、他のユーザが入力したストロークに協調してユーザが手書き入力を行ったことや、ユーザが入力したストロークに促進されて他のユーザが手書き入力を行ったことを表すので、協調性の指標として用いられる。
貢献度算出部306は、上述のような貢献度のパラメータを、第1グループに属するユーザ毎に算出する。貢献度算出部306は、算出されたユーザ毎の貢献度のパラメータを貢献度データ413として記憶媒体402に格納する。
図18は、貢献度データ413の一構成例を示す。貢献度データ413は、複数のユーザに対応する複数のレコードを含む。各レコードは、例えば、「ユーザID」フィールド、「ユーザ名」フィールド、「グループID」フィールド、「ストローク量」フィールド、「書き込み時間間隔」フィールド、「ツール変更回数」フィールド、「予習量」フィールド、「編集回数」フィールド、「関連ストローク量」フィールド、等を含む。
あるユーザに対応するレコードにおいて、「ユーザID」フィールドは、そのユーザに付与された識別情報を示す。「ユーザ名」フィールドは、そのユーザの名前を示す。「グループID」フィールドは、そのユーザ(又はユーザが使用する電子機器)が属するグループに付与された識別情報を示す。
「ストローク量」フィールドは、そのユーザによって手書き入力されたストロークの量を示す。「書き込み時間間隔」フィールドは、そのユーザによってストロークが手書き入力された時間の間隔に関する値を示す。この値は、例えば、ストロークが手書き入力された時間の間隔の標準偏差である。「ツール変更回数」フィールドは、そのユーザによって、ストロークを入力又は編集するためにツールやペンの属性が変更された回数を示す。「予習量」フィールドは、そのユーザによって予め作成されたストロークデータに基づくストロークを用いて貼り付けられた、共有カンバス(プレビュー表示エリア51)上のストロークの量を示す。「編集回数」フィールドは、共有カンバス上で他のユーザが入力したストロークが、そのユーザによって編集された回数を示す。「関連ストローク量」フィールドは、そのユーザによって共有カンバス上にストロークが手書き入力された場合に、その第3しきい値時間内又は第4しきい値距離内に、他のユーザによって手書き入力されたストロークの量を示す。
なお、貢献度データ413のレコードには、「貢献度」フィールドがさらに含まれてもよい。「貢献度」フィールドは、そのユーザがグループでのドキュメントの作成に貢献した度合いに関する貢献度を示す。「貢献度」フィールドには、例えば、「ストローク量」フィールド、「書き込み時間間隔」フィールド、「ツール変更回数」フィールド、「予習量」フィールド、「編集回数」フィールド、及び「関連ストローク量」フィールドの各々に設定された値の少なくともいずれか1つを重み付け加算することにより算出された値が設定される。
表示処理部302は、第1グループのストロークデータ412A、ストローク属性データ412B、ストローク編集データ412C、及び貢献度データ413を用いて、第1グループで制作された共有カンバス上のドキュメントと、そのドキュメントに対して第1グループ内の各ユーザが貢献した度合いに関する貢献度(貢献度パラメータ)とを含む学習結果ビューをLCD17Aの画面に表示する。
図19は、スーパーバイザ機器10SのLCD17Aに表示される学習結果ビュー61の例を示す。この学習結果ビュー61は、スーパーバイザによって指定された1つのグループでの学習結果が示される画面であって、例えば、プレビュー表示エリア71とユーザ情報エリア62,63,64,65とを含む。プレビュー表示エリア71は、指定されたグループで作成されたドキュメント(共同成果物)を含む。プレビュー表示エリア71内のドキュメント上のストロークは、そのストロークを入力したユーザ毎に異なる色で描画することができる。
ユーザ情報エリア62,63,64,65は、そのグループに属する各ユーザに関する情報が含まれる。各ユーザ情報エリア62,63,64,65には、例えば、対応するユーザの名前621,631,641,651、そのユーザによって入力されたストロークが、表示中のドキュメント上に描画される色622,632,642,652、そのユーザによって入力されたストロークの表示又は非表示を指定するためのチェックボックス623,633,643,653、ドキュメント作成に対するそのユーザの貢献度に関するパラメータ624,634,644,654、等が含まれている。
ユーザ情報エリア62には、ユーザAによって入力されたストロークが緑で描画されることが示され、プレビュー表示エリア71には、ユーザAによって入力されたストローク群72が緑で描画されている。同様に、プレビュー表示エリア71には、ユーザBによって入力されたストローク群73が青で描画され、ユーザCによって入力されたストローク群74が黄で描画され、ユーザDによって入力されたストローク群75が紫で描画されている。これらストローク群72,73,74,75は、スーパーバイザがユーザ別にストロークを見分けるために、各ユーザがドキュメントの作成時に指定した色とは異なる色で描画され得る。
なお、ユーザ情報エリア62,63,64,65には、ユーザ毎に、貢献度に関する複数のパラメータ624,634,644,654が示されているが、これら複数のパラメータが統合された値、例えば、貢献度に関する複数のパラメータが重み付け加算された値が、各ユーザの貢献度として表示されてもよい。貢献度に関する複数のパラメータ624,634,644,654は、図19に示すようなグラフではなく、数値で表示されてもよいし、グラフと数値の両方が表示されるようにしてもよい。このような貢献度の可視化により、スーパーバイザは、グループ学習終了後に、各ユーザのグループでの活動を定量的に評価することができる。そのため、スーパーバイザが、たとえ各ユーザのグループでの活動の一部を見逃したとしても、適切な評価を行うことができるように支援できる。
また、スーパーバイザは、チェックボックス623,633,643,653にチェックマークを入れる操作(例えば、チェックマークの入っていないチェックボックスのタップ)によって、対応するユーザが入力したストロークを、プレビュー表示エリア71上に表示することを指示できる。また、スーパーバイザは、チェックボックス623,633,643,653のチェックマークを外す操作(例えば、チェックマークの入っているチェックボックスのタップ)によって、対応するユーザが入力したストロークを、プレビュー表示エリア71上に表示しないことを指示できる。
表示処理部302は、このようなチェックボックス623,633,643,653にチェックマークを入れる操作に応じて、プレビュー表示エリア71上の対応するユーザのストロークを表示する。また、表示処理部302は、チェックボックス623,633,643,653のチェックマークを外す操作に応じて、プレビュー表示エリア71上の対応するユーザのストロークを非表示にする。
表示処理部302は、例えば、スーパーバイザがユーザDに関連付けられたチェックボックス653のチェックマークを外す操作に応じて、図20に示すように、ユーザDによって入力されたストローク群75が、プレビュー表示エリア71上に表示されないようにする。このような機能により、注目する1人又は複数のユーザのストロークだけをフィルタリングして画面に表示することができるので、スーパーバイザ(教師)が、どのユーザが何を書いたかを事後確認することができる。したがって、スーパーバイザが、各ユーザの課題に関する知識を評価するための作業を支援することができる。
次いで、図21のフローチャートを参照して、スーパーバイザ機器10Sによって実行されるグループ共有データの回収処理の手順の例について説明する。
まず、CPU101は、送信部107Tを介して、グループ共有データを回収するグループのオーナー機器に、スーパーバイザ機器10Sがそのグループに参加することを要求する(ブロックB11)。オーナー機器は、この要求に応じて、グループ共有データをスーパーバイザ機器10Sに送信する。
CPU101は、受信部107Rを介して、オーナー機器によって送信されたグループのグループ共有データを受信する(ブロックB12)。CPU101は、受信されたグループ共有データを記憶媒体402(ローカルなデータベース12S)に保存する(ブロックB13)。そして、CPU101は、送信部107Tを介して、スーパーバイザ機器10Sがこのグループから退出することをオーナー機器に通知する(ブロックB14)。
次いで、CPU101は、共有データを回収すべき別のグループがあるか否かを判定する(ブロックB15)。共有データを回収すべき別のグループがある場合(ブロックB15のYES)、ブロックB11に戻り、その別のグループの共有データを回収するための処理が実行される。共有データを回収すべき別のグループがない場合(ブロックB15のNO)、すなわち全てのグループの共有データの回収が完了した場合、処理を終了する。
また、図22のフローチャートは、スーパーバイザ機器10Sの画面に、あるグループのグループ共有データ412に基づく学習結果を表示するための学習結果表示処理の手順の例を示す。この学習結果表示処理では、あるグループに属する複数のユーザによって共同で作成されたカンバス上のドキュメントが、各ユーザがドキュメント作成に貢献した度合いに関する貢献度パラメータと共に画面に表示される。
まず、CPU101は、あるグループに属する複数のユーザの内、貢献度パラメータを算出する対象の第1ユーザを設定する(ブロックB201)。CPU101は、ストロークデータ412Aを用いて、第1ユーザによって入力されたストロークの量を算出する(ブロックB202)。次いで、CPU101は、ストロークデータ412Aを用いて、第1ユーザによって入力されたストロークの内の、連続する2つのストローク毎に時間間隔を算出し、その時間間隔の標準偏差を算出する(ブロックB203)。
また、CPU101は、ストロークデータ412A、ストローク属性データ412B及びストローク編集データ412Cを用いて、第1ユーザによって、ストロークを入力又は編集するためにツールが変更された回数を算出する(ブロックB204)。さらに、CPU101は、ストロークデータ412A及びストローク属性データ412Bを用いて、第1ユーザによって予め作成されたストロークデータに基づくストロークを用いて貼り付けられた、ドキュメント(カンバス)上のストロークの量を示す予習量を算出する(ブロックB205)。
次いで、CPU101は、ストローク編集データ412Cを用いて、第1ユーザによって、他のユーザが手書き入力したストロークが編集された編集回数を算出する(ブロックB206)。また、CPU101は、ストロークデータ412Aを用いて、第1ユーザによって入力されたストロークの内、第3しきい値時間内又は第4しきい値距離内に他のユーザが入力したストロークが存在するストロークの数を、関連ストローク量として算出する(ブロックB207)。CPU101は、ブロックB201からブロックB207の手順によって算出された第1ユーザに関する貢献度パラメータを用いて、貢献度データ413のレコードを作成し、記憶媒体402に格納される貢献度データ413に追加してもよい。
次いで、CPU101は、貢献度パラメータが算出されるグループ内に別のユーザが存在するか否かを判定する(ブロックB208)。別のユーザが存在する場合(ブロックB208のYES)、ブロックB201に戻り、その別のユーザに関する貢献度パラメータを算出するための手順が実行される。
一方、別のユーザが存在しない場合(ブロックB208のNO)、すなわち、グループ内の全てのユーザに関する貢献度パラメータが算出された場合、CPU101は、そのグループで作成されたドキュメント(共有カンバス)と、ユーザ毎の貢献度パラメータとを含むビューをLCD17Aの画面に表示する(ブロックB209)。
また、図23のフローチャートは、上述した学習結果表示処理によってドキュメント(共有カンバス)が表示されている場合に、そのドキュメント内のストロークを、手書き入力したユーザ毎に表示又は非表示にするためのストローク表示/非表示処理の手順の例を示す。
まず、CPU101は、学習結果ビュー61上のチェックボックス623,633,643,653がタップされたか否かを判定する(ブロックB31)。チェックボックス623,633,643,653がタップされていない場合(ブロックB31のNO)、ブロックB31に戻り、チェックボックス623,633,643,653がタップされたか否かが再度判定される。
チェックボックス623,633,643,653がタップされた場合(ブロックB31のYES)、CPU101は、そのタップされたチェックボックスがチェックマーク入りのチェックボックスであるか否か、すなわち、選択状態に設定されたチェックボックスであるか否かを判定する(ブロックB32)。タップされたチェックボックスがチェックマーク入りのチェックボックスである場合(ブロックB32のYES)、CPU101は、そのチェックボックスからチェックマークを外し(すなわち、非選択状態のチェックボックスに変更し)、当該チェックボックスに関連付けられたユーザによって入力された、ドキュメント上のストロークを非表示にする(ブロックB33)。
また、タップされたチェックボックスがチェックマークの入っていないチェックボックスである場合(ブロックB32のNO)、CPU101は、そのチェックボックスにチェックマークを入れ(すなわち、選択状態のチェックボックスに変更し)、当該チェックボックスに関連付けられたユーザによって入力されたストロークを、ドキュメント上に表示する(ブロックB34)。
以上説明したように、本実施形態によれば、グループで協働作業によりドキュメントが作成された場合に、各ユーザによる活動を適切に評価することを支援することができる。グループ処理部301及び受信制御部305は、第1電子機器と第2電子機器とが属するグループで作成され、第1電子機器上で手書き入力された複数の第1ストロークに対応する第1ストロークデータと第2電子機器上で手書き入力された複数の第2ストロークに対応する第2ストロークデータとを含むドキュメントを受信する。貢献度算出部306は、第1ストロークデータを用いて、第1電子機器を使用する第1ユーザが、ドキュメントの作成に貢献した度合いに関する第1貢献度を算出し、第2ストロークデータを用いて、第2電子機器を使用する第2ユーザが、ドキュメントの作成に貢献した度合いに関する第2貢献度を算出する。表示処理部302は、ドキュメントと第1貢献度と第2貢献度とをLCD17Aの画面に表示する。
スーパーバイザは、第1ユーザがドキュメントの作成に貢献した度合いに関する第1貢献度と、第2ユーザがドキュメントの作成に貢献した度合いに関する第2貢献度とを見ることにより、各ユーザによる活動を定量的に評価することができる。
また、本実施形態に記載された様々な機能の各々は、回路(処理回路)によって実現されてもよい。処理回路の例には、中央処理装置(CPU)のような、プログラムされたプロセッサが含まれる。このプロセッサは、メモリに格納されたコンピュータプログラム(命令群)を実行することによって、記載された機能それぞれを実行する。このプロセッサは、電気回路を含むマイクロプロセッサであってもよい。処理回路の例には、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、マイクロコントローラ、コントローラ、他の電気回路部品も含まれる。本実施形態に記載されたCPU以外の他のコンポーネントの各々もまた処理回路によって実現されてもよい。
また、本実施形態の各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。