IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧 ▶ 学校法人早稲田大学の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-12
(45)【発行日】2022-04-20
(54)【発明の名称】分析システム及び分析方法
(51)【国際特許分類】
   G09B 19/00 20060101AFI20220413BHJP
   A61B 5/16 20060101ALI20220413BHJP
   G06Q 50/20 20120101ALI20220413BHJP
【FI】
G09B19/00 H
A61B5/16 100
G06Q50/20
【請求項の数】 11
(21)【出願番号】P 2018112359
(22)【出願日】2018-06-12
(65)【公開番号】P2019215438
(43)【公開日】2019-12-19
【審査請求日】2020-08-03
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(73)【特許権者】
【識別番号】899000068
【氏名又は名称】学校法人早稲田大学
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】藤原 靖宏
(72)【発明者】
【氏名】井田 安俊
(72)【発明者】
【氏名】後藤 正幸
(72)【発明者】
【氏名】中澤 真
(72)【発明者】
【氏名】梅澤 克之
【審査官】松山 紗希
(56)【参考文献】
【文献】中澤真 他,「Scratch」を用いたプログラミング学習時の閲覧履歴・編集履歴・脳波履歴を組み合わせた学習者分析,情報処理学会研究報告, [online],2017年02月11日,Vol.2017-CE-138 No.1,<URL>http://www.waseda.jp/prj-ngel/material/pub/16/NUGH17a.pdf,[2021年7月26日検索]
【文献】藤原賢二 他,スナップショットを用いたプログラミング演習における行き詰まり箇所の特定,コンピュータソフトウェア,第35巻1号,日本ソフトウェア科学会,2018年03月26日,<URL>https://www.jstage.jst.go.jp/article/jsset/35/1/35_1_3/_pdf/-char/ja, <DOI>https://doi.org/10.11309/jssst.35.1_3,ISSN:0289-6540, [2021年7月26日検索]
【文献】プログラミング演習授業における学習状況把握支援の試み,情報処理学会論文誌,情報処理学会,2013年12月15日,2518-2527ページ,<URL>URL:https://ipsj.ixsq.nii.ac.jp/ej/?action=repository_action_common_download&item_id=96773&item_no=1&attribute_id=1&file_no=1&page_id=13&block_id=8,ISSN:1882-7764, [2022年3月8日検索]
(58)【調査した分野】(Int.Cl.,DB名)
G09B 1/00-9/56、17/00-19/26
A61B 5/16
A61B 5/372
G06Q 50/20
(57)【特許請求の範囲】
【請求項1】
学習者によるプログラムの作成過程における編集履歴情報と、前記学習者の脳波の状態を示す脳波情報とを取得する取得部と、
前記編集履歴情報と前記脳波情報とに基づいて、前記プログラムの各構成要素に対する前記学習者の弱点を分析する分析部と、
前記分析部による分析結果を構成情報分析結果として出力する出力部と、
を有することを特徴とする分析システム。
【請求項2】
学習者によるプログラムの作成過程における編集履歴情報と、前記学習者の脳波の状態を示す脳波情報とを取得する取得部と、
前記編集履歴情報と前記脳波情報とに基づいて、前記プログラムのブロック構造に関する前記学習者の弱点を分析する分析部と、
前記分析部による分析結果をブロック構造試行錯誤分析結果として出力する出力部と、
を有することを特徴とする分析システム。
【請求項3】
前記取得部は、前記学習者によるプログラムの作成過程における編集履歴情報を取得し、
前記分析部は、前記編集履歴情報に基づいて、前記プログラムのエラーに関する前記学習者の弱点を、エラーの種別ごとに分析し、
前記出力部は、前記分析部による分析結果をエラー分析結果として出力することを特徴とする請求項1または2に記載の分析システム。
【請求項4】
前記学習者の学習時に、前記編集履歴情報を取得し、前記取得部に該編集履歴情報を出力する編集履歴情報取得部と、
前記学習者の学習時に、前記学習者の脳波情報を取得し、前記取得部へ該脳波情報を提供する脳波情報取得部と、
を有する学習装置をさらに有することを特徴とする請求項1~3のいずれか一つに記載の分析システム。
【請求項5】
前記取得部が、前記学習装置における前記編集履歴情報取得部から取得した前記編集履歴情報を記憶する編集履歴情報記憶部と、
前記取得部が、前記学習装置における前記脳波情報取得部から取得した前記脳波情報を記憶する脳波情報記憶部と、
を有することを特徴とする請求項4に記載の分析システム。
【請求項6】
分析装置が実行する分析方法であって、
学習者によるプログラムの作成過程における編集履歴情報と、前記学習者の脳波の状態を示す脳波情報とを取得する取得工程と、
前記編集履歴情報と前記脳波情報とに基づいて、前記プログラムの各構成要素に対する学習者の弱点を分析する分析工程と、
分析結果を構成情報分析結果として出力する出力工程と、
を含んだことを特徴とする分析方法。
【請求項7】
前記分析工程は、
前記編集履歴情報を用いて、該編集履歴情報のすべてのレコードについて、構成要素種別を分析する第1の分析工程と、
前記構成要素種別を分析する工程において特定された構成要素種別の開始時間及び終了時間から編集時間を算出する第1の算出工程と、
前記脳波情報を用いて前記開始時間及び終了時間の間の脳波情報の状態を段階評価で示す情動状態を分析する第2の分析工程と、
前記編集履歴情報のすべてのレコードにおける前記構成要素種別、前記編集時間及び前記情動状態を基に、前記構成要素種別ごとの総編集時間を算出し、前記構成要素種別ごとに、同じ構成要素種別のレコードにおける情動状態に対する段階評価の平均である平均情動状態を取得する第2の算出工程と、
各構成要素種別について前記総編集時間が所定時間より長いか否かを判定する第1の判定工程と、
前記第1の判定工程において、前記総編集時間が所定時間より長いと判定された構成要素種別は、前記学習者にとっての弱点であると判定する第2の判定工程と、
前記第1の判定工程において前記総編集時間が所定時間以下であると判定された構成要素種別について、前記平均情動状態が「困難」であるか否かを判定する第3の判定工程と、
前記第3の判定工程において平均情動状態が「困難」であると判定された構成要素種別は、前記学習者にとっての弱点であると判定する第4の判定工程と、
前記第3の判定工程において平均情動状態が「困難」でないと判定された構成要素種別は、前記学習者にとっての弱点ではないと判定する第5の判定工程と、
を含み、
前記第3の判定工程は、分析対象の時刻における脳波情報が、予め定められた第1の閾値より大きい場合、情動状態を「困難」であると判定し、前記分析対象の時刻における脳波情報が前記第1の閾値以下であって、かつ、予め定められた第2の閾値より小さい場合、情動状態を「簡単」であると判定し、前記分析対象の時刻における脳波情報が前記第1の閾値以下であって、かつ、前記第2の閾値以上であると判定した場合、情動状態を「普通」であると判定することを特徴とする請求項6に記載の分析方法。
【請求項8】
分析装置が実行する分析方法であって、
学習者によるプログラムの作成過程における編集履歴情報と、前記学習者の脳波の状態を示す脳波情報とを取得する取得工程と、
前記編集履歴情報と前記脳波情報とに基づいて、前記プログラムのブロック構造に関する前記学習者の弱点を分析する分析工程と、
分析結果をブロック構造試行錯誤分析結果として出力する出力工程と、
を含んだことを特徴とする分析方法。
【請求項9】
前記分析工程は、
前記編集履歴情報を基に、前記編集履歴情報のすべてのレコードに対して、判定対象の編集履歴が中括弧の入力或いは削除であるか否かを判定する第1の判定工程と、
前記第1の判定工程において前記判定対象の編集履歴が中括弧の入力或いは削除であると判定された場合、前記中括弧が前記プログラムの先頭から何番目の中括弧であるかを算出する第1の算出工程と、
前記判定対象の編集履歴が中括弧の削除であるか否かを判定する第2の判定工程と、
前記第2の判定工程において前記判定対象の編集履歴が中括弧の削除であると判定された場合、前記中括弧が入力されてから削除されるまでの時間を算出する第2の算出工程と、
前記脳波情報を用いて、前記編集履歴情報のすべてのレコードについて分析対象の時刻における脳波情報の状態を段階評価で示す情動状態を分析する第1の分析工程と、
前記編集履歴情報のすべてのレコードに対して前記第1の判定工程、前記第2の判定工程及び前記第1の分析工程が終了した後に、すべてのブロック構造の作成から削除までの総編集時間を算出し、すべてのブロック構造の作成から削除までのレコードごとの情動状態の段階評価の平均である平均情動状態を取得する第3の算出工程と、
前記ブロック構造の総編集時間が所定時間より長いか否かを判定する第3の判定工程と、
前記第3の判定工程において前記ブロック構造の総編集時間が所定時間より長いと判定された場合、前記学習者は前記ブロック構造が理解できていないと判定する第4の判定工程と、
前記第3の判定工程において前記ブロック構造の総編集時間が所定時間以下であると判定された場合、前記平均情動状態が「困難」であるか否かを判定する第5の判定工程と、
前記第5の判定工程において前記平均情動状態が「困難」であると判定された場合、前記学習者はブロック構造を理解できていないと判定する第6の判定工程と、
前記第5の判定工程において前記平均情動状態が「困難」と判定されない場合、前記学習者はブロック構造を理解できていると判定する第7の判定工程と、
を含み、
前記第5の判定工程は、分析対象の時刻における脳波情報が、予め定められた第1の閾値より大きい場合、情動状態を「困難」であると判定し、前記分析対象の時刻における脳波情報が前記第1の閾値以下であって、かつ、予め定められた第2の閾値より小さい場合、情動状態を「簡単」であると判定し、前記分析対象の時刻における脳波情報が前記第1の閾値以下であって、かつ、前記第2の閾値以上であると判定した場合、情動状態を「普通」であると判定することを特徴とする請求項8に記載の分析方法。
【請求項10】
前記取得工程は、前記学習者によるプログラムの作成過程における編集履歴情報を取得する取得工程と、
前記分析工程は、前記編集履歴情報に基づいて、前記プログラムのエラーに関する前記学習者の弱点を、エラーの種別ごとに分析し、
前記出力工程は、分析結果をエラー分析結果として出力する出力工程と、
を含んだことを特徴とする請求項6または8に記載の分析方法。
【請求項11】
前記分析工程は、
前記編集履歴情報を用いて、前記編集履歴情報のエラーをエラー種別ごとにカウントする工程と、
前記カウントしたエラーについて、一定時間内に同じエラーが繰り返されているか否かをエラー種別ごとに判定する第1の判定工程と、
前記第1の判定工程において同じエラーが繰り返されていると判定されたエラー種別に関し、前記学習者はエラーの意味が理解できていないと判定する第2の判定工程と、
前記第1の判定工程において同じエラーが繰り返されていないと判定されたエラー種別について、特定のエラーの頻度が予め設定された閾値を越えたか否かを判定する第3の判定工程と、
前記第3の判定工程において前記特定のエラーの頻度が予め設定された閾値を越えたと判定されたエラー種別について、前記学習者は該当エラーのケアレスミスが多いと判定する第4の判定工程と、
前記第3の判定工程において前記特定のエラーの頻度が予め設定された閾値を越えていないと判定されたエラー種別について、前記学習者は、該エラー種別のエラーに関しては通常の理解度であると判定する第5の判定工程と、
含んだことを特徴とする請求項10に記載の分析方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分析システム及び分析方法に関する。
【背景技術】
【0002】
近年、学習モデルは多様化し、eラーニングから、教場授業とeラーニングを併用するブレンディッドラーニングまで多岐にわたっている。このような教育環境においては、LMS(Learning Management System:学習支援システム)が利用される。
【0003】
LMSは、学習コンテンツの配信や、試験の実施及び採点等の多様な機能を備えている。このLMSによれば、LMSを経由した学習者の学習活動に関する操作ログ等の様々な履歴や、レポートや評価結果等の記録を収集することが可能である。
【0004】
例えば、学習者が学習時の編集履歴を参照可能とする技術(非特許文献1参照)が開示されている。また、生体情報として脳波を取得して、教材の難易度を判定する技術も開示されている(特許文献1参照)。
【0005】
また、プログラミング学習者のプログラムの実行時のエラーメッセージを集計して学習者の弱点を分析する技術(非特許文献2参照)や、最終的な完成形のプログラムを構文解析し、正解プログラムとの差異を明らかにしようとする技術(非特許文献3参照)が開示されている。また、プログラムの作成過程の履歴を取得する環境の構築はしているものの、分析までには至らない報告(非特許文献4参照)や、手作業で分析する技術(非特許文献5参照)が開示されている。
【先行技術文献】
【特許文献】
【0006】
【文献】米国特許出願公開第2006/0147007号明細書
【非特許文献】
【0007】
【文献】荒本道隆,小林学,中澤真,中野美知子,後藤正幸,平澤茂一,“編集履歴可視化システムを用いたLearning Analytics~システム構成と実装”,情報処理学会第78回全国大会予稿集,pp.4-527-4-528,横浜,(2016.3).
【文献】Toshiyasu Kato, Yasushi Kambayashi and Yasushi Kodama,“Data Mining of Students’ Behaviors in Programming Exercises”, Smart Education and e-Learning 2016, pp.121-133, 2016
【文献】間嶋義喜,大賀賢志,竹内和広,“機能に基づくプログラム構造比較に向けた類似度の策定”,情報処理学会研究報告,CE 138 No.12, pp.1-6, 2017
【文献】森一樹,田中昂文,橋浦弘明,櫨山淳雄,古宮誠一,“プログラミング演習支援のための細粒度履歴収集環境の開発”,情報処理学会研究報告, SE 179 No.16, pp.1-6, 2013
【文献】長慎也,長島和平,間辺広樹,兼宗進,並木美太郎,“初学者向けプログラミング授業における活動ログの評価支援機能”,情報処理学会研究報告, CE 138 No.4, pp.1-8, 2017
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、従来の技術では、正解プログラムとの比較をする必要や、分析の際に大量のバックトラッキングを行う必要があり、効率的ではなかった。また、従来の技術では、プログラム作成過程での学習者のつまずきや理解不足の要因などの学習者の弱点を、自動的に分析するまでには至っていない。
【0009】
本発明は、上記に鑑みてなされたものであって、プログラミング学習時の学習者の弱点を分析できる分析システム及び分析方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
上述した課題を解決し、目的を達成するために、本発明に係る分析システムは、学習者によるプログラムの作成過程における編集履歴情報と、学習者の脳波の状態を示す脳波情報を取得する取得部と、編集履歴情報と脳波情報とに基づいて、プログラムの各構成要素に対する学習者の弱点を分析する分析部と、分析部による分析結果を構成情報分析結果として出力する出力部と、を有することを特徴とする。
【0011】
また、本発明に係る分析システムは、学習者によるプログラムの作成過程における編集履歴情報と、学習者の脳波の状態を示す脳波情報を取得する取得部と、編集履歴情報と脳波情報とに基づいて、プログラムのブロック構造に関する学習者の弱点を分析する分析部と、分析部による分析結果をブロック構造試行錯誤分析結果として出力する出力部と、を有することを特徴とする。
【0012】
また、本発明に係る分析システムは、学習者によるプログラムの作成過程における編集履歴情報を取得する取得部と、編集履歴情報に基づいて、プログラムのエラーに関する学習者の弱点を、エラーの種別ごとに分析する分析部と、分析部による分析結果をエラー分析結果として出力する出力部と、を有することを特徴とする。
【発明の効果】
【0013】
本発明によれば、プログラミング学習時の学習者の弱点を分析できる。
【図面の簡単な説明】
【0014】
図1図1は、実施の形態における分析システムの構成の一例を示す図である。
図2図2は、編集履歴情報のデータ構成の一例を示す図である。
図3図3は、脳波情報のデータ構成の一例を示す図である。
図4図4は、個別構成要素分析結果のデータ構成の一例を示す図である。
図5図5は、構成要素分析結果のデータ構成の一例を示す図である。
図6図6は、ブロック構造試行錯誤分析結果のデータ構成の一例を示す図である。
図7図7は、エラー分析結果のデータ構成の一例を示す図である。
図8図8は、編集履歴取得処理の処理手順例を示すシーケンス図である。
図9図9は、脳波情報取得処理の処理手順を示すシーケンス図である。
図10図10は、構成要素分析処理の処理手順を示すシーケンス図である。
図11図11は、ブロック構造試行錯誤分析処理の処理手順を示すシーケンス図である。
図12図12は、エラー分析処理の処理手順を示すシーケンス図である。
図13図13は、分析結果出力処理の処理手順を示すシーケンス図である。
図14図14は、図10に示す構成要素分析処理の処理手順を示すフローチャートである。
図15図15は、図14に示す構成要素種別分析処理の処理手順を示すフローチャートである。
図16図16は、図15に示すブロック構造判定処理の処理手順を示すフローチャートである。
図17図17は、図15に示す条件分岐条件式要素判定処理の処理手順を示すフローチャートである。
図18図18は、図15に示す条件分岐ブロック判定処理の処理手順を示すフローチャートである。
図19図19は、図15に示す演算要素判定処理の処理手順を示すフローチャートである。
図20図20は、図15に示す識別子要素判定処理の処理手順を示すフローチャートである。
図21図21は、図14に示す情動状態分析処理の処理手順を示すフローチャートである。
図22図22は、図11に示すブロック構造試行錯誤分析処理の処理手順を示すフローチャートである。
図23図23は、図12に示すエラー分析処理の処理手順を示すフローチャートである。
図24図24は、プログラムが実行されることにより、学習装置及び分析装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【0015】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【0016】
[実施の形態]
[分析システムの構成]
本発明の実施の形態について説明する。図1は、実施の形態における分析システムの構成の一例を示す図である。図1に示すように、実施の形態に係る分析システム1は、学習装置20と分析装置30とがネットワーク90を介して接続された構成を有する。
【0017】
学習装置20は、プログラミング学習時の学習者によるプログラム作成過程の編集履歴に関する編集履歴情報を取得する。また、学習装置20は、プログラミング学習時の学習者の脳波の状態を示す脳波情報を取得する。
【0018】
分析装置30は、学習装置20から編集履歴情報、脳波情報を取得する。分析装置30は、取得したこれらの情報に基づいて、構成要素分析、ブロック構造試行錯誤分析、エラー分析を行い、プログラミング学習者の弱点を分析する。そして、分析装置30は、分析結果を学習者等に提供することによって、学習者の効率的な学習を支援する。
【0019】
[学習装置の構成]
次に、学習装置20の構成について説明する。学習装置20は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、CPU(Central Processing Unit)等を含むコンピュータ等に所定のプログラムが読み込まれて、CPUが所定のプログラムを実行することで実現される。図1に示すように、学習装置20は、編集履歴情報取得部21及び脳波情報取得部22を有する。
【0020】
編集履歴情報取得部21は、学習者によるプログラムの作成過程における編集履歴情報を取得する。編集履歴情報は、学習者によるプログラムへの入力状況の履歴である。
【0021】
脳波情報取得部22は、学習者の脳波の状態を示す脳波情報を取得する。脳波情報には、例えば、α波、β波等の強度が含まれる。また、脳波情報には、脳波のパターン等から導出される脳波集中度や脳波熟考度が含まれる。
【0022】
[分析装置の構成]
次に、分析装置30の構成について説明する。分析装置30は、例えば、ROM、RAM、CPU等を含むコンピュータ等に所定のプログラムが読み込まれて、CPUが所定のプログラムを実行することで実現される。図1に示すように、分析装置30は、取得部301、編集履歴情報記憶部33、脳波情報記憶部34、分析部302、構成要素分析結果記憶部38、ブロック構造試行錯誤分析結果記憶部39、エラー分析結果記憶部40及び分析結果出力部41を有する。
【0023】
取得部301は、学習装置20から、編集履歴情報と脳波情報とを取得する。取得部301は、編集履歴情報取得部31及び脳波情報取得部32を有する。編集履歴情報取得部31は、学習装置20の編集履歴情報取得部21から編集履歴情報を取得して編集履歴情報記憶部33に格納する。脳波情報取得部32は、学習装置20の脳波情報取得部22から脳波情報341を取得して脳波情報記憶部34に格納する。
【0024】
編集履歴情報記憶部33は、編集履歴情報を記憶する。図2は、編集履歴情報のデータ構成の一例を示す図である。図2に示すように、編集履歴情報331は、ユーザID、日時、編集状況の情報の項目を有する。ユーザIDは、学習者を識別する識別情報である。編集状況は、プログラムのどの位置にどのような文字が入力されたのか、或いは、削除されたのかを示す情報である。なお、編集履歴情報331は、編集作業中の各時点の全情報を含んでもよい。また、編集履歴情報331は、差分情報でもよい。また、編集履歴情報331は、編集状況には、プログラムのビルド時と実行時とのエラーの種別情報も含む。
【0025】
ここで、図2には、例えば、ユーザID「001」の学習者により、2016年10月5日10時05分41秒に、位置10に「f」が追加された編集が行われたことが例示されている。
【0026】
脳波情報記憶部34は、脳波情報を記憶する。図3は、脳波情報のデータ構成の一例を示す図である。図3に示すように、脳波情報341は、ユーザID、日時、α波の値、β波の値、γ波の値、δ波の値、θ波の値、脳波集中度、脳波熟考度の項目を有する。ここで、日時は、脳波情報が収集された日及び時刻を表す。α波、β波、γ波、δ波、及びθ波は、脳波の各成分の強度を表す。脳波集中度及び脳波熟考度は、脳波のパターン等により導出される学習者の教材の学習に対する集中度及び熟考度を表す。図3には、例えば、ユーザID「ID001」の学習者について、2016年10月5日10時5分41秒には、脳波集中度80、脳波熟考度25であったことが例示されている。
【0027】
分析部302は、編集履歴情報及び脳波情報に基づいて、構成要素分析、ブロック構造試行錯誤分析、エラー分析を行い、プログラミング学習者の弱点を分析する。分析部302は、構成要素分析部35、ブロック構造試行錯誤分析部36及びエラー分析部37を有する。
【0028】
構成要素分析部35は、編集履歴情報と脳波情報とに基づいて、プログラムの各構成要素に対する学習者の弱点を分析し、分析結果を構成情報分析結果として構成要素分析結果記憶部38に格納する。構成要素分析部35は、プログラミング言語の構成要素別に学習者の弱点の分析を行う。
【0029】
まず、構成要素分析部35は、編集履歴情報を用いて、該編集履歴情報のすべてのレコードについて、構成要素種別を分析し、特定する。そして、構成要素分析部35は、特定された構成要素種別の開始時間及び終了時間から編集時間を算出する。続いて、構成要素分析部35は、脳波情報を用いて、開始時間及び終了時間の間の情動状態を分析する。
【0030】
そして、構成要素分析部35は、編集履歴情報のすべてのレコードにおける構成要素種別、編集時間及び情動状態を基に、構成要素種別ごとの総編集時間と平均情動状態とを算出する。構成要素分析部35は、各構成要素種別について総編集時間が所定時間より長いか否かを判定する。この所定時間は、予め設定された時間である。
【0031】
構成要素分析部35は、総編集時間が所定時間より長いと判定した構成要素種別は、学習者にとっての弱点であると判定する。構成要素分析部35は、総編集時間が所定時間以下であると判定した構成要素種別について、平均情動状態が「困難」であるか否かを判定する。構成要素分析部35は、平均情動状態が「困難」であると判定した構成要素種別は、学習者にとっての弱点であると判定する。構成要素分析部35は、平均情動状態が「困難」でないと判定した構成要素種別は、学習者にとっての弱点ではないと判定する。このように、構成要素分析部35は、構成要素種別ごとに、学習者の弱点であるか否かを分析する。
【0032】
ブロック構造試行錯誤分析部36は、編集履歴情報と脳波情報とに基づいて、プログラムのブロック構造に関する学習者の弱点を分析し、分析結果をブロック構造試行錯誤分析結果としてブロック構造試行錯誤分析結果記憶部39に格納する。ブロック構造試行錯誤分析部36は、プログラミング言語のブロック構造の生成及び削除の頻度分析を行う。
【0033】
具体的には、まず、ブロック構造試行錯誤分析部36は、編集履歴情報を基に、編集履歴情報のすべてのレコードに対して、判定対象の編集履歴が中括弧の入力或いは削除であるか否かを判定する。ブロック構造試行錯誤分析部36は、判定対象の編集履歴が中括弧の入力或いは削除であると判定した場合、その中括弧がプログラムの先頭から何番目の中括弧であるかを算出する。
【0034】
そして、ブロック構造試行錯誤分析部36は、判定対象の編集履歴が中括弧の削除であるか否かを判定する。ブロック構造試行錯誤分析部36は、判定対象の編集履歴が中括弧の削除であると判定した場合、その中括弧が入力されてから削除されるまでの時間を算出する。
【0035】
そして、ブロック構造試行錯誤分析部36は、脳波情報を用いて、編集履歴情報のすべてのレコードについて情動状態を分析する。
【0036】
続いて、ブロック構造試行錯誤分析部36は、編集履歴情報のすべてのレコードに対して、判定対象の編集履歴が中括弧の入力或いは削除であるか否かの判定、編集履歴が中括弧の入力或いは削除であるか否かの判定、及び、情動状態分析処理を行った後に、すべてのブロック構造の作成から削除までの総編集時間を算出する。そして、ブロック構造試行錯誤分析部36は、すべてのブロック構造の作成から削除までの平均情動状態を算出する。続いて、ブロック構造試行錯誤分析部36は、ブロック構造の総編集時間が所定時間より長いか否かを判定する。
【0037】
ブロック構造試行錯誤分析部36は、ブロック構造の総編集時間が所定時間より長いと判定した場合、学習者はブロック構造が理解できていないと判定する。また、ブロック構造試行錯誤分析部36は、ブロック構造の総編集時間が所定時間以下であると判定した場合、平均情動状態が「困難」であるか否かを判定する。
【0038】
ブロック構造試行錯誤分析部36は、平均情動状態「困難」であると判定した場合、学習者はブロック構造を理解できていないと判定する。一方、ブロック構造試行錯誤分析部36は、平均情動状態が「困難」でない判定した場合、学習者はブロック構造を理解できていると判定する。このように、ブロック構造試行錯誤分析部36は、プログラムのブロック構造に関する学習者の弱点を分析する。
【0039】
エラー分析部37は、編集履歴情報に基づいて、プログラムのエラーに関する学習者の弱点を、エラーの種別ごとに分析し、分析結果をエラー分析結果としてエラー分析結果記憶部40に格納する。エラー分析部37は、プログラミング言語の作成時及び実行時のエラーの分析を行う。
【0040】
具体的には、まず、エラー分析部37は、編集履歴情報を用いて、編集履歴情報のエラーをエラー種別ごとにカウントする。そして、エラー分析部37は、カウントしたエラーについて、一定時間内に同じエラーが繰り返しているか否かをエラー種別ごとに判定する。
【0041】
エラー分析部37は、同じエラーが繰り返していると判定されたエラー種別に関し、学習者はエラーの意味が理解できていないと判定する。また、エラー分析部37は、同じエラーが繰り返されていないと判定されたエラー種別について、特定のエラーの頻度が予め設定された閾値を越えたか否かを判定する。エラー分析部37は、特定のエラーの頻度が予め設定された閾値を越えたと判定したエラー種別について、学習者は該当エラーのケアレスミスが多いと判定する。また、エラー分析部37は、特定のエラーの頻度が予め設定された閾値を越えていないと判定したエラー種別について、学習者は、このエラー種別のエラーに関しては通常の理解度であると判定する。
【0042】
構成要素分析結果記憶部38は、構成要素分析部35による分析結果を記憶する。具体的には、構成要素分析結果記憶部38は、個別構成要素分析結果と構成要素分析結果とを記憶する。
【0043】
図4は、個別構成要素分析結果のデータ構成の一例を示す図である。図4に示すように、個別構成要素分析結果380は、ユーザID、構成要素種別、編集時間及び情動状態の項目を有する。構成要素種別は、編集履歴情報を基に構成要素分析部35によって分析された編集履歴情報の構成要素の種別である。編集時間は、特定された構成要素種別の開始時間及び終了時間を基に、構成要素分析部35によって算出された編集時間である。情動状態は、脳波情報を基に構成要素分析部35によって分析された、開始時間及び終了時間の間の情動についての情動状態である。
【0044】
図5は、構成要素分析結果のデータ構成の一例を示す図である。図5に示すように、構成要素分析結果381は、ユーザID、構成要素種別及び判定結果の項目を有する。判定結果は、編集時間及び情動状態を基に構成要素分析部35によって判定された、学習者の各種別の構成要素の理解の有無に関する判定結果である。
【0045】
ブロック構造試行錯誤分析結果記憶部39は、ブロック構造試行錯誤分析結果を記憶する。図6は、ブロック構造試行錯誤分析結果のデータ構成の一例を示す図である。図6に示すように、ブロック構造試行錯誤分析結果391は、ユーザID及び判定結果の項目を有する。判定結果は、学習者のブロック構造の理解の有無に関する判定結果である。
【0046】
エラー分析結果記憶部40は、エラー分析結果を記憶する。図7は、エラー分析結果のデータ構成の一例を示す図である。図7に示すように、エラー分析結果401は、ユーザID、エラー種別及び判定結果の項目を有する。判定結果は、プログラムのエラーに関する学習者の理解の有無に関する判定結果である。
【0047】
分析結果出力部41は、分析部302による分析結果を出力する。分析結果出力部41は、学習者や教師などの外部からの分析結果の提供要求を受けると、分析結果を要求元に出力する。分析結果出力部41は、構成要素分析結果記憶部38が記憶する構成要素分析結果381、ブロック構造試行錯誤分析結果記憶部39が記憶するブロック構造試行錯誤分析結果391、及び、エラー分析結果記憶部40が記憶するエラー分析結果401を読み込み、ユーザの弱点に関する分析情報として出力する。
【0048】
[分析処理]
図8図23を参照して、本実施の形態に係る分析装置30による分析処理について説明する。
【0049】
図8は、編集履歴取得処理の処理手順例を示すシーケンス図である。分析装置30では、編集履歴情報取得部31が、学習装置20の編集履歴情報取得部21から、編集履歴情報を取得し(ステップS1)、編集履歴情報記憶部33に編集履歴情報を格納する(ステップS2)。
【0050】
図9は、脳波情報取得処理の処理手順を示すシーケンス図である。分析装置30では、脳波情報取得部32が、学習装置20の脳波情報取得部22から、脳波情報を取得し(ステップS11)、脳波情報記憶部34に脳波情報を格納する(ステップS12)。
【0051】
図10は、構成要素分析処理の処理手順を示すシーケンス図である。分析装置30では、構成要素分析部35が、編集履歴情報記憶部33に格納されている編集履歴情報331と、脳波情報記憶部34に格納されている脳波情報341とを読み込む(ステップS21,S22)。そして、構成要素分析部35は、プログラムの各構成要素に対する学習者の弱点を分析する構成要素分析処理を実行し(ステップS350)、構成要素分析結果381を、構成要素分析結果記憶部38に格納する(ステップS24)。
【0052】
図11は、ブロック構造試行錯誤分析処理の処理手順を示すシーケンス図である。分析装置30では、ブロック構造試行錯誤分析部36が、編集履歴情報記憶部33に格納されている編集履歴情報331と、脳波情報記憶部34に格納されている脳波情報341とを読み込む(ステップS31,S32)。そして、ブロック構造試行錯誤分析部36は、プログラムのブロック構造の作成と削除の頻度を分析するブロック構造試行錯誤分析処理を行う(ステップS360)。続いて、ブロック構造試行錯誤分析部36は、ブロック構造試行錯誤分析結果391を、ブロック構造試行錯誤分析結果記憶部39に格納する(ステップS34)。
【0053】
図12は、エラー分析処理の処理手順を示すシーケンス図である。分析装置30では、エラー分析部37が、編集履歴情報記憶部33に格納されている編集履歴情報331を読み込む(ステップS41)。そして、エラー分析部37は、プログラムのエラーの頻度を分析するエラー分析処理を実行し(ステップS370)、エラー分析結果401を、補助記憶装置13のエラー分析結果記憶部40に格納する(ステップS42)。
【0054】
図13は、分析結果出力処理の処理手順を示すシーケンス図である。分析結果出力部41は、学習者や教師などの外部からの分析結果の提供要求を受けると(ステップS51)、構成要素分析結果記憶部38に格納されている構成要素分析結果381と、ブロック構造試行錯誤分析結果記憶部39に格納されているブロック構造試行錯誤分析結果391と、エラー分析結果記憶部40に格納されているエラー分析結果401と、を読み込み(ステップS52,S53,S54)、分析情報411を分析結果の要求者に出力する(ステップS55)。
【0055】
[構成要素分析処理]
次に、図10に示す構成要素分析処理(ステップS350)の処理手順について説明する。図14は、図10に示す構成要素分析処理の処理手順を示すフローチャートである。
【0056】
図14に示すように、構成要素分析部35は、読み込んだ編集履歴情報331を用いて、編集履歴情報331のレコードごとに、構成要素種別分析処理(ステップS3502)を行い、構成要素種別分析処理(ステップS3502)によって特定された構成要素種別の開始時間及び終了時間から編集時間を算出する(ステップS3503)。
【0057】
構成要素分析部35は、読み込んだ脳波情報記憶部34を用いて、構成要素種別の開始時間と終了時間の間の情動について情動状態分析処理(ステップS3504)を行い、求めた構成要素種別、編集時間及び情動状態を記録する(ステップS3505)。ステップS3502~ステップS3505の処理は、編集履歴情報331のすべてのレコードについて繰り返し実行される(ステップS3501,S3506)。
【0058】
そして、構成要素分析部35は、ステップS3505で記録した情報を基に、構成要素種別ごとの総編集時間を算出する(ステップS3507)。そして、構成要素分析部35は、ステップS3505で記録した情報を基に、構成要素種別ごとの平均情動状態を算出する(ステップS3508)。
【0059】
続いて、構成要素分析部35は、各構成要素種別について総編集時間が所定時間より長いか否かを判定する(ステップS3509)。構成要素分析部35は、総編集時間が所定時間より長いと判定した場合(ステップS3509:Yes)、その構成要素種別は学習者にとっての弱点であると判定する(ステップS3510)。一方、構成要素分析部35は、総編集時間が所定時間以下であると判定した場合(ステップS3509:No)、平均情動状態が「困難」であるか否かを判定する(ステップS3511)。
【0060】
構成要素分析部35は、平均情動状態が「困難」であると判定した場合(ステップS3511:Yes)、その構成要素種別は該当学習者にとっての弱点であると判定する(ステップS3512)。これに対し、構成要素分析部35は、平均情動状態が「困難」でないと判定した場合(ステップS3511:No)、その構成要素種別は学習者にとっての弱点ではないと判定する(ステップS3513)。
【0061】
[構成要素種別分析処理]
次に、図14に示す構成要素種別分析処理(ステップS3502)の処理手順について説明する。図15は、図14に示す構成要素種別分析処理の処理手順を示すフローチャートである。
【0062】
まず、構成要素分析部35は、判定したい構成要素について、ブロック構造に該当するか否かのブロック構造判定処理(ステップS350201)を行う。そして、構成要素分析部35は、条件分岐の条件式に該当するか否かの条件分岐条件式要素判定処理(ステップS350202)を行う。
【0063】
続いて、構成要素分析部35は、条件分岐のブロックに該当するか否かの条件分岐ブロック判定処理(ステップS350203)を行う。そして、構成要素分析部35は、繰り返しの条件式に該当するか否かの繰り返し条件式要素判定(ステップS350204)を行う。そして、構成要素分析部35は、繰り返しのブロックに該当するか否かの繰り返しブロック判定(ステップS350205)を行う。構成要素分析部35は、演算要素に該当するか否かの演算要素判定処理(ステップS350206)を行う。そして、構成要素分析部35は、識別子要素に該当するか否かの識別子要素判定処理(ステップS350207)を行う。
【0064】
この図15に示す処理を行うことによって、構成要素分析部35は、判定対象の編集履歴の構成要素を分析する。続いて、構成要素種別分析処理の各処理について詳細に説明する。
【0065】
[ブロック構造判定処理]
まず、図15に示すブロック構造判定処理(ステップS350201)の処理手順について説明する。図16は、図15に示すブロック構造判定処理の処理手順を示すフローチャートである。
【0066】
構成要素分析部35は、判定対象の編集履歴に“{”が追加されたか否かを判定する(ステップS35020101)。構成要素分析部35は、判定対象の編集履歴に“{”が追加されたと判定した場合(ステップS35020101:Yes)、ブロック構造として判定する(ステップS35020104)。これに対し、構成要素分析部35は、判定対象の編集履歴に“{”が追加されていないと判定した場合(ステップS35020101:No)、次に、編集履歴に“}”が追加されたか否かを判定する(ステップS35020102)。
【0067】
構成要素分析部35は、編集履歴に“}”が追加されたと判定した場合(ステップS35020102:Yes)、ブロック構造としてと判定する(ステップS35020104)。また、構成要素分析部35は、編集履歴に“}”が追加されていないと判定した場合(ステップS35020102:No)、次に、編集履歴に追加または削除された文字が“{”の右側であるか、または、“{”と“}”との内側であるか否かを判定する(ステップS35020103)。
【0068】
構成要素分析部35は、編集履歴に追加または削除された文字が“{”の右側であるか、または、“{”と“}”との内側であると判定した場合(ステップS35020103:Yes)、ブロック構造として判定する(ステップS35020104)。一方、構成要素分析部35は、編集履歴に追加または削除された文字が“{”の右側でなく、“{”と“}”との内側でもないと判定した場合(ステップS35020103:No)、そのまま処理を終了する。
【0069】
[条件分岐条件式要素判定処理]
次に、図15に示す条件分岐条件式要素判定処理(ステップS350202)の処理手順について説明する。図17は、図15に示す条件分岐条件式要素判定処理の処理手順を示すフローチャートである。
【0070】
まず、構成要素分析部35は、判定対象の編集履歴に“(”が追加され、その直前が“if”であるか否かを判定する(ステップS35020201)。構成要素分析部35は、判定対象の編集履歴に“(”が追加され、その直前が“if”であると判定した場合(ステップS35020201:Yes)、判定対象を条件分岐条件式要素として判定する(ステップS35020204)。
【0071】
また、構成要素分析部35は、判定対象の編集履歴に“(”が追加されず、または、追加された“(”の直前が“if”でないと判定した場合(ステップS35020201:No)、判定対象の編集履歴に“)”が追加され、対応する括弧が“if(”であるか否かを判定する(ステップS35020202)。構成要素分析部35は、判定対象の編集履歴に“)”が追加され、対応する括弧が“if(”であると判定した場合(ステップS35020202:Yes)、判定対象を条件分岐条件式要素として判定する(ステップS35020204)。
【0072】
構成要素分析部35は、判定対象の編集履歴に“)”が追加されず、または、追加された“)”に対応する括弧が“if(”でないと判定した場合(ステップS35020202:No)、編集履歴に追加または削除された文字が“if(”の右側であるか、或いは“if(”と“)”との内側であるか否かを判定する(ステップS35020203)。
【0073】
構成要素分析部35は、編集履歴に追加または削除された文字が“if(”の右側であるか、或いは“if(”と“)”との内側である判定した場合(ステップS35020203:Yes)、判定対象を条件分岐条件式要素として判定する(ステップS35020204)。また、構成要素分析部35は、編集履歴に追加または削除された文字が“if(”の右側でなく、また、“if(”と“)”との内側でもないと判定した場合(ステップS35020203:No)、処理を終了する。
【0074】
[条件分岐ブロック判定処理]
次に、図15に示す条件分岐ブロック判定処理(ステップS350203)の処理手順について説明する。図18は、図15に示す条件分岐ブロック判定処理の処理手順を示すフローチャートである。
【0075】
図18に示すように、構成要素分析部35は、判定対象の編集履歴が前述のブロック構造判定処理(ステップS350201)においてブロック構造であると判定されており、左側が条件分岐条件式要素であるか否かを判定する(ステップS35020301)。構成要素分析部35は、判定対象の編集履歴が前述のブロック構造判定処理においてブロック構造であると判定されており、左側が条件分岐条件式要素であると判定した場合(ステップS35020301:Yes)、判定対象を条件分岐ブロックとして判定する(ステップS35020303)。
【0076】
また、構成要素分析部35は、判定対象の編集履歴が前述のブロック構造判定処理においてブロック構造であると判定されておらず、または、左側が条件分岐条件式要素でないと判定した場合(ステップS35020301:No)、判定対象の編集履歴が前述のブロック構造判定処理においてブロック構造であると判定されており、左側が“else”であるか否かを判定する(ステップS35020302)。
【0077】
構成要素分析部35は、判定対象の編集履歴が前述のブロック構造判定処理においてブロック構造であると判定されており、左側が“else”であると判定した場合(ステップS35020302:Yes)、判定対象を条件分岐ブロックとして判定する(ステップS35020303)。構成要素分析部35は、判定対象の編集履歴が前述のブロック構造判定処理においてブロック構造であると判定されておらず、または、左側が“else”でないと判定した場合(ステップS35020302:No)、処理を終了する。
【0078】
ここで、図15に示す繰り返し条件式要素判定処理(ステップS350204)と繰り返しブロック判定処理(ステップS350205)との詳細は、前述の条件分岐条件式要素判定処理(ステップS350202)と条件分岐ブロック判定処理(ステップS350203)との処理と、同様の処理である。
【0079】
[演算要素判定処理]
次に、図15に示す演算要素判定処理(ステップS350206)の処理手順について説明する。図19は、図15に示す演算要素判定処理の処理手順を示すフローチャートである。
【0080】
図19に示すように、構成要素分析部35は、判定対象の編集履歴に演算子のいずれかの記号が追加されたか否かを判定する(ステップS35020601)。構成要素分析部35は、判定対象の編集履歴に演算子のいずれかの記号が追加されていると判定した場合(ステップS35020601:Yes)、判定対象を演算要素として判定する(ステップS35020603)。
【0081】
構成要素分析部35は、判定対象の編集履歴に演算子のいずれかの記号が追加されていないと判定した場合(ステップS35020601:No)、判定対象の編集履歴に丸括弧が追加され、かつ、その丸括弧が予約語や関数に対応する括弧ではないかを判定する(ステップS35020602)。
【0082】
構成要素分析部35は、判定対象の編集履歴に丸括弧が追加され、かつ、予約語や関数に対応する括弧ではないと判定した場合(ステップS35020602:Yes)、判定対象を演算要素として判定する(ステップS35020603)。また、構成要素分析部35は判定対象の編集履歴に丸括弧が追加されず、または、追加された丸括弧が予約語や関数に対応する括弧であると判定した場合(ステップS35020602:No)、処理を了する。
【0083】
[識別子要素判定処理]
次に、図15に示す識別子要素判定処理(ステップS350207)の処理手順について説明する。図20は、図15に示す識別子要素判定処理の処理手順を示すフローチャートである。
【0084】
まず、構成要素分析部35は、判定対象の編集履歴に演算子のいずれかの記号が追加され、その直前が識別子であるか否かを判定する(ステップS35020701)。構成要素分析部35は、判定対象の編集履歴に演算子のいずれかの記号が追加され、その直前が識別子であると判定した場合(ステップS35020701:Yes)、判定対象を識別子要素として判定する(ステップS35020704)。
【0085】
構成要素分析部35は、判定対象の編集履歴に演算子のいずれかの記号が追加されず、または、追加された記号の直前が識別子でないと判定した場合(ステップS35020701:No)、判定対象の編集履歴に右括弧が追加され、その直前が識別子であるか否かを判定する(ステップS35020702)。
【0086】
構成要素分析部35は、判定対象の編集履歴に右括弧が追加され、その直前が識別子であると判定した場合(ステップS35020702:Yes)、判定対象を識別子要素として判定する(ステップS35020704)。
【0087】
構成要素分析部35は、判定対象の編集履歴に右括弧が追加されず、または、追加された丸括弧の直前が識別子でないと判定した場合(ステップS35020702:No)、判定対象の編集履歴にセミコロンやコロンが追加され、その直前が識別子であるか否かを判定する(ステップS35020703)。構成要素分析部35は、判定対象の編集履歴にセミコロンやコロンが追加され、その直前が識別子であると判定した場合(ステップS35020703:Yes)、判定対象を識別子要素として判定する(ステップS35020704)。構成要素分析部35は、判定対象の編集履歴にセミコロンやコロンが追加されず、または、追加されたセミコロンやコロンの直前が識別子でないと判定した場合(ステップS35020703:No)、処理を終了する。
【0088】
[情動状態分析処理]
次に、図14に示す情動状態分析処理(ステップS3504)の処理手順について説明する。図21は、図14に示す情動状態分析処理の処理手順を示すフローチャートである。
【0089】
まず、構成要素分析部35は、分析対象の時刻における脳波情報が、予め定められた第1の閾値より大きいか否かを判定する(ステップS350401)。構成要素分析部35は、分析対象の時刻における脳波情報が第1の閾値より大きいと判定した場合(ステップS350401:Yes)、情動状態を「困難」であると判定する(ステップS350403)。
【0090】
構成要素分析部35は、分析対象の時刻における脳波情報が第1の閾値以下であると判定した場合(ステップS350401:No)、分析対象の時刻における脳波情報が予め定められた第2の閾値より小さいか否かを判定する(ステップS350402)。
【0091】
構成要素分析部35は、分析対象の時刻における脳波情報が第2の閾値より小さいと判定した場合(ステップS350402:Yes)、情動状態を「簡単」であると判定する(ステップS350404)。また、構成要素分析部35は、分析対象の時刻における脳波情報が予め定められた第2の閾値以上であると判定した場合(ステップS350402:No)、情動状態を「普通」であると判定する(ステップS350405)。
【0092】
構成要素分析部35は、図14図21に示す各処理を実行することによって、図4に例示する個別構成要素分析結果380を取得した上で、図5に例示する構成要素分析結果381を得る。
【0093】
[ブロック構造試行錯誤分析処理]
次に、図11に示すブロック構造試行錯誤分析処理(ステップS360)の処理手順について説明する。図22は、図11に示すブロック構造試行錯誤分析処理の処理手順を示すフローチャートである。
【0094】
ブロック構造試行錯誤分析部36は、編集履歴情報記憶部33に格納されている編集履歴情報331を読み込み、編集履歴情報331のレコードごとに、判定対象の編集履歴が中括弧の入力或いは削除であるか否かを判定する(ステップS3602)。ブロック構造試行錯誤分析部36は、判定対象の編集履歴が中括弧の入力或いは削除であると判定した場合(ステップS3602:Yes)、その編集履歴の中括弧がプログラムの先頭から何番目の中括弧であるかを算出する(ステップS3603)。
【0095】
ブロック構造試行錯誤分析部36は、判定対象の編集履歴が中括弧の入力或いは削除でないと判定した場合(ステップS3602:No)、または、ステップS3603の処理後、判定対象の編集履歴が中括弧の削除であるか否かを判定する(ステップS3604)。ブロック構造試行錯誤分析部36は、判定対象の編集履歴が中括弧の削除であると判定した場合(ステップS3604:Yes)、その中括弧が入力されてから削除されるまでの時間を算出する(ステップS3605)。
【0096】
ブロック構造試行錯誤分析部36は、判定対象の編集履歴が中括弧の削除でないと判定した場合(ステップS3604:No)、またはステップS3605処理後、対象であるレコードについて情動状態分析処理(ステップS3606)を行う。ブロック構造試行錯誤分析部36は、構成要素分析処理(ステップS350)における情動状態分析処理(ステップS3504)と同様の処理手順を実行することによって、情動状態分析処理を行う。ステップS3602~ステップS3606の処理は、編集履歴情報331のすべてのレコードについて繰り返し実行される(ステップS3601,S3607)。
【0097】
そして、ブロック構造試行錯誤分析部36は、すべてのブロック構造の作成から削除までの総編集時間を算出する(ステップS3608)。次に、ブロック構造試行錯誤分析部36は、すべてのブロック構造の作成から削除までの平均情動状態を算出する(ステップS3609)。
【0098】
続いて、ブロック構造試行錯誤分析部36は、ブロック構造の総編集時間が所定時間より長いか否かを判定する(ステップS3610)。ブロック構造試行錯誤分析部36は、ブロック構造の総編集時間が所定時間より長いと判定した場合(ステップS3610:Yes)、学習者にとってブロック構造が理解できていないと判定する(ステップS3611)。
【0099】
また、ブロック構造試行錯誤分析部36は、ブロック構造の総編集時間が所定時間以下であると判定した場合(ステップS3610:No)、平均情動状態が「困難」であるか否かを判定する(ステップS3612)。ブロック構造試行錯誤分析部36は、平均情動状態が「困難」であると判定した場合(ステップS3612:Yes)、学習者にとってブロック構造が理解できていないと判定する(ステップS3611)。一方、ブロック構造試行錯誤分析部36は、平均情動状態が「困難」でないかと判定した場合(ステップS3612:No)、学習者にとってブロック構造は理解できていると判定する(ステップS3613)。
【0100】
この、ブロック構造試行錯誤分析部36は、図22に示すブロック構造試行錯誤分析処理を実行することによって、図6に例示するブロック構造試行錯誤分析結果391を得る。
【0101】
[エラー分析処理]
次に、図12に示すエラー分析処理(ステップS370)の処理手順について説明する。図23は、図12に示すエラー分析処理の処理手順を示すフローチャートである。
【0102】
エラー分析部37は、編集履歴情報記憶部33に格納されている編集履歴情報331を読み込み、編集履歴情報331のエラーをエラー種別ごとにカウントする(ステップS3702)。ステップS3702の処理は、編集履歴情報331のすべてのレコードについて繰り返し実行される(ステップS3701,S3703)。
【0103】
エラー分析部37は、カウントしたエラーについて、エラー種別ごとに一定時間内に同じエラーが繰り返されているか否かを判定する(ステップS3704)。エラー分析部37は、一定時間内に同じエラーが繰り返されていると判定した場合(ステップS3704:Yes)、学習者は、その種別のエラーの意味が理解できていないと判定する(ステップS3706)。また、エラー分析部37は、一定時間内に同じエラーが繰り返されていないと判定した場合(ステップS3704:No)、そのエラー種別について、特定のエラーの頻度が予め設定された閾値を越えたか否かを判定する(ステップS3705)。
【0104】
エラー分析部37は、特定のエラーの頻度が予め設定された閾値を越えたと判定した場合(ステップS3705:Yes)、学習者は該当エラーのケアレスミスが多いと判定する(ステップS3707)。また、エラー分析部37は、特定のエラーの頻度が予め設定された閾値を越えていないと判定した場合(ステップS3705:No)、学習者は、このエラー種別のエラーに関しては通常の理解度であると判定する(ステップS3708)。
【0105】
[実施の形態の効果]
このように、実施の形態に係る分析システムでは、分析装置30は、編集履歴情報と脳波情報とに基づいて、プログラムの各構成要素に対する学習者の弱点を分析する。また、分析装置30は、編集履歴情報と脳波情報とに基づいて、プログラムのブロック構造に関する学習者の弱点を分析する。そして、分析装置30は、編集履歴情報に基づいて、プログラムのエラーに関する学習者の弱点を、エラーの種別ごとに分析する。
【0106】
したがって、本実施の形態によれば、編集履歴情報と脳波情報とを組み合わせた分析処理を行うことにより、正解プログラムとの比較をする必要がなく、分析の際に大量のバックトラッキングを行うことないため、効率的に分析処理を実行することができる。そして、本実施の形態によれば、図8図22の処理を実行することによって、プログラミング学習過程での学習者のつまずきや理解不足の要因などの学習者の弱点を、自動的に分析し、学習者等に提供することができる。
【0107】
[変形例]
例えば、構成要素分析処理(ステップS350)と、ブロック構造試行錯誤分析処理(ステップS360)と、エラー分析処理(ステップS370)とは、逐次的に行う必要はなく、それぞれ独立に行ってもよい。
【0108】
また、構成要素分析処理(ステップS350)と、ブロック構造試行錯誤分析処理(ステップS360)と、エラー分析処理(ステップS370)とは、学習時に学習終了後に行う他、逐次的に行ってもよい。
【0109】
すなわち、本実施の形態では、構成要素分析処理(ステップS350)と、ブロック構造試行錯誤分析処理(ステップS360)と、エラー分析処理(ステップS370)とは、学習が一度終了した後に、編集履歴情報記憶部33及び脳波情報記憶部34に記憶されたデータを基に分析した例を説明した。これに限らず、構成要素分析処理(ステップS350)と、ブロック構造試行錯誤分析処理(ステップS360)と、エラー分析処理(ステップS370)とは、編集履歴情報取得部31と脳波情報取得部32から直接データを受信し、学習時にリアルタイムで分析を行ってもよい。その場合、編集履歴情報記憶部33と脳波情報記憶部34は不要となる。
【0110】
また、本実施の形態では、構成要素分析処理(ステップS350)と、ブロック構造試行錯誤分析処理(ステップS360)と、エラー分析処理(ステップS370)とを、並列に記述している。これに限らず、本実施の形態において実行する処理は、構成要素分析処理(ステップS350)のみでもよいし、ブロック構造試行錯誤分析処理(ステップS360)のみでもよいし、エラー分析処理(ステップS370)のみでもよいし、この3つの処理のいずれかを組み合わせた任意の組み合わせの処理のみでもよい。
【0111】
また、本実施の形態では、構成要素種別分析処理(ステップS3502)として、ブロック構造判定処理(ステップS350201)と、条件分岐条件式要素判定処理(ステップS350202)と、条件分岐ブロック判定処理(ステップS350203)と、繰り返し条件式要素判定処理(ステップS350204)と、繰り返しブロック判定処理(ステップS350205)と、演算要素判定処理(ステップS350206)と、識別子要素判定処理(ステップS350207)と、を含む構成要素分析処理(ステップS350)及びブロック構造試行錯誤分析処理(ステップS360)を実行するが、関数ブロックを判定してもよいし、変数や配列の代入や参照などを判定してもよい。分析装置30は、分析結果を利用する利用者の要求に従って、構成要素の種類を追加や削除を行えばよい。
【0112】
また、本実施の形態では、構成要素種別分析処理(ステップS3502)の各分析において、“{”や“}”などの記号をブロックの境界として判定に利用しているが、“{”や“}”を使わないプログラミング言語の場合、その言語特有の境界(例えばPython言語におけるインデント)を判定することによって適用が可能である。
【0113】
具体的には、構成要素分析部35は、開始括弧については、スペースキーやタブキーが押された際に、それが行頭か否かをチェックすることによって判定する。そして、構成要素分析部35は、終了括弧の検出において、リターンキーが押された次の行の行頭がインデントされたか否かを判定する必要があるため、リターンキーが押され、かつ、次のログがスペースやインデントではないというように二つのログをチェックすることで判定を行う。
【0114】
また、本実施の形態では、構成要素分析部35は、情動状態分析処理(ステップS3504)において、「困難」「簡単」「普通」というように3段階の判定を行っているが、「やや困難」や「やや簡単」などのように必要に応じてより多くの区分で判定してもよい。
【0115】
また、構成要素分析部35は、構成要素分析処理(ステップS350)の総編集時間が所定時間より長いか否かの判定(ステップS3509)では、上記のように、予め設定した所定時間を越えているかを判断するほか、学習者全体の平均編集時間に対して標準偏差の2倍以上の時間がかかっている場合というように統計的に判定することもできる。
【0116】
また、構成要素分析部35は、構成要素分析処理(ステップS350)の情動状態が困難であるか否かの判定(ステップS3511)において、ある構成要素の総編集時間がある閾値を下回っており、かつ、情動的にも「困難」と判定された場合に「困難」であると判定してもよい。また、構成要素分析部35は、ステップS3511において、学習者全体の平均編集時間に対して、対象学習者の編集時間が標準偏差の1倍以上より下回っており、かつ、情動的にも「困難」と判定された場合に「困難」であると判定してもよい。
【0117】
また、ブロック構造試行錯誤分析部36は、ブロック構造機構錯誤分析(ステップS360)の所定時間より長いか否かの判定(ステップS3610)において、上記のように、予め設定した値を越えているかを判断するほか、学習者全体の平均編集時間に対して標準偏差の2倍以上の時間がかかっている場合というように統計的に決めることもできる。
【0118】
また、ブロック構造試行錯誤分析部36は、ブロック構造機構錯誤分析処理(ステップS360)の情動状態が困難であるか否かの判定(ステップS3612)において、ある構成要素の総編集時間がある閾値を下回っており、かつ、情動的にも「困難」と判定した場合としてもよい。また、ブロック構造機構錯誤分析学習者全体の平均編集時間に対して,対象学習者の編集時間が標準偏差の1倍以上より下回っており、かつ情動的にも「困難」と判定された場合に「困難」であると判定してもよい。
【0119】
また、本実施の形態では、エラー分析処理(ステップS370)の特定のエラーの頻度が閾値を越えたか否かの判定(ステップS3707)において、閾値を予め設定してもよいし、学習者全体の平均回数からの偏差によって動的に定めてもよい。
【0120】
また、本実施の形態では、構成要素分析処理(ステップS350)において、編集履歴情報331の各レコードに対して構成要素を判定するが、各レコードに対して複数の構成要素が判定される場合がある。例えば、構成要素分析部35は、繰り返しブロックの中に条件分岐ブロックがある場合、該レコードは、繰り返しブロックと条件分岐ブロックの両方の構成要素として判定する。この場合、構成要素分析結果381には、複数のレコードとして記録されることになる。
【0121】
[システム構成等]
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、或いは、ワイヤードロジックによるハードウェアとして実現され得る。本実施の形態に係る学習装置20及び分析装置30は、コンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
【0122】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的におこなうこともでき、或いは、手動的に行なわれるものとして説明した処理の全部又は一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0123】
[プログラム]
図24は、プログラムが実行されることにより、学習装置20及び分析装置30が実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0124】
メモリ1010は、ROM1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。例えば、これらの記憶媒体は、主記憶装置と補助記憶装置に分けられる。主記憶装置はプログラムを記憶する。また、補助記憶装置は、情報の書き込み及び読出しが可能であり、処理の実行によって取得された編集履歴情報、脳波情報、構成要素分析情報、ブロック構造試行錯誤分析結果及びエラー分析結果を記憶する。
【0125】
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、学習装置20及び分析装置30の各処理を規定するプログラムは、コンピュータ1000により実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、学習装置20及び分析装置30における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(ステップSolid State Drive)により代替されてもよい。
【0126】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
【0127】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。或いは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【0128】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例及び運用技術等はすべて本発明の範疇に含まれる。
【符号の説明】
【0129】
1 分析システム
20 学習装置
21 編集履歴情報取得部
22 脳波情報取得部
30 分析装置
31 編集履歴情報取得部
32 脳波情報取得部
33 編集履歴情報記憶部
34 脳波情報記憶部
35 構成要素分析部
36 ブロック構造試行錯誤分析部
37 エラー分析部
38 構成要素分析結果記憶部
39 ブロック構造試行錯誤分析結果記憶部
40 エラー分析結果記憶部
41 分析結果出力部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24