(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024082233
(43)【公開日】2024-06-19
(54)【発明の名称】情報処理装置
(51)【国際特許分類】
G09B 7/02 20060101AFI20240612BHJP
【FI】
G09B7/02
【審査請求】未請求
【請求項の数】2
【出願形態】OL
(21)【出願番号】P 2023174425
(22)【出願日】2023-10-06
(62)【分割の表示】P 2022195947の分割
【原出願日】2022-12-07
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
(71)【出願人】
【識別番号】522133255
【氏名又は名称】株式会社YASHIO
(74)【代理人】
【識別番号】110002103
【氏名又は名称】弁理士法人にじいろ特許事務所
(72)【発明者】
【氏名】正盛崇稔
(72)【発明者】
【氏名】伊神雄貴
(72)【発明者】
【氏名】中馬崇尋
【テーマコード(参考)】
2C028
【Fターム(参考)】
2C028AA10
2C028BA02
2C028BB04
2C028BC01
(57)【要約】
【課題】実際の開発現場で活躍できる人材の育成、発掘が望まれている。
【解決手段】
本開示の情報処理装置は、実行結果とソースコードとが含まれる出題ページを作成する作成部と、出題ページのデータをユーザ端末に送信する第1送信部と、ソースコードのうちユーザの指定箇所を特定する第1回答データをユーザ端末から受信する第1受信部と、第1回答データに従って、ソースコードの間違い箇所の正誤を判定する第1判定部と、第1判定部の判定結果が肯定的であるときに、複数のソースコード部分をユーザ端末に送信する第2送信部と、複数のソースコード部分のうち、ユーザが選択したソースコード部分を特定する第2回答データを、ユーザ端末から受信する第2受信部と、第2回答データに従って、間違い箇所を置き換えるソースコードの正誤を判定する第2判定部と、第2判定部の判定結果を、ユーザ端末に送信する第3送信部と、を具備する。
【選択図】
図19
【特許請求の範囲】
【請求項1】
ソースコードと、前記ソースコードに対応する実行結果と、前記ソースコードの一部分を置き換える候補となる複数のソースコード部分とを関連付けて記憶する記憶部と、
前記実行結果と、前記ソースコードとが含まれる出題ページを作成する作成部と、
前記出題ページのデータをユーザ端末に送信する第1送信部と、
前記ソースコードのうち、前記ユーザ端末を操作するユーザが指定した間違い箇所を特定する第1回答データを前記ユーザ端末から受信する第1受信部と、
前記第1回答データに従って、前記ソースコードの間違い箇所の正誤を判定する第1判定部と、
前記第1判定部の判定結果が肯定的であるときに、前記出題ページに前記複数のソースコード部分を表示させるために、前記複数のソースコード部分を前記ユーザ端末に送信する第2送信部と、
前記複数のソースコード部分のうち、前記ユーザ端末を操作するユーザが選択したソースコード部分を特定する第2回答データを、前記ユーザ端末から受信する第2受信部と、
前記第2回答データに従って、前記間違い箇所を置き換えるソースコードの正誤を判定する第2判定部と、
前記第2判定部の判定結果を、前記ユーザ端末に送信する第3送信部と、
を具備する情報処理装置。
【請求項2】
ソースコードと、前記ソースコードの作成に用いた資料と、前記ソースコードの一部分を置き換える候補となる複数のソースコード部分とを関連付けて記憶する記憶部と、
前記資料と前記ソースコードとが含まれる出題ページを作成する作成部と、
前記出題ページのデータをユーザ端末に送信する第1送信部と、
前記ソースコードのうち、前記ユーザ端末を操作するユーザが指定した間違い箇所を特定する第1回答データを前記ユーザ端末から受信する第1受信部と、
前記第1回答データに従って、前記ソースコードの間違い箇所の正誤を判定する第1判定部と、
前記第1判定部の判定結果が肯定的であるときに、前記出題ページに前記複数のソースコード部分を表示させるために、前記複数のソースコード部分を前記ユーザ端末に送信する第2送信部と、
前記複数のソースコード部分のうち、前記ユーザ端末を操作するユーザが選択したソースコード部分を特定する第2回答データを、前記ユーザ端末から受信する第2受信部と、
前記第2回答データに従って、前記間違い箇所を置き換えるソースコード部分の正誤を判定する第2判定部と、
前記第2判定部の判定結果を、前記ユーザ端末に送信する第3送信部と、
を具備する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置に関する。
【背景技術】
【0002】
近年、ホームページの作成、データベースの構築、社内インフラの整備等のために、プログラミングの技能を有するIT技術者が重宝されている。そのため、プログラミングの技能を習得しようと、プログラミングの専門学校に入学する学生や、プログラミングに関するオンライン授業を受講する受講者が増加している。例えば、インターネットなどのネットワークを介してオンラインで利用者に授業を行ったり、利用者に問題を出題して、その問題を解答させたりする技術が知られている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、専門学校やオンライン授業でプログラミングを学んだ人であっても、実際のプロダクトの開発現場で即戦力として活躍することは難しい。それは、そもそもプログラミングは抽象度が高いものであり、専門学校やオンライン授業で基礎学習を終えた時点では、プログラミングの知識を習得するに留まっており、その知識をどのように使えばいいのかが分からないためである。基礎学習で習得したプログラミングの知識を、実戦で使えるプログラミングの技能へと昇華させるためには、基礎学習とともに実戦経験を積むことが重要となるが、基礎学習と実戦経験とを何度も反復することは、教育現場の構造上難しく、実際の開発現場に委ねているのが現状である。一方で、実際の開発現場では、予算と時間とが限られている中で、基礎学習を終えただけの人材を採用して、実戦経験を積ませながらじっくり育成することは難しく、当然ながら、できるだけ即戦力で活躍できる人材を確保したいといった要望が多い。そのため、専門学校やオンライン授業で導入することが可能であって、実際の開発現場で活躍できる人材の育成することができる教育コンテンツの提供が望まれている。また、実際の開発現場で活躍できる人材であるかを測ることができるコンテンツの提供が望まれている。
【課題を解決するための手段】
【0005】
本発明の一実施形態に係る情報処理装置は、ソースコードと、ソースコードに対応する実行結果と、ソースコードの一部分を置き換える候補となる複数のソースコード部分とを関連付けて記憶する記憶部と、実行結果と、ソースコードとが含まれる出題ページを作成する作成部と、出題ページのデータをユーザ端末に送信する第1送信部と、ソースコードのうち、ユーザ端末を操作するユーザが指定した間違い箇所を特定する第1回答データをユーザ端末から受信する第1受信部と、第1回答データに従って、ソースコードの間違い箇所の正誤を判定する第1判定部と、第1判定部の判定結果が肯定的であるときに、出題ページに複数のソースコード部分を表示させるために、複数のソースコード部分をユーザ端末に送信する第2送信部と、複数のソースコード部分のうち、ユーザ端末を操作するユーザが選択したソースコード部分を特定する第2回答データを、ユーザ端末から受信する第2受信部と、第2回答データに従って、間違い箇所を置き換えるソースコードの正誤を判定する第2判定部と、第2判定部の判定結果を、ユーザ端末に送信する第3送信部と、を具備する。
本発明の一実施形態に係る情報処理装置は、ソースコードと、ソースコードの作成に用いた資料と、ソースコードの一部分を置き換える候補となる複数のソースコード部分とを関連付けて記憶する記憶部と、資料とソースコードとが含まれる出題ページを作成する作成部と、出題ページのデータをユーザ端末に送信する第1送信部と、ソースコードのうち、ユーザ端末を操作するユーザが指定した間違い箇所を特定する第1回答データをユーザ端末から受信する第1受信部と、第1回答データに従って、ソースコードの間違い箇所の正誤を判定する第1判定部と、第1判定部の判定結果が肯定的であるときに、出題ページに複数のソースコード部分を表示させるために、複数のソースコード部分をユーザ端末に送信する第2送信部と、複数のソースコード部分のうち、ユーザ端末を操作するユーザが選択したソースコード部分を特定する第2回答データを、ユーザ端末から受信する第2受信部と、第2回答データに従って、間違い箇所を置き換えるソースコード部分の正誤を判定する第2判定部と、第2判定部の判定結果を、ユーザ端末に送信する第3送信部と、を具備する。
【図面の簡単な説明】
【0006】
【
図1】
図1は、第1実施形態に係る情報処理装置を含む全体システムの一例を示す図である。
【
図2】
図2は、第1実施形態に係る情報処理装置のハードウェア構成図である。
【
図3】
図3は、
図2の記憶装置に記憶されている学習データベースの一例を示す図である。
【
図4】
図4は、
図2の記憶装置に記憶されている出題用Webページのテンプレートの一例を示す図である。
【
図5】
図5は、
図2の記憶装置に記憶されている不正解用Webページのテンプレートの一例を示す図である。
【
図6】
図6は、
図2の記憶装置に記憶されている正解用Webページのテンプレートの一例を示す図である。
【
図7】
図7は、第1実施形態に係る情報処理装置による学習サービスに係る出題処理の手順の一例を示すフローチャートである。
【
図8】
図8は、第1実施形態に係る情報処理装置により提供される学習サイトのトップページの一例を示す図である。
【
図9】
図9は、第1実施形態に係る情報処理装置により提供される学習サイトの出題用Webページにおいて選択肢1が選択されている状態を示す図である。
【
図10】
図10は、第1実施形態に係る情報処理装置により提供される学習サイトの出題用Webページにおいて選択肢2が選択されている状態を示す図である。
【
図11】
図11は、第1実施形態に係る情報処理装置により提供される学習サイトの出題用Webページにおいて選択肢3が選択されている状態を示す図である。
【
図12】
図12は、第1実施形態に係る情報処理装置により提供される学習サイトの正解用Webページの一例を示す図である。
【
図13】
図13は、第1実施形態に係る情報処理装置により提供される学習サイトの不正解用Webページの一例を示す図である。
【
図14】
図14は、
図2の記憶装置に記憶されている学習データベースの他の例を示す図である。
【
図15】
図15は、第2実施形態に係る情報処理装置の記憶装置に記憶されている学習データベースの一例を示す図である。
【
図16】
図16は、第3実施形態に係る情報処理装置の記憶装置に記憶されている学習データベースの一例を示す図である。
【
図17】
図17は、第3実施形態に係る情報処理装置による学習サービスに係る出題処理の手順の一例を示すフローチャートである。
【
図18】
図18は、第3実施形態に係る情報処理装置により提供される学習サイトの出題用Webページの一例を示す図である。
【
図19】
図19は、
図18の出題用Webページにおいて6行目のソースコード部分が選択された状態を示す図である。
【
図20】
図20は、
図18の出題用Webページにおいて選択肢として複数のソースコード部分が表示された状態を示す図である。
【発明を実施するための形態】
【0007】
以下、図面を参照しながら本実施形態に係る情報処理装置を説明する。以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【0008】
本実施形態に係る情報処理装置は、プログラミングの学習サービスをユーザに提供するために必要な各種機能を有するコンピュータ装置である。本実施形態に係る情報処理装置の1つの特徴は、プログラミングの学習サービスの中で、ユーザに提供されるプログラミングに関する問題(以下、単に問題と称する)が、実際のプロダクトの開発において必要とされる技能を習得できるように構成されている点にある。その詳細については後述する。
以下、問題の種類が異なる3つの実施形態について順次説明する。
【0009】
(第1実施形態)
図1に示すように、第1実施形態に係る情報処理装置10には、インターネット等のネットワーク90を介して、複数のユーザ端末30が接続される。ユーザ端末30は、パソコン、タブレット、スマートフォン等の一般的な情報処理端末により実現される。
【0010】
図2に示すように、情報処理装置10は、プロセッサ11に対して、RAM13、ROM15,通信装置19及び記憶装置17などのハードウェアが接続されて構成される。プロセッサ11は、CPU等により実現される。通信装置19は、任意の通信規格に準拠した通信モジュールにより実現され、プロセッサ11の制御に従って、ユーザ端末30との間で各種データを送受信する。記憶装置17は、HDD、SSD等により実現される。記憶装置17には、プログラミングの学習サービスに係るプログラム(以下、学習プログラムと称する)と、学習サービスで利用される各種データが記憶されている。学習サービスで利用される各種データは、学習データベースと、ユーザ端末30に表示させる各種Webページのテンプレートデータとを含む。各種Webページのテンプレートは、出題用Webページのテンプレート、不正解用Webページのテンプレート、正解用Webページのテンプレートを含む。
【0011】
学習プログラム、学習プログラムで使用される各種データ等の学習サービスの提供に必要なデータは、リムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介して情報処理装置10にダウンロードされることにより配布されてもよい。
【0012】
学習データベースは、ユーザに提供される問題をまとめたデータベースである。学習データベースは複数の問題からなる問題集毎に設けられる。
図3に示すように、学習データベースでは、問題を識別するための識別情報に対して、問題データ、選択肢データ、正誤フラグ、解説データ及び実行結果データが関連付けられている。典型的には、問題データは、実行結果を表す画像(実行結果画像)のデータにより提供される。選択肢データは、ソースコードを表す画像のデータ(ソースコード画像)により提供される。正誤フラグは、対応するソースコードが正解か否かを表す。例えば、正誤フラグ“1”は対応するソースコードが正解であることを示し、正誤フラグ“0”は対応するソースコードが不正解であることを示す。解説データは、解説画像のデータと解説用テキストのデータとを含む。解説画像は、対応するソースコード画像に、問題において正誤が問われていた箇所を特定するためのオブジェクト等の情報が書き込まれたものである。解説用テキストは、対応するソースコードが正解又は不正解である理由を説明するものである。実行結果データは、対応するソースコードの実行結果を表す画像のデータにより提供される。
【0013】
具体的には、識別情報“001”に対して、問題データ“実行結果画像001”と選択肢データ“複数のソースコード画像001A、001B、001C”とがそれぞれ関連付けられている。また、選択肢データ“ソースコード画像001A”に対して、正誤フラグ“0”、解説データ“解説画像001A、解説用テキスト001A”、及び実行結果データ“実行結果画像001A”が関連付けられている。
【0014】
なお、正解であるソースコードに対応する実行結果データは、問題データと同一のものとなる。例えば、識別情報“001”の問題では、問題データ”実行結果画像001”は、正誤フラグ“1”が関連付けられた実行結果データ“実行結果画像001B”と同一のものとなる。したがって、問題データは、複数のソースコードにそれぞれ対応する複数の実行結果のうち1つの実行結果のデータにより提供されてもよく、この場合、学習データベースにおいて、問題データを省略することができる。
【0015】
出題用Webページは、ユーザに出題する問題を表示する機能と、複数の選択肢を表示する機能と、複数の選択肢からユーザにより選択された1つの選択肢を回答結果として受け付ける機能とを有するWebページである。
【0016】
例えば、
図4に示すように、出題用Webページのテンプレート100は、複数のソースコード画像が嵌め込まれる第1エリア110と、問題データである実行結果画像が嵌め込まれる第2エリア130と、選択中のソースコード画像を示す複数のラジオボタン127、複数のソースコードのうち一のソースコードを回答結果としてユーザから受け付けるための回答ボタン140とを含む。
【0017】
典型的には、第1エリア110は、複数のソースコード画像がスライド形式にて1枚ずつ表示されるように構成される。具体的には、第1エリア110には、複数のソースコード画像のうち(n)番目(nは2以上の自然数とする)のソースコード画像の全体が表示されるエリア113と、(n―1)番目のソースコード画像の一部分が表示されるエリア111と、(n+1)番目のソースコード画像の一部分が表示されるエリア115とが含まれる。また、ソースコード画像の総数とともに選択中のソースコード画像を特定する情報を表示するためのエリア121と、選択中のソースコード画像を切り替えるための切り替えボタン123,125と、が含まれる。画像全体が表示されるエリア113に表示されているソースコード画像が選択中のソースコード画像に対応する。回答ボタン140に表記された“n”には、選択中のソースコード画像を特定するための番号が割り当てられる。エリア121に表記された”m”には、ソースコード画像の総数が割り当てられ、“n”には選択中のソースコード画像を特定するための番号が割り当てられる。例えば、切り替えボタン125をクリックすることで、選択中のソースコード画像を、(n)番目のソースコード画像から(n+1)番目のソースコード画像に切り替えることができる。回答ボタン140がクリックされると、クリックされたときに選択中のソースコード画像を特定する情報が回答データとして情報処理装置10に送信される。
【0018】
不正解用Webページは、出題用Webページにて出題された問題に対するユーザの回答が“不正解”であったときに表示され、ユーザの回答が“不正解”であったことを通知する機能と、問題の解説を表示する機能と、を有するWebページである。
【0019】
例えば、
図5に示すように、不正解用Webページのテンプレート200は、問題に対する回答としてユーザが選択したソースコードに対応する解説画像が割り当てられるエリア210と、ユーザが選択したソースコードの実行結果が割り当てられるエリア220と、正解のソースコードの実行結果が割り当てられるエリア230と、ユーザが選択したソースコードに対応する解説コメントが割り当てられるエリア240と、ユーザが次のアクションを入力するための複数のボタン251,253,255とを含む。ボタン251は、再度同じ問題に挑戦するためのボタンである。ボタン253は、次の問題に進むためのボタンである。ボタン255は、学習を終了するためのボタンである。
【0020】
正解用Webページは、出題用Webページにて出題された問題に対するユーザの回答が“正解”であったときに表示され、ユーザの回答が“正解”であったことを通知する機能と、問題の解説を表示する機能と、を有するWebページである。
【0021】
例えば、
図6に示すように、正解用Webページのテンプレート300は、問題に対する回答としてユーザが選択したソースコード画像が割り当てられるエリア310と、ユーザが選択したソースコードの実行結果が割り当てられるエリア320と、正解のソースコードの実行結果が割り当てられるエリア330と、ユーザが選択したソースコード画像に対応する解説コメントが割り当てられるエリア340と、ユーザが次のアクションを入力するための複数のボタン353,355とを含む。ボタン353は、次の問題に進むためのボタンである。ボタン355は、学習を終了するためのボタンである。
【0022】
第1実施形態に係る情報処理装置10は、学習プログラムがプロセッサにより実行されることで、ユーザ端末30にデータを送信する送信部、ユーザ端末30からデータを受信する受信部、ログイン処理を実行するログイン処理部、学習サービスに係る各種Webページを作成する作成部、ユーザの回答結果を判定する判定部として機能する。
【0023】
以下、
図7を参照して、第1実施形態に係る情報処理装置10により提供される学習サービスを説明する。学習サービスは、プログラミングに関する解説付き問題をユーザに提供するサービスである。
図7は、第1実施形態に係る情報処理装置10により提供される学習サービスに係る処理の手順の一例を示すフローチャートである。
【0024】
情報処理装置10は、ユーザ端末30から受信したユーザID,パスワードにより認証処理を実行する。認証処理に成功したユーザ端末30には、学習サービスを提供するサイト(学習サイト)のトップページ400が表示される(
図8参照)。
図8に示すように、トップページ400には、複数の問題集がそれぞれ対応する複数のボタン410,420,430とともに一覧表示されている。ユーザによりボタン410,420,430がクリックされたことに基づいて、学習する問題集を識別する識別情報を含む出題要求がユーザ端末30から情報処理装置10に送信される。
【0025】
図7に示すように、情報処理装置10は、出題要求を受信すると(S11)、識別情報に対応する問題集を特定し、特定した問題集の問題データベースを参照して、1問目の問題に対応する出題ファイルセット(問題データ、選択肢データ、正誤フラグ、解説データ、実行結果データ)を読み出す(S12)。そして、情報処理装置10は、
図4に示した出題用Webページのテンプレート100に、問題データ、選択肢データを嵌め込んだ出題用Webページ190を作成し(S13)、作成した出題用Webページ190のデータをユーザ端末30に送信する(S14)。
【0026】
図7に示すように、情報処理装置10は、ユーザ端末30から回答データを受信すると(S15)、回答データに従って、問題の正誤を判定する(S16)。例えば、情報処理装置10は、ユーザが選択したソースコード画像に対応する正誤フラグを参照して、正誤フラグが“0”であれば、ユーザの回答が不正解であると判定し、正誤フラグが“1”であれば、ユーザの回答が正解であると判定する。
【0027】
例えば、
図3に示す問題データベースにおける識別情報“001”に対応する問題が出題される場合、工程S13の処理により、ソースコード画像001A,001B,001Cを
図4に示す出題用Webページのテンプレート100のエリア111、112,113にそれぞれ嵌め込み、実行結果画像001を第2エリア130に嵌め込み、エリア121の”m”に選択肢の総数“3”を、“n”に選択中のソースコードを特定するための番号を記述することにより、
図9乃至
図11に示す出題用Webページ190が作成され、工程S14の処理によりユーザ端末30に表示される。
図9、
図10,
図11は、ユーザによりソースコード画像001A、001B,001Cがそれぞれ選択されている状態を示している。例えば、
図9に示す出題用Webページ190において、回答ボタン140がクリックされると、ソースコード画像001Aを特定する情報を含む回答データがユーザ端末30から情報処理装置10に送信される。情報処理装置10は、回答データに対応する正誤フラグが“0”であることに基づいて、ユーザの回答が不正解であると判定する。
【0028】
ユーザの回答が正解であるとき(S17;Yes)、正解用Webページのテンプレート300のデータ、問題データ、解説データ、及び実行結果データに基づいて正解用Webページ390を作成し(S18)、作成した正解用Webページ390のデータをユーザ端末30に送信する(S19)。そして、情報処理装置10は、ユーザ端末30からの次のアクションに関する指示を待機する(S20;No,S21;No)。情報処理装置10は、次の問題に進む指示を受信したとき(S20;Yes)、工程12に処理を戻し、次の問題を出題する。一方、情報処理装置10は、問題の終了の指示を受信したとき(S21;Yes)、問題の出題を終了する。
【0029】
例えば、
図3に示す問題データベースにおける識別情報“001”を含む問題が出題され、ユーザが選択したソースコード画像がソースコード画像001Bであるとき、情報処理装置10は、工程S17の処理により、ユーザの回答が正解であると判定し、工程S18の処理により、正解用Webページのテンプレート300のエリア310に解説画像001Bを嵌め込み、エリア320に実行結果画像001Bを嵌め込み、エリア330に実行結果画像001を嵌め込み、エリア340に解説用テキスト001Bを嵌め込むことにより、
図12に示す正解用Webページ390が作成され、工程S19の処理により、ユーザ端末30に表示される。ユーザ端末30に表示された正解用Webページ390において、“次へ”ボタン353がクリックされると次の問題に対応する出題用Webページが表示され、“終了”ボタン355がクリックされるとトップページ400が表示される。
【0030】
ユーザの回答が不正解であるとき(S17;No)、不正解用Webページのテンプレート200のデータ、問題データ、解説データ、及び実行結果データに基づいて不正解用Webページ290を作成し(S22)、作成した不正解用Webページ290のデータをユーザ端末30に送信する(S23)。そして、情報処理装置10は、ユーザ端末30からの次のアクションに関する指示を待機する(S24;No,S25;No、S26;No)。情報処理装置10は、再挑戦する指示を受信したとき(S24;Yes)、工程S13に処理を戻し、再び同じ問題をユーザに出題する。情報処理装置10は、次の問題に進む指示を受信したとき(S25;Yes)、工程12に処理を戻し、次の問題を出題する。情報処理装置10は、問題の終了の指示を受信したとき(S26;Yes)、問題の出題を終了する。
【0031】
例えば、
図3に示す問題データベースにおける識別情報“001”を含む問題が出題され、ユーザが選択したソースコード画像がソースコード画像001Aであるとき、情報処理装置10は、工程S17の処理により、ユーザの回答が“不正解”であると判定し、工程S22の処理により、不正解用Webページのテンプレート200のエリア210に解説画像001Aを嵌め込み、エリア220に実行結果画像001Aを嵌め込み、エリア230に実行結果画像001を嵌め込み、エリア240に解説用テキスト001Aを嵌め込むことにより、
図13に示す不正解用Webページ290が作成され、工程S23の処理により、ユーザ端末30に表示される。ユーザ端末30に表示された不正解用Webページ290において、“再挑戦”ボタン251がクリックされると、再度同じ問題に対応する出題用Webページが表示され、“次へ”ボタン253がクリックされると次の問題に対応する出題用Webページが表示され、“終了”ボタン255がクリックされるとトップページ400が表示される。
【0032】
第1実施形態に係る情報処理装置10によれば、実行結果と複数のソースコード画像とを含む出題用Webページをユーザ端末30に表示させることで、複数のソースコードから実行結果に対応するソースコードを選択させる問題をユーザに出題することができる。ソースコードの間違い箇所が不明であるため、ユーザは、問題を解くために、ソースコード各々を上から読み込み、ソースコード各々の実行結果を頭の中で組み立て、組み立てた実行結果が出題されている問題の実行結果と同一か否かを判断しなければならない。つまり、問題を通して、ユーザに対して半ば強制的に、ソースコード各々の全体を読み込ませることができる。このような問題を繰り返しユーザに解かせることで、実際の開発現場でも必要とされるソースコードを読む力、実行結果からソースコードを想像する力、ソースコードから実行結果を展開する力をユーザに自然につけさせることができ、実際の開発現場で活躍できる人材を育成することができる。
【0033】
また、実際の開発事例に沿って構成した問題であれば、実戦に近い経験をユーザに積ませることができる。例えば、1つのプロダクト(実行結果)に対して、実際に作成された正しいソースコードと、実際に作成された間違い箇所を含むソースコードとをユーザに読み込ませることで、当該プロダクトの開発過程で、どのような間違いが実際に発生するのかを、問題を通してユーザに疑似的に経験させることができる。
【0034】
この効果は、複数の実行結果からソースコードに対応する実行結果を選択させる問題では得られにくい。それは、複数の実行結果には、明確な差異が表れるため、その差異が表れるソースコード部分だけに注目してしまえば、ソースコードの全体を読み込まなくとも、正解となる実行結果を選択できてしまうからである。また、1つの実行結果に対して正しいソースコードと間違い箇所を含むソースコードとをユーザに読み込ませることができないため、問題を通して、実戦に近い経験をユーザに積ませることもできない。このように、第1実施形態で提供される、複数のソースコードから実行結果に対応するソースコードを選択させる問題は、複数の実行結果からソースコードに対応する実行結果を選択させる問題に対して、明確な優位性を有するものである。
【0035】
第1実施形態では、ソースコード各々の全体をユーザに読み込ませるために、画像全体が表示されるソースコード画像を1つに限定する工夫がなされている。それにより、ソースコード同士で比較することができないため、ソースコード同士の相違する箇所を探し出す作業となってしまう事態を回避することができる。ソースコード同士の相違する箇所を探し出す作業とさせないために、選択肢である複数のソースコード画像の数は3つ以上であることが望ましい。
【0036】
また、第1実施形態では、ソースコード同士の比較等の目的のためにソースコードのテキストが簡単にコピーできないように、ソースコードがテキストではなく画像として提供する工夫がなされている。これも、第1実施形態に係る情報処理装置10の1つの特徴である。
【0037】
第1実施形態では、複数のソースコード画像を択一的に表示するためにスライド形式を採用したが、複数のソースコード画像を択一的に表示できるのであれば、その表示形式はこれに限定されない。例えば、複数のソースコード画像にそれぞれ対応する複数のラジオボタンを設け、複数のラジオボタンの選択操作により、画像全体を表示するソースコード画像を切り替えるようにしてもよい。
【0038】
なお、複数のソースコード画像を択一的に表示するとは、複数のソースコード画像のうち一のソースコード画像だけを、その全体をユーザが閲覧できるように表示することをいう。これは、二つのソースコード画像を比較できないように表示することを意図したものである。したがって、一のソースコード画像だけを表示してもよいし、一のソースコード画像の全体を表示した上で他のソースコード画像を部分的に表示してもよい。
図10に示すように、ソースコード画像001Bだけを、その全体をユーザが閲覧できるように表示し、他のソースコード画像001A、001Cをその全体をユーザが閲覧できないように、その一部分だけを表示することを含む。ソースコード画像の全体を閲覧できるように表示するとは、スクロール操作などのユーザ操作により、結果としてソースコード画像の全体を閲覧できるように表示することを含む。
【0039】
ソースコード画像は、実行結果を展開するソースコードの全体を表す画像であってもよいし、実行結果を展開するソースコードの一部分を表す画像であってもよい。
【0040】
第1実施形態では、ソースコード同士を比較できないように、出題用Webページには複数のソースコード画像が択一的に表示される。しかしながら、ソースコード同士の比較を許容するのであれば、出題用Webページに複数のソースコード画像のうち少なくとも2つのソースコード画像の全体が表示されてもよく、また、全てのソースコード画像の全体を一覧表示してもよい。
【0041】
第1実施形態で提供される問題の回答形式は、複数のソースコードから一つのソースコードを選択させる、いわゆる択一形式であった。しかしながら、回答形式は択一式に限定されることはなく、複数のソースコードから任意の数のソースコードを選択させる、いわゆる多肢選択形式であってもよい。多肢選択形式を採用する場合、記述は異なるが、出題されている問題と同一の実行結果を展開する少なくとも二つのソースコードが選択肢である複数のソースコードの中に含まれるように構成される。
【0042】
また、記述は異なるが、出題されている問題(実行結果)と同一の実行結果を展開する少なくとも二つのソースコードが複数のソースコードの中に含まれるように構成した上で、拡張性、メンテナンス性等の観点から、最適な一つのソースコードをユーザに選択させる問題としてもよい。例えば、変数を定義せずに数値をそのまま使用しているソースコードと、変数を定義しているソースコードとがあって、これら2つのソースコードが出題されている問題と同じ実行結果を展開する場合、メンテナンス性、拡張性の観点から変数を定義しているソースコードを最適解とすることができる。
【0043】
さらに、複数のソースコードの全てを、記述は異なるが出題されている問題と同一の実行結果を展開するように構成した上で、拡張性、メンテナンス性等の観点から、複数のソースコード各々をユーザに順位付けさせる問題としてもよい。この場合、
図3で説明した学習データベースにおける正誤フラグは、
図14に示すように、順位に置き換えられる。
図14に示す学習データベースにおいて、番号”1”、”2”、”3”は順位付けを表しており、番号”1”に対応するソースコード画像001Aが最適解であることを示している。
【0044】
第1実施形態では、実行結果だけを提示して複数のソースコードから1つのソースコードをユーザに選択させる問題であった。しかしながら、ソースコードを作成するために必要な仕様書、要件定義書、デザインファイル、及びAPIドキュメント等の補助資料を実行結果とともに提示してもよい。つまり、出題用Webページには、実行結果とともに補助資料が表示されてもよい。
【0045】
第1実施形態では、問題データ及び実行結果データは実行結果を表す画像であったが、実行結果を表すものであれば、画像に限定されることはなく、動画等であってもよい。実行結果がエラーであれば、エラー画像であってもよい。
【0046】
第1実施形態に係る情報処理装置10により提供可能な問題は、学習用だけではなく、採用試験やプログラミングの技能検定にも用いることができる。第1実施形態に係る情報処理装置10により提供可能な問題を、採用試験に用いることにより、採用候補者が実際の開発現場で活躍するために必要なプログラミングの技能を有する者であるかを定量的に評価し、採用するか否かの判断材料とすることができる。つまり、複数の採用候補者から実際に活躍する人材を発掘することができる。また、第1実施形態に係る情報処理装置10により提供可能な問題を、プログラミングの技能検定に用いることにより、実際の開発現場で活躍するために必要なプログラミングの技能の程度を被検定者毎に測ることができる。
【0047】
なお、第1実施形態に係る情報処理装置10により提供可能な問題を、採用試験やプログラミングの技能検定で用いる場合、解説することは必須ではないため、正解用Webページ及び不正解Webページの提供を省略することができる。
図3で示した学習データベースにおいても、解説データ、実行結果データを省略することができる。正誤フラグを点数としてもよい。
【0048】
第1実施形態では、学習サービスがWebブラウザ上で動作するWebアプリケーションとして提供されるものとして説明したが、学習サービスに係る問題をユーザに提供できるのであれば、その提供形態はWebアプリケーションに限定されない。例えば、第1実施形態に係る学習サービスは、スマートフォン、タブレット等にインストールされているOSの専用のネイティブアプリケーションとして提供されてもよい。したがって、第1実施形態に係る学習サービスで提供可能な問題は、ネイティブアプリケーションを構成するアプリケーションページに記述されて提供されてもよい。
【0049】
第1実施形態に係る学習サービスで提供される問題は選択式であるため、文字、数字、記号の入力に手間のかかるスマートフォンなどの携帯型情報処理端末用の学習サービスの問題として好適に利用することができる。従来のスマートフォン用のプログラミング問題でも、手軽に操作できるように選択式の問題が提供されていたが、提供される問題は、用語を問う問題、間違い箇所を見つける問題、穴埋め問題などの知識力を問う問題だけであった。第1実施形態に係る学習サービスによれば、スマートフォンを利用して簡単な操作で学習可能としながらも、実行結果からソースコードを想像する力、ソースコードからその実行結果を頭の中で組み立てる力などの実際の開発現場で必要となる力を身に着けさせることができる問題をユーザに提供することができる。
【0050】
(第2実施形態)
第1実施形態で提供される問題は、複数のソースコードから実行結果を展開する1つのソースコードをユーザに選択させる問題であった。しかしながら、複数のソースコードからソースコードの作成に用いる資料の要求を満たす1つのソースコードをユーザに選択させる問題であってもよい。以下、第2実施形態に係る情報処理装置40を説明する。第2実施形態に係る情報処理装置40は、第1実施形態に係る情報処理装置10と提供する問題が異なるだけであるため、ハードウェア構成等は第1実施形態と同様であるためその説明は省略する。
【0051】
第2実施形態に係る情報処理装置40は、
図15に示す学習データベースを記憶する。
図15は、第2実施形態に係る情報処理装置40に記憶されている学習データベースの一例を示している。
図15に示すように、学習データベースでは、問題を識別するための識別情報に対して、問題データ、選択肢データ、正誤フラグ、及び解説データが関連付けられている。第2実施形態において、問題データは、ソースコードの作成に必要な資料を表す画像のデータにより提供される。
【0052】
なお、第2実施形態において「資料」とは、ソースコードの作成に用いることができる任意の資料とすることができる。具体的には、資料は、クライアントの要求事項をまとめた要求仕様書、要求仕様書の内容を実現するためにシステムに必要な機能やその機能を実装する方法をまとめた要件定義書、Webページ等を構成する種々の素材、テキスト、色情報、配置等を規定したデザインファイル、Javaにおいてjavadocコメントを集成したパッケージやインターフェース、クラスなどをHTML形式で規定したAPIドキュメント等を含むものとして定義される。
【0053】
したがって、問題データは、要求仕様書を表す画像(要求仕様書画像)、要件定義書を表す画像(要件定義書画像)、デザインファイルを表す画像(デザインファイル画像)、APIドキュメントを表す画像(APIドキュメント画像)により提供される。
【0054】
第2実施形態に係る情報処理装置40によれば、ソースコードの作成に必要な資料と複数のソースコード画像とを含む出題用Webページをユーザ端末30に表示させることで、複数のソースコードから資料に沿って作成され、資料の要求を満たすソースコードを選択させる問題をユーザに出題することができる。ユーザは、問題を解くために、ソースコード各々を上から読み込み、ソースコード各々が資料に沿って作成されたものであるかを判断しなければならない。つまり、問題を通して、ユーザに対して半ば強制的に、ソースコード各々の全体を読み込ませることができるため、このような問題を繰り返しユーザに解かせることで、ソースコードを読む力を自然に付けさせることができる。また、実際の開発現場でも、与えられた資料に沿ってソースコードが作成されるため、問題の解法を通して、実戦に近い経験をユーザに積ませることができる。例えば、1つの要求仕様書に対して、実際に作成された正しいソースコードと、実際に作成された間違い箇所を含むソースコードとをユーザに読み込ませることで、当該要求仕様書に基づくプロダクトの開発過程で、どのような間違いが実際に発生するのかを、問題を通してユーザに疑似的に経験させることができる。このように、第2実施形態に係る情報処理装置40により提供可能な問題をユーザに解かせることで、ソースコードの作成の指針となる資料からソースコードを作成する力などを身に着けさせ、実際の開発現場で活躍できる人材を育成することができる。
【0055】
この効果は、複数の資料からソースコードの作成に用いた資料を選択させる問題では得られにくい。それは、複数の資料には、明確な差異が表れるため、その差異が表れるソースコード部分だけに注目してしまえば、ソースコードの全体を読み込まなくとも、正解となる資料を選択できてしまうからである。また、実際の開発現場において、与えられた資料に基づいてソースコードを想像したり、作成したりといった作業は行われるが、ソースコードに基づいて資料を想像したり、作成したりといった作業を行うことはないことから、複数の資料からソースコードに対応する資料を選択させる問題をユーザに解かせることは大きな意味をなさない。
【0056】
このように、第2実施形態に係る情報処理装置40により提供される、複数のソースコードから資料に沿ったソースコードを選択させる問題は、複数の資料からソースコードに対応する資料を選択させる問題に対して、明確な優位性を有するものである。
【0057】
(第3実施形態)
第3実施形態に係る情報処理装置50によりユーザに提供される問題は、第1,第2実施形態のように、複数のソースコードから適切なソースコードをユーザに選択させるものではなく、ソースコードの間違い箇所をユーザに訂正させるものである。以下、第3実施形態に係る情報処理装置50を説明する。第3実施形態に係る情報処理装置50は、第1実施形態に係る情報処理装置10と提供する問題が異なるだけであるため、ハードウェア構成等は第1実施形態と同様であるためその説明は省略する。
【0058】
第3実施形態に係る情報処理装置50は、
図16に示す学習データベースを記憶する。
図16は、第3実施形態に係る情報処理装置50に記憶されている学習データベースの一例を示している。
図16に示すように、学習データベースでは、問題を識別するための識別情報に対して、問題データ、ソースコードデータ、間違い箇所、選択肢データ、正誤フラグ、及び解説データが関連付けられている。問題データは、実行結果を表す画像(実行結果画像)のデータにより提供される。ソースコードデータは、問題データである実行結果を展開するソースコードのテキストデータにより提供される。間違い箇所は、ソースコードにおける間違い箇所を特定するための情報である。選択肢データは、複数のソースコード部分により提供される。ソースコード部分は、ソースコードの間違い箇所である一部分を置き換えるための候補である。
【0059】
以下、
図17を参照して、第3実施形態に係る情報処理装置50による学習サービスに係る出題処理の手順を説明する。なお、
図17に示す第3実施形態に係る情報処理装置50による出題処理と、
図7に示す第1実施形態に係る情報処理装置10による出題処理とは、共通する工程が多くある。そのため、ここでは、
図7との差異部分を中心に説明する。
【0060】
図17に示すように、情報処理装置50は、出題要求を受信すると(S31)、識別情報に対応する問題集を特定し、特定した問題集の問題データベースを参照して、1問目の問題に対応する出題ファイルセット(問題データ、ソースコードデータ、間違い箇所、選択肢データ、正誤フラグ、解説データ)を読み出す(S32)。そして、情報処理装置50は、出題用Webページのテンプレート500に、問題データ、選択肢データを嵌め込んだ出題用Webページ590を作成し(S33)、作成した出題用Webページ590のデータをユーザ端末30に送信する(S34)。
【0061】
例えば、
図16に示す問題データベースにおける識別情報“001”を含む問題を出題する場合、工程S33の処理により、ソースコードデータ001をテンプレート500のエリア511に嵌め込み、実行結果画像001をエリア530に嵌め込むことにより、
図18に示す出題用Webページ590が作成され、工程S34の処理によりユーザ端末30に表示される。例えば、
図18に示すように、出題用Webページ590に表示されたソースコードのソースコード部分がカーソル600により選択されると、ユーザが選択したソースコード部分を特定する情報を含む第1回答データがユーザ端末30に送信される。
【0062】
情報処理装置50は、ユーザ端末30から第1回答データを受信すると(S35)、第1回答データに従って、間違い箇所の正誤を判定する(S36)。例えば、情報処理装置50は、学習データベースの間違い箇所を示す行数と、ユーザが選択したソースコード部分の行数とが一致していれば、ユーザの回答が正解であると判定し、一致していなければ、ユーザの回答が不正解であると判定する。
【0063】
情報処理装置50は、ユーザによる第1回答が正解になるまで待機し(S37;No)、正解となったことを契機に(S37;Yes)、選択肢データとして複数のソースコード部分のデータをユーザ端末30に送信する(S38)。工程S38の処理により、ユーザ端末30には、
図19に示すように、選択肢データとして複数のソースコード部分を記述したエリア550が出題用Webページ590に表示される。例えば、
図20に示すように、出題用Webページ590において、複数のソースコード部分001A,001B,001Cからソースコード部分001Cが選択され、回答ボタン540がクリックされると、ソースコード部分001Cを特定する情報を含む第2回答データがユーザ端末30から情報処理装置50に送信される。
【0064】
情報処理装置50は、ユーザ端末30から第2回答データを受信すると(S39)、第2回答データに従って、ソースコード部分の正誤を判定する(S40)。例えば、情報処理装置50は、ユーザが選択したソースコード部分に対応する正誤フラグを参照して、正誤フラグが“0”であれば、ユーザの回答が不正解であると判定し、正誤フラグが“1”であれば、ユーザの回答が正解であると判定する。ソースコード部分の判定処理以降の工程S41乃至工程S50は、
図7の工程S17乃至工程S26にそれぞれ対応するため、説明を省略する。
【0065】
第3実施形態に係る情報処理装置50によれば、実行結果とソースコードと複数のソースコード部分とを含む出題用Webページをユーザ端末30に表示させることで、実行結果を展開するソースコードの間違い箇所を指摘させ、さらに、その間違い箇所を置き換えるソースコード部分を複数のソースコード部分から選択させる問題をユーザに出題することができる。ユーザは、問題を解くために、ソースコードを上から読み込み、ソースコードの実行結果を頭の中で組み立て、ソースコードの間違い箇所を見つけなければならない。つまり、問題を通して、ユーザに対して半ば強制的に、ソースコード各々の全体を読み込ませることができるため、このような問題を繰り返しユーザに解かせることで、ソースコードを読む力をつけさせることができる。また、見つけた間違い箇所を直すためのソースコード部分を複数のソースコード部分から選択しなければならない。実際の開発現場でも、ソースコードの中から間違い箇所を見つけて、訂正する作業は繰り返し実行される。このように、実際の開発現場でも実施される作業を、問題を通してユーザに経験させることができる。このように、第3実施形態に係る情報処理装置50により提供可能な問題を解かせることで、実際の開発現場で活躍できる人材を育成することができる。
【0066】
本開示の実施形態について詳述したが、本開示は上述した個々の実施形態に限定されるものではない。これらの実施形態は、発明の要旨を逸脱しない範囲で、または、特許請求の範囲に記載された内容とその均等物から導き出される本発明の思想および趣旨を逸脱しない範囲で、種々の追加、置き換え、変更、部分的削除等が可能である。例えば、上述した実施形態において、各動作の順序や各処理の順序は、一例として示したものであり、これらに限定されるものではない。また、上述した実施形態の説明に数値又は数式が用いられている場合も同様である。
【符号の説明】
【0067】
10…情報処理装置、11…プロセッサ、13…RAM、15…ROM,17…記憶装置、19…通信装置、30…ユーザ端末、90…ネットワーク。