(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024173146
(43)【公開日】2024-12-12
(54)【発明の名称】情報処理方法、プログラム、及び情報処理装置
(51)【国際特許分類】
G06F 11/34 20060101AFI20241205BHJP
G06F 3/0487 20130101ALI20241205BHJP
【FI】
G06F11/34 138
G06F3/0487
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023091367
(22)【出願日】2023-06-02
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.PYTHON
2.SWIFT
(71)【出願人】
【識別番号】522244746
【氏名又は名称】株式会社ハイヤールー
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100108213
【弁理士】
【氏名又は名称】阿部 豊隆
(72)【発明者】
【氏名】レクティー アーサー
(72)【発明者】
【氏名】葛岡 宏祐
【テーマコード(参考)】
5B042
5E555
【Fターム(参考)】
5B042HH26
5B042MA08
5B042MA14
5B042MC37
5E555AA22
5E555AA71
5E555BA02
5E555BA05
5E555BA06
5E555BB02
5E555BB05
5E555BB06
5E555BC19
5E555BD01
5E555BE09
5E555CA18
5E555CB20
5E555CC19
5E555EA03
5E555EA14
5E555FA00
(57)【要約】
【課題】受験者のコーディングログの中から、評価に影響を与える部分を効率よく把握することを可能にする。
【解決手段】情報処理方法は、情報処理装置が、ユーザが処理装置にキー入力してコーディングしたログに関するログ情報を取得すること、ログ情報に基づき、ユーザのネガティブ評価に関する所定条件を満たすユーザ行動を検知すること、ログ情報を用いてユーザのキー入力の再生を制御することであって、検知されたユーザ行動の再生タイミングを識別可能にして再生すること、を実行する。
【選択図】
図8
【特許請求の範囲】
【請求項1】
情報処理装置が、
ユーザが処理装置にキー入力してコーディングしたログに関するログ情報を取得すること、
前記ログ情報に基づき、前記ユーザのネガティブ評価に関する所定条件を満たすユーザ行動を検知すること、
前記ログ情報を用いて前記ユーザのキー入力の再生を制御することであって、検知された前記ユーザ行動の再生タイミングを識別可能にすることを含む、再生を制御すること、
を実行する情報処理方法。
【請求項2】
前記所定条件は、それぞれ異なる複数の条件を含む場合、
前記再生することは、条件が異なる各ユーザ行動に対し、異なる識別方法を用いて識別可能にすることを含む、請求項1に記載の情報処理方法。
【請求項3】
前記所定条件は、前記ユーザ行動がコピーアンドペーストを表すことを含む、請求項1に記載の情報処理方法。
【請求項4】
前記所定条件は、前記ユーザ行動が、コーディング画面とは異なる画面を利用してのコピーアンドペーストを表すことを含む、請求項3に記載の情報処理方法。
【請求項5】
前記所定条件は、前記ユーザ行動がコーディング画面からフォーカスが外れることを含む、請求項1に記載の情報処理方法。
【請求項6】
前記再生を制御することは、再生されるコーディング画面において、前記コピーアンドペーストの第1部分を強調表示することを含む、請求項3に記載の情報処理方法。
【請求項7】
前記再生を制御することは、前記コーディング画面において、前記第1部分と、前記コピーアンドペースト以降に前記第1部分に関して前記ユーザが入力した第2部分とを識別可能にすることを含む、請求項6に記載の情報処理方法。
【請求項8】
情報処理装置に、
ユーザが処理装置にキー入力してコーディングしたログに関するログ情報を取得すること、
前記ログ情報に基づき、前記ユーザのネガティブ評価に関する所定条件を満たすユーザ行動を検知すること、
前記ログ情報を用いて前記ユーザのキー入力の再生を制御することであって、検知された前記ユーザ行動の再生タイミングを識別可能にすることを含む、再生を制御すること、
を実行させるプログラム。
【請求項9】
プロセッサと記憶部とを含む情報処理装置であって、
前記プロセッサが、
ユーザが処理装置にキー入力してコーディングしたログに関するログ情報を取得すること、
前記ログ情報を前記記憶部に記憶すること、
前記ログ情報に基づき、前記ユーザのネガティブ評価に関する所定条件を満たすユーザ行動を検知すること、
前記ログ情報を用いて前記ユーザのキー入力の再生を制御することであって、検知された前記ユーザ行動の再生タイミングを識別可能にすることを含む、再生を制御すること、
を実行する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
開示の技術は、情報処理方法、プログラム、及び情報処理装置に関する。
【背景技術】
【0002】
従来、ユーザが使用経験のあるプログラミング言語、ユーザが使用経験のあるソフトウェアフレームワークのいずれかまたは両方ごとに、ユーザのエンジニアとしてのスキルを評価する第1 のパラメータを取得し、当該ユーザの前記第1のパラメータに基づき、ユーザの収入を予測する収入予測モデルを用いて、当該ユーザについて想定される収入を特定することが知られている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
近年、エンジニアのコーディングスキルを評価するため、コーディング試験を実施する企業が増えてきている。コーディング試験が実施されることで、エンジニア採用のミスマッチを削減することが可能になる。また、受験者のコーディングが評価される際に、評価者は、受験者のコーディングのログを再生して評価することが一般的に行われている。しかしながら、ログを再生するだけでは、どこに注力して評価すればよいかが分からないという問題点があった。
【0005】
そこで、開示技術は、受験者のコーディングログの中から、評価に影響を与える部分を効率よく把握することが可能になる新たな仕組みを提供することを目的とする。
【課題を解決するための手段】
【0006】
開示の一態様における情報処理方法は、情報処理装置が、ユーザが処理装置にキー入力してコーディングしたログに関するログ情報を取得すること、前記ログ情報に基づき、前記ユーザのネガティブ評価に関する所定条件を満たすユーザ行動を検知すること、前記ログ情報を用いて前記ユーザのキー入力の再生を制御することであって、検知された前記ユーザ行動の再生タイミングを識別可能にして再生を制御すること、を実行する。
【発明の効果】
【0007】
開示技術によれば、受験者のコーディングログの中から、評価に影響を与える部分を効率よく把握することを可能にすることができる。
【図面の簡単な説明】
【0008】
【
図1】開示の一実施形態に係る情報処理システムの構成の一例を示す図である。
【
図2】開示の一実施形態に係るサーバの一例を示すブロック図である。
【
図3】イベントを記録したログファイルの一例を示す図である。
【
図4】キー入力を記録したログファイルの一例を示す図である。
【
図5】ネガティブ評価に関する所定条件を満たすキー入力を抽出したファイルの一例を示す図である。
【
図7】開示の一実施形態に係る処理装置の一例を示す図である。
【
図8】一実施形態に係る本件サービスに関する処理の一例を示すシーケンス図である。
【
図9】一実施形態に係る再生画面の一例を示す図である。
【
図10】一実施形態に係る再生画面の他の例を示す図である。
【発明を実施するための形態】
【0009】
添付図面を参照して、本開示の好適な実施形態について説明する。なお、各図において、同一の符号を付したものは、同一又は同様の構成を有する。
【0010】
[実施形態]
<システム構成>
図1は、開示の一実施形態に係る情報処理システム1の構成の一例を示す図である。
図1に示すとおり、情報処理システム1は、サーバ10と、1又は複数のユーザの処理装置20A、20B、20Cを含む。以下、処理装置を区別しない場合は、処理装置20と表記する。サーバ10と、処理装置20とは、ネットワークNを介して相互にデータの送受信が可能である。サーバ10は複数の処理装置により構成されてもよい。処理装置20は任意の数でもよい。
【0011】
情報処理システム1は、コーディング試験を作成する運営者と、コーディングの試験を受けるユーザ(受験者)と、コーディング試験を閲覧又は評価するユーザ(閲覧者)とにより利用される。なお、運営者と評価者とは、同一ユーザ又は企業でもよい。
【0012】
情報処理システム1は、運営者又はコーディング試験を実施する企業からのリクエストにより所定のプログラミング言語でコーディング試験を生成する。所定のプログラミング言語は、JavaScript(登録商標)、Python、C言語などのスクリプト言語、Go言語、Swift、Kotlin(登録商標)などの公知のプログラミング言語のうち、少なくとも1つを含む。
【0013】
情報処理システム1は、生成したコーディング試験を、試験を受けるユーザに提供する。例えば、情報処理システム1は、オンラインで受験者がコーディング試験を受ける環境を提供し、コーディング試験中のコーディング内容をログとして記録する。情報処理システム1は、記録したログに基づいて閲覧者に対して受験者のコーディング履歴を再現することにより、閲覧者は、受験者のコーディング内容を閲覧又は評価することが可能となる。
【0014】
受験者のコーディングログが再現される場合、試験中のコーディング内容について一様に再現してしまうと、閲覧者はどこに注目すべきであるかが分かりにくい。そこで、情報処理システム1は、コーディングのログデータに基づいて、閲覧者が注目すべきユーザ行動、例えば、ネガティブ評価に関わるユーザ行動を検知して、このユーザ行動を識別できるようにする。以下、情報処理システム1に備えられるサーバ10と処理装置20とについて説明する。
【0015】
サーバ10は、運営者等が利用する情報処理装置であり、汎用のコンピュータ等でもよい。サーバ10は、本実施形態で開示するコーディング試験サービス(以下、本件サービスとも称す。)を提供する。例えば、サーバ10は、様々なプログラミング言語の中から選択された一つのプログラミング言語を用いてコーディング試験を生成する。サーバ10は、運営者又は企業がリクエストした条件を満たす問題を、予め記憶しておいた多数の問題の中からランダムに組み合わせて生成してもよいし、生成AI(Artificial Intelligence)を用いてコーディングの問題を生成してもよい。
【0016】
また、サーバ10は、例えば、コーディング試験中に、ユーザの処理装置20のウェブブラウザを用いて入力されるキー入力(例、キーストローク)を取得し、コーディング試験中のログを記録する。サーバ10は、コーディングログに基づいて、受験者のコーディングスキルを評価し、レポートを作成したり、ログを再現したりする。サーバ10側では、本開示技術のコーディング試験の環境を整えることにより、このコーディング試験を導入する企業に対して、例えば、コーディング試験に対する客観的な評価レポート等を提供し、採用のミスマッチを防ぐことができる。
【0017】
処理装置20は、受験者や閲覧者が利用する情報処理装置であり、例えば、パーソナルコンピュータ、スマートホンなどの携帯電話、タブレット端末などである。受験者が利用する処理装置20は、例えば、ウェブブラウザを用いて、サーバ10が提供するウェブサイト(又はウェブページ)にアクセスし、このウェブサイトにおいて提供されるコーディング試験を受ける。また、閲覧者が利用する処理装置20は、例えば、サーバ10からログ情報を取得し、ログ情報に基づいて受験者のコーディング内容を再生する。
【0018】
また、処理装置20には、サーバ10が提供する本件サービスを利用するためのアプリケーションプログラム(アプリ)がインストールされてもよい。このアプリは、サーバ10が提供する本件サービスにおいて、以下に示す実施形態において開示されたコーディング試験に関する処理の少なくとも一部を処理装置20に実行させる。このアプリが実行されることにより、処理装置20はサーバ10にアクセスして、アプリの実行に用いる情報を送受信する。以下、コーディング試験に関する本件サービスを実行可能にする情報処理システム1の各構成等について詳細に説明する。
【0019】
<サーバの構成>
図2は、開示の一実施形態に係るサーバ10の一例を示すブロック図である。サーバ10は、1つ又は複数のプロセッサ(例えばCPU)110、1つ又は複数のネットワーク通信インタフェース120、記憶装置(記憶部)130、及びこれらの構成要素を相互接続するための1つ又は複数の通信バス170を含む。
【0020】
サーバ10は、場合によりユーザインタフェース150を含んでもよい。ユーザインタフェース150は、ディスプレイ、及び/又は入力装置(キーボード及び/又はマウス、又は他の何らかのポインティングデバイス等)を含む。
【0021】
記憶装置130は、例えば、DRAM、SRAM、他のランダムアクセス固体記憶装置などの高速ランダムアクセスメモリ(主記憶装置)である。また、記憶装置130は、1つ又は複数の磁気ディスク記憶装置、光ディスク記憶装置、フラッシュメモリデバイス、又は他の不揮発性固体記憶装置などの不揮発性メモリ(補助記憶装置)でもよい。また、記憶装置130は、プログラム等を記憶した、コンピュータにより読み取り可能な非一時的な記録媒体でもよい。また、記憶装置130は、主記憶装置(メモリ)又は補助記憶装置(ストレージ)のいずれかでもよく、あるいは両方を備えてもよい。
【0022】
記憶装置130は、情報処理システム1により用いられるデータ、プログラム等を記憶する記憶部である。例えば、記憶装置130は、コーディング試験の元となる問題、回答、評価基準、コーディングログ、評価すべきポイントに関する所定条件などを記憶する。
【0023】
また、記憶装置130の他の例として、プロセッサ110から遠隔に設置される1つ又は複数の記憶装置でもよい。ある実施形態において、記憶装置130はプロセッサ110により実行されるプログラム、モジュール及びデータ構造、又はそれらのサブセットを格納する。
【0024】
プロセッサ110は、記憶装置130に記憶されるプログラムを実行することで、例えば、サービス制御部111、取得部112、検知部113、再生部114を構成する。
【0025】
サービス制御部111は、実施形態に開示される本件サービスを制御する。例えば、サービス制御部111は、企業の担当者が利用する処理装置20から問題生成に関するリクエストを取得したり、コーディング結果に関するレポートのリクエストを取得したりする。
【0026】
サービス制御部111は、問題生成リクエストに基づいて生成した問題を含むウェブページを生成し、このウェブページのURL等のアクセス先を、問題生成リクエストを出力した処理装置20に送信するよう制御する。受験者が利用する処理装置20は、このアクセス先にアクセスすることで、生成されたコーディング試験を、ウェブブラウザを用いて受けることが可能になる。
【0027】
また、サービス制御部111は、実施形態に開示される本件サービスのコーディング結果の再現処理を制御するために、取得部112、検知部113、再生部114を有する。
【0028】
取得部112は、ユーザ(受験者)が処理装置20にキー入力してコーディングしたログに関するログ情報を取得する。受験者の操作ログは、公知技術を利用することで取得することが可能である。例えば、取得部112は、処理装置20のウェブブラウザを利用してコーディングが行われる場合、コーディング中のキー入力をログ情報として取得する。ログ情報は、記憶装置130に記録される。このとき、キー入力には入力時のタイムが関連付けられていてもよい。
【0029】
検知部113は、取得部112により取得されたログ情報に基づき、受験者のネガティブ評価に関する所定条件を満たすユーザ行動を検知する。例えば、一般的にネガティブ評価となるチート行為(不正行為)が定義されており、このチート行為を示すキー入力が条件設定されるとよい。この場合、検知部113は、各キー入力と、チート行為に関する条件に設定されるキー入力とを比較することで、チート行為を満たすユーザ行動を検知することが可能となる。
【0030】
再生部114は、取得部112により取得されたログ情報を用いて受験者のキー入力の再生を制御する。このとき、再生部114は、検知部113により検知された受験者のユーザ行動の再生タイミングを識別可能にして再生するように制御する。例えば、再生部114は、コーディングの再生画面において、検知部113により検知されたユーザ行動の表示タイミングをタイムライン上で識別できるようにする。具体例として、再生部114は、タイムライン上で、検知されたユーザ行動の表示タイミングの色を変える、印を付加する、模様を付加するなどしてもよい。受験者のキー入力を再生する装置は、サーバ10でもよいし、処理装置20でもよい。
【0031】
また、再生部114は、検出されたユーザ行動の表示タイミングについて、検出されたキー入力に関連付けられるタイムにより判断してもよく、また、検出されたキー入力の入力順序により判断してもよい。
【0032】
以上の処理により、閲覧者にとって、受験者のコーディングログの中から、評価に影響を与える部分を効率よく把握することを可能にすることができる。また、タイムライン上で、検知されたユーザ行動の表示タイミングを識別可能にすることにより、閲覧者は何度もプレイバックして、ネガティブ評価に関するユーザ行動を確認することが可能になる。
【0033】
また、所定条件は、それぞれ異なる複数の条件を含む場合がある。このとき、再生部114は、条件が異なる各ユーザ行動に対し、異なる識別方法を用いて識別可能にすることを含んでもよい。例えば、所定条件に、チート行為に関する条件Aと条件Bとが含まれる場合、再生部114は、条件Aに対するユーザ行動の表示タイミングAと、条件Bに対するユーザ構造の表示タイミングBとを識別可能にしてもよい。具体例として、再生部114は、表示タイミングAと表示タイミングBとを異なる色にする、異なる印を付加する、異なる模様を付加するなどしてもよい。
【0034】
以上の処理により、異なるユーザ行動に対して異なる識別方法を採用することで、閲覧者は識別方法ごとに、どのユーザ行動であるかを容易に把握することができるようになる。例えば、赤の表示タイミングはユーザ行動A、青の表示タイミングはユーザ行動Bなど、ユーザ行動の種類を分けて識別可能にすることができる。
【0035】
また、所定条件は、ユーザ行動がコピー(複写)アンドペースト(貼り付け)を表すことを含んでもよい。検知部113は、公知の技術を用いることにより、コピーのイベントキー(例えばCtrl+C)及びペーストのイベントキー(例えばCtrl+V)を検知することが可能である。
【0036】
以上の処理により、コピーアンドペーストは、チート行為に関連する行為であると考えられるため、閲覧者は、受験者のコピーアンドペーストを容易に把握することができる。また、閲覧者は、どのコードをコピーアンドペーストしたかを容易に把握することも可能である。
【0037】
また、所定条件は、ユーザ行動が、コーディング画面とは異なる画面を利用してのコピーアンドペーストを表すことを含んでもよい。コピーアンドペーストには例えば2種類あり、一つがコーディング中の画面において表示される内容(例、テキスト)をコピーアンドペーストするケースと、もう一つがコーディング中の画面とは異なる画面にフォーカスアウトし、異なる画面に表示される内容(例、テキスト)をコピーアンドペーストするケースである。
【0038】
コーディング中の画面に表示される内容のコピーアンドペーストは、正当なコピーアンドペーストと想定され、例えば、受験者自らキー入力して作成したコードをコピーアンドペーストするケースがある。他方、コーディング中の画面とは異なる画面に表示される内容のコピーアンドペーストは、例えば他のWebページに公開されている他人が作成したコードをコピーアンドペーストするケースであると想定される。
【0039】
検知部113は、フォーカスされている画面とキー入力とに基づいて、コーディング画面とは異なる画面を利用してのコピーアンドペーストを検知することが可能である。例えば、検知部113は、コーディング試験の画面からフォーカスアウトした後に、コピーアンドペーストのキー入力を検知した場合、このユーザ行動を、不正行為に関するユーザ行動として検知する。
【0040】
以上の処理により、閲覧者は、コピーアンドペーストのイベントにおいて、正当な行為に関するコピーアンドペーストと、不正な行為に関するコピーアンドペーストとを識別して把握することができるようになる。
【0041】
また、所定条件は、ユーザ行動がコーディング画面からフォーカスが外れることを含んでもよい。例えば、要素がフォーカスを失うときに発生するフォーカスアウトのイベントは公知技術であるため、検知部113は、この公知技術のフォーカスアウトのイベントを検知することが可能である。
【0042】
以上の処理により、コーディング画面からフォーカスアウトが検知された場合、受験者は別の異なる画面を参照している可能性があり、これをチート行為に関する行為であるとして、他のユーザ行動とは区別することが可能である。
【0043】
また、再生部114は、受験者のログ情報に基づいて、受験者のコーディング内容が再生されるコーディング画面において、受験者のネガティブ評価に関する所定条件を満たすキー入力を強調表示することを含んでもよい。強調表示箇所は、例えば、受験者によりコピーアンドペーストされた第1部分でもよい。再生部114は、強調表示について、第1部分の文字や背景の色を変更する、第1部分を枠で囲う、第1部分に模様を付加するなどの少なくとも1つを行うとよい。
【0044】
強調表示のため、検知部113は、受験者のネガティブ評価に関する所定条件を満たすキー入力を抽出し、抽出されたキー入力を別ファイルとして記録するようにしてもよい。この場合、再生部114は、ログ情報を用いて受験者のコーディングを再現する際に、別ファイルに記録されたキー入力について強調表示すればよい。
【0045】
また、検知部113は、ログ情報の中で、検知部113により抽出されたキー入力を識別できるようにしておいてもよい。この場合、再生部114は、検知部113により検知され、識別されたキー入力を再生する際に強調表示してもよい。
【0046】
また、再生部114は、コーディング画面において、コピーアンドペーストの第1部分と、コピーアンドペースト以降に第1部分に関してユーザが入力した第2部分とを識別可能にすることを含んでもよい。例えば、受験者は、コピーアンドペーストを行った後に、コピーアンドペーストした部分のテキストを編集したとする。このとき、再生部114は、コピーアンドペーストした部分のテキストの色と、編集されたテキストの色とを異なるようにしてもよい。なお、識別方法は、色だけに限られず、枠で囲う、模様を付加する、フォントを変える、などの識別方法でもよい。
【0047】
以上の処理により、閲覧者は、コピーアンドペーストの後に受験者がいずれの行動を行ったかを容易に把握することができるようになる。すなわち、コピーアンドペーストした部分と、自らキー入力して作成した部分とを容易に識別することができるようになる。
【0048】
《ログ情報の例》
次に、
図3~5を用いて、ログ情報の例について説明する。
図3~5に示すログ情報(ログファイル)は、受験者がコーディングした内容についてJSON(JavaScript Object Notation)形式で表現される。
【0049】
図3は、イベントを記録したログファイルの一例を示す図である。
図3に示す例において、受験者がペーストしたイベントについて、例えば以下のログとして記録される。
ペーストしたイベント(”s” : ”mpaste”)
ペーストの位置(”position” : 32)及び終了位置("selectionEnd": 249)
ペーストの内容("\"\"\n solves two sum problem\n Args: \n nums: list of numbers to"\ search from\n target: target number to add up to\n Returns: \n list: containing indices for numbers which add up to target\n \"\"\"")
【0050】
図4は、キー入力(キーストローク)を記録したログファイルの一例を示す図である。
図4に示す例において、受験者のキーストロークについて、例えば以下のことがログとして記録される。
・入力A1
入力位置(32)
入力内容("\"\"\n solves two sum problem\n Args: \n nums: list of numbers to"\ search from\n target: target number to add up to\n Returns: \n list: containing indices for numbers which add up to target\n \"\"\"")
・入力A2
入力位置(249)
入力内容(\n)(改行の意味)
・入力An
入力位置(451)
入力内容(tur)
・入力Ao
入力位置(454)(“tur”の3文字後(451+3))
入力内容(n)
【0051】
なお、取得部112は、
図3及び
図4に示すようなログ情報を取得する。検知部113は、取得されたログ情報の中から、所定条件を満たすキー入力を検知する。所定条件は、管理者等により設定された、ネガティブ評価に関する所定条件を含む。
【0052】
図5は、ネガティブ評価に関する所定条件を満たすキー入力を抽出したファイルの一例を示す図である。
図5に示す例において、受験者のコピーアンドペースト(以下、「コピペ」とも称す。)を抽出したログファイルを示す。
・コピペ1
入力A1
コピペ開始位置(31)及び終了位置(249)
・コピペ2
コピペ開始位置(285)及び終了位置(311)
など
【0053】
検知部113は、
図3及び
図4に示すキー入力の一例に基づき、ネガティブ評価に関する所定条件を満たすキー入力を抽出し、抽出されるキー入力を含む
図5に示すログファイルを生成する。
【0054】
再生部114は、
図3に示すイベントログ、
図4に示すキー入力ログに基づき、受験者のコーディング内容を再現しつつ、
図5に示すログファイルのキー入力(ユーザ行動)を識別できるようにして再生を制御する。例えば、再生部114は、再生画面のタイムラインにおいて
図5に示すログが表示されるタイミングに印を設けたり、
図5に示すログがコーディング画面に表示される際にハイライトをしたりして識別可能にする。
【0055】
≪識別表示の例≫
次に、開示の一実施形態においてコピーアンドペースト部分が識別表示されるケースについて説明する。
図6は、識別表示の例を示す図である。
図6に示す例では、コピーアンドペーストに関する6個の識別表示のケースが記載される。識別表示の一例として、コピーアンドペースト部分が点線枠で囲まれている。
【0056】
(Case1)
Case1は、コピーアンドペーストされた部分の一部が削除されるケースである。例えばt2において、他のWebページからコピーされたテキスト(pasted text from web)がペーストされる。次に、t3において、受験者は、ペーストされた部分(pasted text from web)から一部(from web)を削除する。さらに、t4において、受験者は、ペーストした部分のうち残された部分(pasted)に続いてテキスト(return)を入力する。
【0057】
Case1のコーディング内容が再生されるとき、再生部114は、まず、ペーストされた部分(pasted text from web)が識別可能に表示されるように制御する。次に、再生部114は、ペーストで残された部分(pasted)と、受験者により入力された部分(return)とを識別できるようにする。例えば、ペーストで残された部分(pasted)は強調表示されるが、受験者により入力された部分(return)は強調表示されない。
【0058】
(Case2)
Case2は、コピーアンドペーストされた部分にテキストが追加されるケースである。例えばt2において、他のWebページからコピーされたテキスト(pasted)がペーストされる。次に、t3において、受験者は、ぺーストされた部分(pasted)に続いてテキスト(return)を追加する。
【0059】
Case2のコーディング内容が再生されるとき、再生部114は、ペーストされた部分が識別可能に表示されるように制御する。例えば、再生部114は、ペーストされた部分(pasted)と、受験者により入力された追加部分(return)とを識別できるように表示する。
【0060】
(Case3)
Case3は、コピーアンドペーストされた部分にテキストが挿入されるケースである。例えばt2において、他のWebページからコピーされたテキスト(pasted multiple lines code in one paste)がペーストされる。次に、t3において、受験者は、ペーストされた部分(pasted multiple lines code in one paste)の途中に改行を入れて2つの部分(pasted multiple lines とcode in one paste)に分ける。さらに、t4及びt5において、受験者は、改行した部分にテキスト(and add)を挿入する。
【0061】
Case3のコーディング内容が再生されるとき、再生部114は、ペーストされた部分が識別可能に表示されるように制御する。例えば、再生部114は、ペーストされた2つの部分(pasted multiple lines とcode in one paste)と、受験者により挿入されたテキスト部分(and add)とを識別できるように表示する。
【0062】
(Case4)
Case4は、コピーアンドペーストされた部分が段階的に削除されるケースである。例えばt2において、他のWebページからコピーされたテキスト(pasted multiple lines code in one paste)がペーストされる。次に、t3において、受験者は、ペーストされた部分(pasted multiple lines code in one paste)から一部(code in one paste)を削除する。さらに、t4において、受験者は、ペーストした部分のうち残された部分(pasted multiple lines)を削除する。
【0063】
Case4のコーディング内容が再生されるとき、再生部114は、ペーストされた部分が識別可能に表示されるように制御する。例えば、再生部114は、ペーストされた部分を一旦識別可能に表示し、受験者が削除した順序で、ペーストされた部分の一部を段階的に削除する。
【0064】
(Case5)
Case5は、コピーアンドペーストが段階的に行われるケースである。例えばt2において、他のWebページからコピーされたテキスト(first paste)がペーストされる。次に、t3において、受験者は、さらに、他のWebページからコピーされたテキスト(second paste)をペーストする。さらに、t4において、受験者は、2つペーストした部分に続いて、テキスト(typing)を入力する。
【0065】
Case5のコーディング内容が再生されるとき、再生部114は、最初にペーストされた部分(first paste)を識別可能に表示し、その次にペーストされた部分(second paste)を識別可能に表示し、最後に、受験者が入力したテキスト(typing)を表示するように制御する。このとき、受験者が入力したテキスト(typing)と、ペーストされた部分とは識別可能に表示され、また、最初にペーストされた部分(first paste)と、次にペーストされた部分(second paste)とが識別可能に表示されてもよい。
【0066】
(Case6)
Case6は、コピーアンドペーストが段階的に行われるケースである。例えばt2において、他のWebページからコピーされたテキスト(first paste)がペーストされる。次に、t3において、受験者は、さらに、他のWebページからコピーされたテキスト(second paste)をペーストする。さらに、t4において、受験者は、2つペーストした部分の改行を消去し、2つのペーストされた部分をマージする。最後に、t5において、受験者は、マージされた部分に続いて、テキスト(typing)を入力する。
【0067】
Case6のコーディング内容が再生されるとき、再生部114は、最初にペーストされた部分(first paste)を識別可能に表示し、その次にペーストされた部分(second paste)を識別可能に表示し、次に、マージされた部分(first paste second paste)を識別可能に表示し、最後に、受験者が入力したテキスト(typing)を表示するように制御する。このとき、受験者が入力したテキスト(typing)と、マージされた部分(first paste second paste)とは識別可能に表示され、また、最初にペーストされた部分(first paste)と、次にペーストされた部分(second paste)とが識別可能に表示されてもよい。
【0068】
<処理装置の構成>
図7は、開示の一実施形態に係る処理装置20の一例を示す図である。例えば、処理装置20は、ユーザが利用する装置である。処理装置20は、1つ又は複数のプロセッサ(例、CPU)210、1つ又は複数のネットワーク通信インタフェース220、記憶装置(記憶部)230、ユーザインタフェース250、及びこれらの構成要素を相互接続するための1つ又は複数の通信バス270を含む。
【0069】
ユーザインタフェース250は、ディスプレイ251、及び入力装置(キーボード及び/又はマウス、又は他の何らかのポインティングデバイス等)252を含む。
【0070】
記憶装置230は、例えば、DRAM、SRAM、又は他のランダムアクセス固体記憶装置などの高速ランダムアクセスメモリ(主記憶装置)である。また、記憶装置230は、1つ又は複数の磁気ディスク記憶装置、光ディスク記憶装置、フラッシュメモリデバイス、又は他の不揮発性固体記憶装置などの不揮発性メモリ(補助記憶装置)でもよい。また、記憶装置230は、コンピュータ読み取り可能な非一時的な記録媒体でもよい。また、記憶装置230は、主記憶装置(メモリ)又は補助記憶装置(ストレージ)のいずれかでもよく、あるいは両方を備えてもよい。
【0071】
記憶装置230は、情報処理システム1により用いられるデータやプログラムを記憶する。例えば、記憶装置230は、情報処理システム1における処理装置20用のアプリケーションプログラムなどを記憶する。
【0072】
プロセッサ210は、記憶装置230に記憶されるプログラムを実行することで、サービス処理部211を構成する。サービス処理部211は、例えば、ウェブブラウザやメールアプリケーションなどを含む。ウェブブラウザは、サーバ10により提供されるウェブサイト又はウェブページの閲覧を可能にする。また、インストールされたユーザ端末用のアプリケーションの実行により、上述したサービスが提供されるウェブサイト又はウェブページの閲覧が可能になる。サービス処理部211は、サービス提供を受けるため、通信制御部212、表示制御部213、操作制御部214を有する。
【0073】
通信制御部212は、受験者が利用する場合、サーバ10から送信されるコーディング試験の画面情報等を取得する。また、通信制御部212は、閲覧者が利用する場合、サーバ10から受験者のキー入力に関するログ情報等を取得する。
【0074】
また、通信制御部212は、受験者が利用する場合、サーバ10に対し、コーディング試験のリクエストや、受験者のキー入力情報(イベント情報やキーストローク情報など)などを出力する。また、通信制御部212は、閲覧者が利用する場合、サーバ10に対し、受験者のキー入力のログ情報の閲覧リクエストや、コーディング内容の評価に関する情報などを出力する。
【0075】
表示制御部213は、通信制御部212により取得された各画面情報に基づいて、本件サービスに関する上述の各画面をディスプレイ251に表示するよう制御する。例えば、表示制御部213は、コーディング試験の画面や、受験者のコーディングの再生画面などを表示制御する。
【0076】
なお、受験者のコーディング再生画面は、再生部114の制御により、ユーザインタフェース150としてのディスプレイに表示されてもよい。
【0077】
操作制御部214は、各画面に表示されたUI部品やキー入力に対するユーザの操作を受け付け、操作情報を処理装置20のアプリケーションに伝達したり、サーバ10に向けて出力したりする。例えば、操作制御部214は、本件サービスにおけるコーディング試験中のキー入力情報などをサーバ10に向けて出力したりする。
【0078】
<動作説明>
次に、情報処理システム1の各動作について説明する。
図8は、一実施形態に係る本件サービスに関する処理の一例を示すシーケンス図である。
図8に示す例では、各ユーザが利用する各処理装置20と、本件サービスを提供するサーバ10とが連携して処理を行う例である。また、
図8に示す例では、処理装置20Aは受験者の装置、処理装置20Bは閲覧者の装置とするが、閲覧者はサーバ(情報処理装置)10に接続されるディスプレイでコーディング内容を閲覧してもよい。
【0079】
ステップS102において、受験者が利用する処理装置20Aの操作制御部214は、コーディング試験中の受験者のキー入力を取得し、通信制御部212は、取得されたキー入力をサーバ10に出力する。
【0080】
ステップS104において、サーバ10の取得部112は、処理装置20Aから出力される受験者のキー入力をログ情報として取得する。例えば、取得部112は、処理装置20Aからリアルタイムにログ情報を取得する。
【0081】
ステップS106において、サーバ10の取得部112は、取得されたログ情報を記憶装置130に記憶する。
【0082】
ステップS108において、サーバ10の検知部113は、ログ情報に基づき、受験者のネガティブ評価に関する所定条件を満たすユーザ行動を検知する。このユーザ行動は、例えばコピーアンドペーストやフォーカスアウトを含む。なお、検知部113は、所定条件の判定について、ログ情報をリアルタイムで取得する際にリアルタイムで判定してもよいし、テストが終了した後にバッチ処理で判定してもよい。
【0083】
ステップS110において、サーバ10の検知部113は、所定条件を満たすユーザ行動が検知された場合は、ログ情報を更新する。例えば、更新方法として、検知部113は、抽出されたユーザ行動を示すキー入力を別のログファイルとして記録してもよいし、ログ情報に対して、抽出されたユーザ行動を示すキー入力を識別可能にしてもよい。
【0084】
ステップS112において、閲覧者が利用する処理装置20Bの操作制御部214は、閲覧者から閲覧リクエストを受け付けた場合、通信制御部212は、この閲覧リクエストをサーバ10に出力する。
【0085】
ステップS114において、サーバ10の取得部112は閲覧リクエストを取得すると、再生部114は、ログ情報を用いて受験者のキー入力の再生を制御する。例えば、再生部114は、検知された受験者のユーザ行動の再生タイミングを識別可能にして、再生に必要なログ情報を処理装置20Bに送信する。
【0086】
ステップS116において、閲覧者が利用する処理装置20Bの通信制御部212は、ログ情報を取得すると、表示制御部213は、取得されたログ情報に基づいて、検知された受験者のユーザ行動の再生タイミングを識別可能にして、受験者のコーディング内容を再生する。識別方法としては、例えば、再生画面のタイムラインにおいて、上述のユーザ行動の再生タイミングを識別可能にしたり、コーディングの再生画面の中で、上述のユーザ行動をハイライトしたりする方法がある。
【0087】
以上の情報処理システム1によれば、受験者のコーディングログの中から、評価に影響を与える部分を効率よく把握することを可能にすることができる。
【0088】
<画面例>
次に、情報処理システム1において表示される各画面の一例について説明する。
図9は、一実施形態に係る再生画面の一例を示す図である。
図9に示す再生画面D10は、例えば、画面下部のタイムラインにおいて、コピーアンドペーストタイミングがM10により識別され、フォーカスアウトタイミングがM12により識別され、それぞれの識別方法が異なっている例を示す。
【0089】
また、
図9に示す画面上部では、受験者のコーディング内容が再生(再現)されているが、タイムラインのM10に対応するコピーアンドペーストされた部分が太字となり枠で囲われて強調表示されている(H10)。
【0090】
以上の再生部114の処理により、閲覧者は、タイムライン上で、どこに注意しなければならないかを容易に把握することができ、さらに、注意すべきところ(M10、M12など)を何度も閲覧することが可能になる。さらに、再生画面上では、注意すべきキー入力について強調表示されるため、閲覧者は、コーディング内容の中で、どこに注意すべきかを容易に把握することが可能になる。また、再生時間S10を移動させることにより、閲覧者は自分が確認したいところで再生を開始することが可能になる。例えば、M10やM12の少し前に再生時間S10を移動させ、コピーアンドペースト部分や、フォーカスアウトした部分を確認することが可能になる。
【0091】
図10は、一実施形態に係る再生画面の他の例を示す図である。
図10に示す例では、
図9に示す画面から6秒経過した画面であり、受験者が新たに「complement_dictionary = {}」を入力したことが把握できる。
図10に示すように、受験者が入力した部分は強調表示されないため、画面上において、例えば、どこがコピーアンドペーストした部分で、どこが受験者の入力部分であるかが一意に識別できるようになる。
【0092】
以上、実施形態は、本開示技術を説明するための例示であり、本開示技術をその実施形態のみに限定する趣旨ではなく、本開示技術は、その要旨を逸脱しない限り、さまざまな変形が可能である。また、サーバ側、ユーザの処理装置側の各処理を適宜統合したり、他方の装置に処理を移行したり、別の装置に処理を移行したりしてもよい。
【0093】
<変形例>
上記実施形態では、コーディング試験に関するサービスについて説明したが、コーディング試験に限らず、オンラインで受験する試験にも同様に適用することが可能である。例えば、文字を入力するような論文式の試験などにも本開示技術を適用することが可能である。すなわち、取得部112は、ユーザが試験画面からキー入力したログに関するログ情報を取得し、検知部113が所定条件を満たすユーザ行動(例えば不正行為)を検知すればよい。
【0094】
また、本開示技術は、ネガティブ評価に関する所定条件以外にも、又は代わりにも、加点となるようなポジティブ評価に関する所定条件を満たすユーザ行動が検知部113により検知されるようにしてもよい。例えば、加点となるユーザ行動(キー入力)が、所定条件として事前に設定されていればよい。具体例として、検知部113は、ポジティブ評価に関する所定条件を満たすユーザ行動に対応するキー入力を抽出したログファイルを生成してもよい。また、再生部114は、ネガティブ評価に関するユーザ行動と、ポジティブ評価に関するユーザ行動とを識別可能に表示するように制御してもよい。具体例として、再生部114は、ネガティブのログファイルに関連付けられる強調表示の方法で、ネガティブ評価に関するキー入力を強調表示し、ポジティブのログファイルに関連付けられる強調表示の方法で、ポジティブ評価に関するキー入力を強調表示してもよい。
【符号の説明】
【0095】
1…情報処理システム、10…サーバ、20…処理装置、110…プロセッサ、130…記憶装置、111…サービス制御部、112…取得部、113…検知部、114…再生部、210…プロセッサ、211…サービス処理部、212…通信制御部、213…表示制御部、214…操作制御部、230…記憶装置、251…ディスプレイ