(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-29
(45)【発行日】2023-09-06
(54)【発明の名称】プログラミング学習支援システム及びプログラミング学習支援方法
(51)【国際特許分類】
G09B 5/14 20060101AFI20230830BHJP
G06Q 50/20 20120101ALI20230830BHJP
【FI】
G09B5/14
G06Q50/20
(21)【出願番号】P 2019176778
(22)【出願日】2019-09-27
【審査請求日】2022-07-01
(73)【特許権者】
【識別番号】500033117
【氏名又は名称】株式会社MIXI
(74)【代理人】
【識別番号】100152984
【氏名又は名称】伊東 秀明
(74)【代理人】
【識別番号】100149401
【氏名又は名称】上西 浩史
(72)【発明者】
【氏名】田那辺 輝
【審査官】岸 智史
(56)【参考文献】
【文献】特開2006-227218(JP,A)
【文献】特開2019-056967(JP,A)
【文献】特開2017-219718(JP,A)
【文献】米国特許出願公開第2015/0269856(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G09B 1/00-9/56
G09B 17/00-19/26
G06Q 50/20
(57)【特許請求の範囲】
【請求項1】
互いに通信可能な第一端末及び第二端末を有し、
前記第一端末と前記第二端末とはサーバを介さずに直接通信し、
前記第一端末は、
前記第一端末を利用する学習者による編集操作を受け付ける第一端末側操作受付部と、
前記第一端末側操作受付部が受け付けた前記編集操作に従って編集されたプログラムコードを含むプログラム編集画面を表示する第一端末側表示部と、
前記第二端末から情報取得要求を受け付けた場合、前記学習者に通知せずに、前記プログラムコードを示すデータ、及び、前記プログラムコードの実行結果を示すデータの少なくとも一つのデータを前記第二端末に向けて送信する第一端末側送信部と、
を有し、
前記第二端末は、
前記第一端末側送信部が送信した前記少なくとも一つのデータに基づく情報を取得する第二端末側取得部と、
前記第二端末を利用する確認者に対して、前記第二端末側取得部が取得した前記情報を報知する第二端末側報知部と、
を有するプログラミング学習支援システム。
【請求項2】
前記第一端末は、前記少なくとも一つのデータを所定の記憶条件に基づいて記憶する第一端末側記憶部をさらに有し、
前記第一端末側送信部は、前記第一端末側記憶部に記憶されたデータのうち少なくとも一つを、前記第二端末に向けて送信する、請求項1に記載のプログラミング学習支援システム。
【請求項3】
前記第二端末側取得部が前記第一端末から取得する前記少なくとも一つのデータに基づく情報は、前記第一端末側記憶部により記憶された前記少なくとも一つのデータのうち最新のデータに基づく情報である、請求項2に記載のプログラミング学習支援システム。
【請求項4】
前記第二端末は、
前記確認者による編集操作を受け付ける第二端末側操作受付部と、
前記第二端末側操作受付部が受け付けた前記編集操作に従って編集された第二プログラムコードを含むプログラム編集画面を表示する第二端末側表示部と、
前記第二プログラムコードを示す第二データ、及び、前記第二プログラムコードの実行結果を示す第二データの少なくとも一つの第二データを前記第一端末に向けて送信する第二端末側送信部と、
前記第一端末は、
前記第二端末側送信部が送信した前記少なくとも一つの第二データに基づく第二情報を取得する第一端末側取得部と、
前記学習者に対して、前記第一端末側取得部が取得した前記第二情報を報知する第一端末側報知部と、
をさらに有する、請求項1乃至3のいずれか1項に記載のプログラミング学習支援システム。
【請求項5】
前記第一端末側報知部により報知される前記第二情報は、前記第二プログラムコードを示す第二データを含まない、請求項4に記載のプログラミング学習支援システム。
【請求項6】
前記第二端末側送信部は、前記プログラムコード中にエラーが有る場合に、前記第一端末に対して、前記少なくとも一つの第二データを送信する、請求項4又は5に記載のプログラミング学習支援システム。
【請求項7】
前記第一端末は、前記プログラム編集画面の表示とともに、前記第二情報の報知を行う、請求項4乃至6のいずれか1項に記載のプログラミング学習支援システム。
【請求項8】
前記第一端末は、プログラムコードの実行対象を、前記プログラム編集画面に表示される前記プログラムコードと、前記第二情報に含まれる前記第二プログラムコードとの間で切り替え可能とする、請求項4乃至6のいずれか1項に記載のプログラミング学習支援システム。
【請求項9】
前記第二端末は、
前記学習者の学習状況を示す学習者情報を管理する第二端末側管理部をさらに有し、
前記第一端末側送信部は、前記プログラムコードの実行結果が所定の更新条件を満たした場合に前記学習者情報を更新する更新データを前記第二端末に向けて送信し、
前記第二端末側管理部は、前記第二端末が前記更新データを受信したときに前記学習者情報を更新し、
前記第二端末側報知部は、前記学習者情報が更新された際に前記学習者情報を報知する、請求項1乃至8のいずれか1項に記載のプログラミング学習支援システム。
【請求項10】
前記第二端末は、
前記学習者の学習状況を示す学習者情報を管理する第二端末側管理部をさらに有し、
前記第一端末側操作受付部は、前記学習者による学習開始操作を受け付け、
前記第一端末側送信部は、前記第一端末側操作受付部が前記学習開始操作を受け付けると、学習開始連絡データを前記第二端末に向けて送信し、
前記第二端末側管理部は、前記第二端末が前記学習開始連絡データを受信したときに前記学習者情報を学習中と設定し、
前記第二端末側報知部は、前記確認者に対して、前記学習者情報が学習中に設定された際に前記学習者情報を報知する、請求項1乃至8のいずれか1項に記載のプログラミング学習支援システム。
【請求項11】
前記第二端末は、前記第一端末が複数存在する場合に、複数の前記第一端末の中から前記第一端末を選択する第二端末側選択部をさらに有し、
前記第二端末側取得部は、前記第二端末側選択部により選択された前記第一端末の前記第一端末側送信部が送信した前記少なくとも一つのデータに基づく情報を取得する、請求項1乃至10のいずれか1項に記載のプログラミング学習支援システム。
【請求項12】
前記プログラム編集画面には、それぞれがコード文字列と対応付けられた1又は複数のコード入力用ブロックを表示し、
前記第一端末側操作受付部は、前記コード入力用ブロックに対する選択操作を受け付け、
前記第一端末側表示部は、選択された前記コード入力用ブロックに対応するコード文字列を前記プログラム編集画面に入力して表示する、請求項1乃至11のいずれか1項に記載のプログラミング学習支援システム。
【請求項13】
前記プログラムは、図形描画プログラムであり、
前記プログラム編集画面には、図形描画エリアと前記図形描画エリア内を移動可能なカーソルとを表示し、
前記第一端末側操作受付部は、前記カーソルの移動操作と、前記カーソルの表示位置に基づく位置指定操作と、を受け付け、
前記第一端末側表示部は、前記位置指定操作が行われたときのカーソル表示位置に応じた前記図形描画エリア内の座標位置を前記プログラム編集画面に入力して表示する、請求項1乃至11のいずれか1項に記載のプログラミング学習支援システム。
【請求項14】
互いに通信可能な第一端末及び第二端末を用いたプログラミング学習支援方法であって、
前記第一端末と前記第二端末とはサーバを介さずに直接通信し、
前記第一端末が、前記第一端末を利用する学習者による編集操作を受け付け、
前記第一端末が、前記編集操作に従って編集されたプログラムコードを含むプログラム編集画面を表示させ、
前記第一端末が、前記第二端末から情報取得要求を受け付けた場合、前記学習者に通知せずに、前記プログラムコードを示すデータ、及び、前記プログラムコードの実行結果を示すデータの少なくとも一つのデータを前記第二端末に向けて送信し、
前記第二端末が、前記第一端末から送信された前記少なくとも一つのデータに基づく情報を取得し、
前記第二端末が、前記第二端末を利用する確認者に対して、前記プログラムコードを示すデータ、及び、前記プログラムコードの実行結果を示すデータの少なくとも一つのデータに基づく情報を報知する、
プログラミング学習支援方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラミング学習支援システム及びプログラミング学習支援方法に関する。
【背景技術】
【0002】
従来から、インターネット等の情報通信回線を利用して教育コンテンツ等の送受信を行う、双方向通信化された学習支援システムが実用化されている。
【0003】
例えば、特許文献1には、教師用コンピュータに校内LANを介して接続された生徒用コンピュータに、授業コンテンツを表示するコンテンツ表示領域と、このコンテンツ表示領域を通して教師の授業を受ける先生モード又は授業コンテンツに関連して生徒が自発学習を進める生徒モードに切り替えるモード切替手段を有する操作領域とを備えた、学習支援システムが開示されている。
【0004】
また、特許文献2には、特定の生徒のアカウントについてログインを検出し、授業の時間割情報を参照して、ログインがなされた日の特定の生徒の時間割に含まれ、未開始の授業に対応付けて登録された電子データを特定し、特定した未開始の授業に対応付けて登録された電子データを送信する、送信制御システムが開示されている。
【0005】
さらに、特許文献3には、教材の管理データとコンテンツデータとを含む教材データをサーバからダウンロードして再生するクライアント端末が、設定された時刻以後に、管理データとコンテンツデータとを結合して再生用教材データを生成する、学習システムが開示されている。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2001-350398号公報
【文献】特開2016-015091号公報
【文献】特開2013-246384号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上記のような双方向通信化された学習支援システムにおいては、教科書をベースに授業を行う場合、オンライン上で、教員から学習者に質問を投げかけたり、学習者から質問を受け付けたりすることにより、教員は、学習者の進捗や理解度を把握することができる。
しかしながら、近年注目されているプログラミング教育の分野では、それぞれの学習者が自らの端末環境でプログラミング作業を行うことに集中することが多い。そのため、プログラミング教育の分野では、双方向通信化された学習支援システムを利用したとしても、教員と学習者との間でのインタラクティブなやり取りが発生することが少なくなり、教員等の確認者にとっては、各学習者の進捗や理解度を把握することが困難となる。特に、学習者の集中を妨げずに、学習者がどこで躓いているか等を把握することも困難であるため、学習者にとっても学習効率が悪い。
【0008】
そこで、本発明は、確認者にとっては、学習者の進捗状況等を把握することができ、学習者にとっては、学習効率を向上させることができる、プログラミング学習支援システム及びプログラミング学習支援方法を提供することを課題とする。
【課題を解決するための手段】
【0009】
本発明の一態様に係るプログラミング学習支援システムは、互いに通信可能な第一端末及び第二端末を有し、前記第一端末は、前記第一端末を利用する学習者による編集操作を受け付ける第一端末側操作受付部と、前記第一端末側操作受付部が受け付けた前記編集操作に従って編集されたプログラムコードを含むプログラム編集画面を表示する第一端末側表示部と、前記プログラムコードを示すデータ、及び、前記プログラムコードの実行結果を示すデータの少なくとも一つのデータを前記第二端末に向けて送信する第一端末側送信部と、前記第二端末は、前記第一端末側送信部が送信した前記少なくとも一つのデータに基づく情報を取得する第二端末側取得部と、前記第二端末を利用する確認者に対して、前記第二端末側取得部が取得した前記情報を報知する第二端末側報知部と、を有する。
【発明の効果】
【0010】
本発明の一態様によれば、学習者が編集したプログラムコード又はそのプログラムコードの実行結果を、教員等の確認者が確認することができる。そのため、確認者にとっては、学習者の進捗状況等を把握することができる。一方、学習者にとっては、学習効率を向上させることができる。
【図面の簡単な説明】
【0011】
【
図1】プログラミング学習支援システムの概要を示す全体図である。
【
図2】プログラミング学習支援システムのハードウェア構成を示す図である。
【
図3】プログラミング学習支援システムの機能ブロック図である。
【
図5】プログラミング学習支援処理を示すシーケンス図である。
【
図6】(a)は第二端末に表示される課題選択画面の一例を示す図である。(b)は第二端末に表示される課題選択画面の他の一例を示す図である。
【
図7】第一端末に表示されるプログラム編集画面の一例を示す図である。
【
図8】第一端末に表示されるプログラム編集画面の他の一例を示す図である。
【
図9】第一端末に表示されるプログラム編集画面のさらに他の一例を示す図である。
【
図10】(a)は第二端末に表示される学習者管理画面の一例を示す図である。(b)は第二端末に表示される学習者管理画面の他の一例を示す図である。
【
図11】第二端末に表示されるプログラム実行画面の一例を示す図である。
【
図12】第二端末に表示される第二プログラム編集画面の一例を示す図である。
【
図13】第一端末に表示される第二プログラム実行画面の一例を示す図である。
【
図14】学習者環境再現処理のシーケンス図である。
【
図16】学習開始状況管理処理のシーケンス図である。
【発明を実施するための形態】
【0012】
以下、本発明のプログラミング学習支援システム及びプログラミング学習支援方法について、添付の図面に示す好適な実施形態を参照しながら詳細に説明する。
なお、以下に説明する実施形態は、本発明の理解を容易にするために挙げた一例にすぎず、本発明を限定するものではない。すなわち、本発明は、その趣旨を逸脱しない限りにおいて、以下に説明する実施形態から変更又は改良され得る。また、当然ながら、本発明には、その等価物が含まれる。
さらに、以下の説明の中で参照される各図が示す画面例についても一例に過ぎず、画面の構成例、表示される情報及びGUI(Graphical User Interface)の具体的な内容等については、設計仕様及びユーザの好みに応じて自由に設計及び変更し得るものである。
【0013】
<プログラミング学習支援システム1のシステム構成>
図1に示されるように、プログラミング学習支援システム1は、学習者Sによって操作される第一端末10と、確認者Tによって操作される第二端末30と、を有する。第一端末10と第二端末30とは、インターネット等のネットワークNを介して相互に通信可能に接続される。
なお、第一端末10と第二端末30とは、ネットワークNを経由しなくとも通信可能に接続されていればよく、例えば、Bluetooth(登録商標)やWi-Fi Direct(登録商標)等により直接接続されることとしてもよい。
【0014】
「プログラミング」とは、コンピュータが人間の意図した処理を行うように、コンピュータへ指示する処理の手順を考え、その指示を記述することをいう。具体的には、プログラミング言語を用いて、プログラムコードを編集することが「プログラミング」である。なお、プログラムコードにより記述されたコンピュータプログラムの内容は、プログラムコードを実行することにより、プログラムコードの実行結果として、学習者S及び確認者Tが確認することができる。
【0015】
「プログラムコード」とは、プログラミング言語で記述された、コンピュータプログラムを示す文字列をいう。コンピュータプログラムの内容を示し、実行対象となるものである。
【0016】
「実行」とは、プログラムコードを機械語に変換してコンピュータに読み込ませ、そのプログラムコードに記された指示を実現し、コンピュータプログラムを実際に動作させることをいう。実行には、インタープリタ方式及びコンパイル方式等を含む。
【0017】
「プログラムコードの実行結果」とは、コンピュータプログラムの内容を示し、プログラムコードを実行して可視化した映像若しくは画像、又は可聴化した音等をいう。
【0018】
「学習者」とは、プログラミング学習支援システム1の機能を享受する者であり、プログラミング学習支援システム1によって提供されるプログラミング教育に関する講座を受講して学習する幼児、児童、生徒、学生及び受講者等をいう。
【0019】
「講座」とは、プログラミング学習支援システム1によって提供されるプログラミング教育に関する講義又は演習等を組み合わせた学習コンテンツであり、決められたカリキュラム(時間割)に則って開設される。講座は、1又は複数の単元より構成されており、さらにその単元には、1又は複数の課題が設定されている。また、講座は、学習目的、又は、対象となる学習者Sの年齢若しくは知識レベル等に応じて開設される。講座の一例としては、小学生等のプログラミング初心者を対象とした「はじめてのプログラミング講座」等が挙げられる。
【0020】
「課題」とは、プログラミングに関する講義又は自習用コンテンツの内容であり、具体的には、指定されたプログラミングに関する講義、演習問題、自習用の練習内容等である。
課題の具体例としては、あるキャラクターを画面上に表示し且つ所定の移動経路で動かすプログラミング(以下、キャラクター移動プログラミング)、及び、所定の図形を描画するプログラミング(以下、図形描画プログラミング)、及び、関数等の数式をグラフ化するプログラミング(以下、数式グラフ化プログラミング)等が挙げられる。また、一つの課題が複数の小課題を含んでいてもよい。例えば、上記の図形描画プログラミングに、小課題として、三角形を描くプログラミング、直角三角形を描くプログラミング、星形を描くプログラミングが含まれていてもよい。
【0021】
「確認者」とは、プログラミング学習支援システム1の機能を享受する者であり、プログラミング学習支援システム1によって提供されるプログラミング教育に関する講座おいて教える側の立場の者、すなわち、教員、教師、講師、教官、指導員及びチューター等をいう。また、これらに限らず、プログラミング技術を直接教えることはなくても学習者Sを管理する立場の者も含む。さらに、学生同士が問題を出し合うような場合では、問題を解く側が学習者Sとなり、問題を出して解答を確認する側が確認者Tになる。
【0022】
「ネットワーク」とは、第一端末10と第二端末30とをデータ通信が可能な状態で接続するものであればよい。有線であるか無線であるかは問わず、インターネット、3G、4G、5G、LTE、場合によっては社内イントラネットや社内LAN等であってもよい。
【0023】
第一端末10は、プログラムコードの編集及び実行が可能であり、且つ、データの送受信が可能なコンピュータである。学習者Sは、この第一端末10を操作することにより、プログラムコードの編集、実行、及び実行結果の確認が可能である。第一端末10としては、例えば、一般的な汎用パソコン、タブレット、スマートフォン、携帯情報端末及びデジタルテレビ等が利用可能である。
なお、
図1では、3台の第一端末10を例示しているが、プログラミング学習支援システム1に接続された第一端末10の数は、1台又は2台であってもよいし、さらに多くの数であってもよい。
【0024】
第二端末30は、プログラムコードの編集及び実行が可能であり、且つ、データの送受信が可能なコンピュータである。確認者Tは、この第二端末30を操作することにより、プログラムコードの編集、実行及び実行結果の確認が可能である。第二端末30としては、第一端末10と同様、例えば、一般的な汎用パソコン、タブレット、スマートフォン、携帯情報端末及びデジタルテレビ等が利用可能である。
なお、
図1では、第二端末30は1台のみであるが、プログラミング学習支援システム1に接続された第二端末30の数は、複数であってもよい。
【0025】
ここで、
図2を参照して、第一端末10及び第二端末30のハードウェア構成について説明する。なお、本実施形態では、第一端末10と第二端末30とは概ね同様のハードウェア構成であることとし、以下では、第一端末10と第二端末30とを併せて説明する。
【0026】
図2に示されるように、第一端末10及び第二端末30は、ハードウェア構成として、プロセッサ11,31、記憶装置12,32、通信用インターフェース(
図2中、通信用I/Fと表記)13,33、入力装置14,34及び出力装置15,35を備える。
【0027】
プロセッサ11,31は、例えば中央処理装置(Central Processing Unit)、マイクロプロセッサ(Micro Processing Unit)、又はグラフィクスプロセッサ(Graphics Processing Unit)等を含み、記憶装置12,32に記憶されるプログラム又はデータに基づいて各種の演算処理を実行するとともに、第一端末10又は第二端末30の各部を制御する。そして、各種のプログラムがプロセッサ11,31に読み取られて実行されることにより、プログラミング学習支援システム1を構成する第一端末10又は第二端末30としての機能が発揮される。
【0028】
記憶装置12,32は、例えばメモリ又は磁気ディスク装置を含み、各種のプログラム又はデータを記憶する。一例としては、記憶装置12,32には、プログラムコード及びプログラムコードの実行結果等に関するデータが記憶される。また、第二端末30の記憶装置32には、後述する学習者情報テーブルDのデータが記憶される。さらに、記憶装置12,32は、プロセッサ11,31のワークメモリとしても用いられる。なお、プロセッサ11,31には、フラッシュメモリ又は光学ディスク等の情報記憶媒体が含まれていてもよい。
【0029】
通信用インターフェース13,33は、例えばネットワークインターフェースカード(NIC)等を含み、インターネットやイントラネット等の通信網を経由して、外部のコンピュータと通信する。
【0030】
入力装置14,34は、学習者S又は確認者Tからの、プログラムコードの編集操作及びその他の各種指示操作を受け付けて、受け付けた操作の内容を示すデータを生成するデバイスである。一例としては、キーボード(仮想キーボードを含む)、マウス等のポインティングディバイス、タッチパネル、スキャナ及びマイク等が該当する。
【0031】
出力装置15,35は、プログラムコード又はプログラムコードの実行結果等のデータを、学習者S又は確認者Tが認識できる形で出力するためのデバイスである。一例としては、ディスプレイ、スピーカー、プリンタ及びプロッタ等が該当する。また、ディスプレイは、入力装置と出力装置との機能を兼ね備えたタッチパネル式のディスプレイであってもよい。
【0032】
<プログラミング学習支援システム1の機能>
次に、上記構成のプログラミング学習支援システム1に備えられる機能について説明する。
以下では、図に基づき、第一端末10と第二端末30のそれぞれに備えられる機能の詳細について説明する。
【0033】
<<第一端末10の機能>>
図3に示すように、第一端末10は、第一端末側操作受付部16、第一端末側表示部17、第一端末側実行部18、第一端末側記憶部19、第一端末側送信部20、第一端末側取得部21、第一端末側報知部22、第一端末側受信部23、第一端末側データ作成部24及び第一端末側判定部25を備える。
【0034】
第一端末10に備えられる上記の各部の機能は、記憶装置12に記憶されるプログラミング学習支援プログラムに従ってプロセッサ11が第一端末10の各部を動作させることにより実行される。すなわち、上記のプログラムに従ってプロセッサ11が第一端末10の各部を動作させることにより、本発明のプログラミング学習支援システム1が稼働する。
なお、上記のプログラムは、通信用インターフェース13によりネットワークN等の通信網を介して不図示のサーバ等から取得(ダウンロード)してもよいし、プログラムを記憶した記憶媒体から第一端末10が読み込んで取得することとしてもよい。
以下、上記の各部の機能の詳細について説明する。
【0035】
[第一端末側操作受付部16]
第一端末側操作受付部16は、主にプロセッサ11及び入力装置14により実現され、学習者Sによる第一端末10に対する操作を受け付ける。ここでの操作には、プログラムコードの編集操作、プログラムコード若しくは第二プログラムコードの実行操作、編集したプログラムコードの提出操作及びデータ保存操作等を含む。プログラムコードの編集操作には、後述するコード入力用ブロック8(
図8)の選択操作並びにカーソル9(
図9)の移動操作及び位置指定操作等も含む。
【0036】
「第二プログラムコード」とは、第二端末30から配信されるものであり、課題に対する正解又はヒントを示す模範となるプログラムコードをいう。第二プログラムコードは、学習者Sが編集したプログラムコードを確認者Tが修正したものであってもよいし、学習者Sが編集したプログラムコードを基とせずに確認者Tが最初から編集したものであってもよい。特に、学習者Sが編集したプログラムコードを基としない場合は、模範解答のような形式で事前に用意されているものであってもよい。
【0037】
「コード入力用ブロック」とは、プログラムコードの編集を補助する機能を有するGUIの一種であり、対応するコード文字列ごとに、学習者Sの理解を助けるための説明を加えて図形化したものである。詳細については、後述する。
【0038】
「コード文字列」とは、プログラミングコードを構成する一つの文(定義文、制御構文等)に相当する文字列であり、例えば、プログラミングコードにおける一つの単位コマンド(指示・命令)を表すものである。
【0039】
[第一端末側表示部17]
第一端末側表示部17は、主にプロセッサ11及び出力装置15により実現され、第一端末10の画面上に、プログラム編集画面2及びプログラム実行画面3等を表示させる。プログラム編集画面2とプログラム実行画面3とは、両画面を並べて表示させてもよいし、一方の画面上に他方の画面を重畳して表示させてもよいし、両画面を切り替え可能に表示させてもよい。
【0040】
プログラム編集画面2は、プログラムコードを編集する画面であり、学習者Sが入力装置14を通じて編集したプログラムコード(厳密には、入力されたコード文字列等)を表示するために描画される。プログラムコード入力用のツールとしてコード入力用ブロック8又はカーソル9等を使用する場合は、プログラム編集画面2に、コード入力用ブロック8又はカーソル9を表示させる。
【0041】
プログラム実行画面3は、プログラムコード又は第二プログラムコードの実行結果が映像又は画像等である場合に、プログラムコード又は第二プログラムコードの実行結果を表示する画面である。プログラム実行画面3では、スピーカー等からの音出力と同期させて、プログラムコード又は第二プログラムコードの実行結果である映像又は画像を表示させることもできる。
【0042】
[第一端末側実行部18]
第一端末側実行部18は、主にプロセッサ11及び記憶装置12により実現され、プログラムコード又は第二プログラムコードの実行処理を行う。
【0043】
[第一端末側記憶部19]
第一端末側記憶部19は、主にプロセッサ11及び記憶装置12により実現され、プログラムコード、第二プログラムコード、プログラムコードの実行結果、及び、第二プログラムコードの実行結果等を示すデータを所定の記憶条件に基づいて記憶する。記憶されるプログラムコードは、完成プログラムコードであってもよいし、未完成プログラムコードであってもよい。また、各データは、履歴を残して別データとして記憶してもよいし、最新のデータを記憶するように上書きして記憶してもよい。
【0044】
「所定の記憶条件」とは、各データを記憶する際に必要な条件を示し、例えば、学習者Sによりデータ保存操作等の特定の操作が行われた場合、プログラムコード若しくは第二プログラムコードが実行された場合、プログラムコード若しくは第二プログラムコードの実行を試みたがエラーで実行できなかった場合、又は、学習者Sが第一端末10上でプログラミング学習支援システム1による学習を終了した場合(ログアウトした場合)等をいう。また、例えば、プログラムコードの編集期間中において所定の時間間隔で自動的に記憶することとしてもよい。
【0045】
「完成プログラムコード」とは、最終的な完成状態(課題におけるすべての問題を解答できた状態)に至っている実行可能な段階まで編集されたプログラムコードをいう。ただし、そのプログラムコードの内容の正誤は問わない。すなわち、実行可能ではあるが、課題に対する解答としては間違っているプログラムコードが含まれる場合もあり得る。
【0046】
「未完成プログラムコード」とは、完成プログラムコードに対し、学習者Sが編集途中のプログラムコードをいう。未完成プログラムコードは、最終的な完成状態に至っていないプログラムコードをいい、実行可能な段階まで編集されたプログラムコードでもよいし、コード文字列の入力が途中段階であるために実行できない状態のプログラムコードであってもよい。
【0047】
「最新のデータ」とは、各課題において最後に編集されたプログラムコード、各課題において最後に実行されたプログラムコード若しくは第二プログラムコード、又は、各課題において最後に実行されたプログラムコード若しくは第二プログラムコードの実行結果等をいう。
【0048】
[第一端末側送信部20]
第一端末側送信部20は、主にプロセッサ11、記憶装置12及び通信用インターフェース13により実現され、プログラムコード若しくはプログラムコードの実行結果を示すデータ(以下「第一データ」という)、更新データ、及び、学習開始連絡データ等の各種データを第二端末30に向けて送信する。
【0049】
具体的には、第一端末側送信部20は、後述する第一端末側受信部23が要求データを受信したことをトリガーとして、第一端末側記憶部19に記憶されている第一データを読み出し、その読み出したデータを第二端末30に向けて自動的に送信する。
【0050】
「更新データ」とは、後述する第一端末側データ作成部24によって作成されるデータであって、プログラムコードの実行結果等が所定の更新条件を満たしたことを第二端末30に通知するデータである。更新データの内容の一例としては、プログラムコードの実行回数、プログラムコードを実行したがエラーが発生して実行できなかった回数、及び、学習者Sから確認者Tに対して、編集したプログラムコードの確認依頼等の問い合わせ等を行いたいことを示す内容等を含む。
【0051】
「所定の更新条件」とは、更新データが作成又は送信される際に必要な条件を示し、例えば、プログラムコードの実行結果等を基に判断される条件をいう。具体的には、プログラムコードが実行された場合(課題ごとに最初に実行された場合を含む)、プログラムコードの実行回数が予め設定された実行回数に到達した場合、課題とされるプログラムコードの編集が所定の段階に進み、その時点でのプログラムコードの実行結果が基準を満たす場合、プログラムコードの実行を試みたがエラーが発生して実行できなかった場合、学習者Sから確認者Tに対して、編集したプログラムコードの確認依頼等の問い合わせ等の特定の操作が行われた場合、又は、学習者Sが第一端末10上でプログラミング学習支援システム1による学習を終了した場合等を含む。
【0052】
「学習開始連絡データ」とは、第一端末側操作受付部16が学習者Sによる第一端末10に対する所定の操作を受け付け、課題に参加するために学習者Sがログインしたこと、又は、学習者Sがプログラムコードの編集を開始したこと等を検知したときに、後述する第一端末側データ作成部24によって作成されるデータであって、学習者Sがプログラミング学習を開始したことを第二端末30に通知するデータである。
【0053】
「要求データ」とは、第二端末30が第一端末10に対して、第一データの送信を要求するデータである。
【0054】
[第一端末側取得部21]
第一端末側取得部21は、主にプロセッサ11、記憶装置12及び通信用インターフェース13により実現され、第二プログラムコード又は第二プログラムコードの実行結果を示す第二データ(以下、単に「第二データ」という)に基づく第二情報を取得する。
【0055】
「第二情報」とは、その第二データを展開して特定される第二プログラムコード若しくは第二プログラムコードの実行結果、又は、これらに対して画像処理を施すことで得られる情報等を含む。ここで、画像処理は、第二プログラムコード又は第二プログラムコードの実行結果を学習者Sにとってより見えやすくなるように加工する処理等が該当する。
【0056】
「取得」とは、第二データを受信して展開することで第二データが示す情報(第二情報)を入手すること、又は、受信したデータを用いたデータ処理を実施して、第一端末10側で利用できる情報(第二情報)を入手することを意味する。また、受信した第二データが第二プログラムコードを示すデータである場合には、第二プログラムコードを実行することも「取得」に該当する。
【0057】
[第一端末側報知部22]
第一端末側報知部22は、主にプロセッサ11、記憶装置12及び出力装置15により実現され、第一端末側取得部21で取得した第二情報を学習者Sが認識可能な状態で報知する。また、第一端末側実行部18により実行したプログラムコードの実行結果を学習者Sが認識可能な状態で報知する。
【0058】
「報知」とは、第二プログラムコードを表示すること、又は、プログラムコード若しくは第二プログラムコードの実行結果である映像、画像若しくは音等を出力することをいう。例えば、プログラムコードの実行結果が映像又は画像等の場合は、ディスプレイ表示(プログラム実行画面3による表示)が報知に該当する。一方、プログラムが音楽再生用プログラム等であって、プログラムコードの実行結果が音等の場合は、スピーカー出力が報知に該当する。
【0059】
本実施形態において、第一端末側報知部22によって報知される第二情報は、第二プログラムコードの実行結果のみであって、第二プログラムコード自体は報知しないこととしてもよい。ここで、第二情報として第二プログラムコード自体を報知しない具体的な方法としては、例えば、後述する第二端末側送信部40から第二プログラムコードを示す第二データ自体を送信しないこととしてもよいし、第二端末側送信部40から第一端末10に向けて第二データを送信する際、第二プログラムコードを示す第二データに、学習者Sに対する可視又は不可視の属性を付与することとしてもよい。
【0060】
なお、第二プログラムコードを画面に表示する場合、又は、プログラムコード若しくは第二プログラムコードの実行結果が画面上に表示可能な映像若しくは画像である場合等は、第一端末側報知部22は、その機能において、第一端末側表示部17と一部重複する場合もある。このように、報知する内容が、画面上に表示するものである場合、プログラム編集画面2と並べて表示させてもよいし、プログラム編集画面2と重畳して表示させてもよいし、プログラム編集画面2と切り替え可能に表示させてもよい。
【0061】
[第一端末側受信部23]
第一端末側受信部23は、主にプロセッサ11、記憶装置12及び通信用インターフェース13により実現され、要求データを受信する。
【0062】
[第一端末側データ作成部24]
第一端末側データ作成部24は、主にプロセッサ11、記憶装置12及び入力装置14により実現され、更新データ及び学習開始連絡データを作成する。なお、更新データは、上述した所定の更新条件を満たしたときに自動的に作成される。また、学習開始連絡データは、上述したように、第一端末側操作受付部16が学習者Sによる第一端末10に対する操作を受け付けたときに作成される。
【0063】
[第一端末側判定部25]
第一端末側判定部25は、主にプロセッサ11及び記憶装置12により実現され、第一端末側記憶部19が各データを記憶する際に、上述の所定の記憶条件を満たしたか否かを判定する。また、更新データを第一端末側送信部20が送信する際、又は、第一端末側データ作成部24が作成する際に、上述の所定の更新条件を満たしたか判定する。
【0064】
<<第二端末30の機能>>
図3に示すように、第二端末30は、第二端末側操作受付部36、第二端末側表示部37、第二端末側実行部38、第二端末側記憶部39、第二端末側送信部40、第二端末側取得部41、第二端末側報知部42、第二端末側受信部43、第二端末側データ作成部44、第二端末側管理部45、第二端末側選択部46及び第二端末側判定部47を備える。
【0065】
第二端末30に備えられる上記の各部の機能は、記憶装置32に記憶されるプログラミング学習支援プログラムに従ってプロセッサ31が第二端末30の各部を動作させることにより実行される。すなわち、上記のプログラムに従ってプロセッサ31が第二端末30の各部を動作させることにより、本発明のプログラミング学習支援システム1が稼働する。
なお、上記のプログラムは、通信用インターフェース33によりネットワークN等の通信網を介して不図示のサーバ等から取得してもよいし、プログラムを記憶した記憶媒体から第二端末30が読み込んで取得することとしてもよい。
以下、上記の各部の機能の詳細について説明する。
【0066】
[第二端末側操作受付部36]
第二端末側操作受付部36は、主にプロセッサ31及び入力装置34により実現され、確認者Tによる第二端末30に対する操作を受け付ける。ここでの操作には、第二プログラムコードの編集操作、プログラムコード若しくは第二プログラムコードの実行操作、及び、編集した第二プログラムコードの送信操作、講座開設操作、課題選択操作、要求データ作成操作、第一端末選択操作及びデータ保存操作等を含む。
【0067】
[第二端末側表示部37]
第二端末側表示部37は、主にプロセッサ31及び出力装置35により実現され、第二端末30の画面上に、プログラム編集画面52、プログラム実行画面53、課題選択画面56及び学習者管理画面57等を表示させる。プログラム編集画面52とプログラム実行画面53とは、両画面を並べて表示させてもよいし、一方の画面上に他方の画面を重畳して表示させてもよいし、両画面を切り替え可能に表示させてもよい。
【0068】
プログラム編集画面52は、第二プログラムコードを編集する画面である。ここでの編集には、学習者Sが編集したプログラムコードを基に第二プログラムコードとして修正する場合、基となるプログラムコードがなく第二プログラムコードを一から記述する場合、のいずれの場合も含む。
【0069】
プログラム実行画面53は、プログラムコード又は第二プログラムコードの実行結果が映像又は画像等である場合に、プログラムコード又は第二プログラムコードの実行結果を表示する画面である。プログラム実行画面53では、スピーカー等からの音出力と同期させて、プログラムコード又は第二プログラムコードの実行結果である映像又は画像を表示させることもできる。
【0070】
[第二端末側実行部38]
第二端末側実行部38は、主にプロセッサ31及び記憶装置32により実現され、プログラムコード又は第二プログラムコードの実行処理を行う。
【0071】
[第二端末側記憶部39]
第二端末側記憶部39は、主にプロセッサ31及び記憶装置32により実現され、プログラムコード、第二プログラムコード、プログラムコードの実行結果、第二プログラムコードの実行結果及び学習者情報等を示すデータを所定の記憶条件に基づいて記憶する。この場合の「所定の記憶条件」は、第一端末10と第二端末30との間で行われる操作の内容、及び操作の実施者に違いがあるものの、前述した第一端末側記憶部19にデータを記録する際の条件と概ね共通する。
第二端末側記憶部39に記憶されるプログラムコードは、完成したプログラムコードであってもよいし、未完成のプログラムコードであってもよい。また、各データは、履歴を残して別データとして記憶してもよいし、最新のデータを記憶するように上書きして記憶してもよい。
【0072】
図4に示されるように、学習者情報を示す学習者情報テーブルDには、学習者S(S1~SN)の会員番号に関連付けて、氏名、学習状況、並びに、現在の単元、現在の課題、現在の課題再生数、現在の成否、実行エラー数、問い合わせ数、直近の成否数、及び、成否率等の進捗状況に関する情報等が記憶される。
【0073】
「学習状況」とは、学習者Sの学習状況、すなわち、学習者Sが、現在実施されている課題に参加して学習を開始しているか否かを判別するための項目である。
【0074】
「現在の課題再生数」とは、学習者Sが課題に応じて編集したプログラムコードの実行回数を示す数値である。
【0075】
「現在の成否」とは、学習者Sの課題に対する現在の正誤状況を示す項目である。
【0076】
「実行エラー数」とは、学習者Sが、プログラムコード又は第二プログラムコードの実行を試みたが、エラーが発生して実行できなかった回数を示す項目である。
【0077】
「問い合わせ数」とは、学習者Sから確認者Tに対して、編集したプログラムコードの確認依頼等の問い合わせを行った回数を示す項目である。
【0078】
「成否率」とは、学習者Sがこれまでに実施した課題に対する全解答のうち、正解した解答と不正解の解答との比率を示す項目である。
【0079】
「進捗状況」とは、学習者情報に含まれる現在の単元、現在の課題、現在の課題再生数、及び、現在の成否等の情報を総合したものであり、課題ごとにみれば、学習者Sがその課題に対して正解しているか、又はその課題に対するプログラムコードを編集して何回実行したか等を示すものである。また、講座単位でみれば、学習者Sが講座内のどの単元のどの課題まで進んでいるか等を示すものである。
【0080】
[第二端末側送信部40]
第二端末側送信部40は、主にプロセッサ31、記憶装置32及び通信用インターフェース33により実現され、第二データ、及び、要求データ等の各種データを第一端末10に向けて送信する。
【0081】
このとき、学習者Sの編集したプログラムコードを基に修正して、第二プログラムコードを編集した場合、その第二プログラムコード又はその第二プログラムコードの実行結果を示す第二データは、元のプログラムコードを編集した学習者Sの操作する第一端末10に向けて送信する。
【0082】
また、プログラムコード中にエラーが有る場合は、そのエラーが有るプログラムコードを編集した学習者Sの操作する第一端末10に向けて、その第二プログラムコード又はその第二プログラムコードの実行結果を示す第二データを送信することとしてもよい。なお、エラー判定は、確認者Tが画面上でプログラムコードを確認して行ってもよいし、後述する第二端末側判定部47により自動的に判定してもよい。
【0083】
[第二端末側取得部41]
第二端末側取得部41は、主にプロセッサ31、記憶装置32及び通信用インターフェース33により実現され、第一端末側送信部20が送信した第一データに基づく情報を取得する。
【0084】
「情報」とは、そのデータを展開して特定されるプログラムコード若しくはプログラムコードの実行結果、又はこれらに対して画像処理を施すことで得られる情報等を含む。ここで、画像処理は、プログラムコード若しくはプログラムコードの実行結果を確認者Tにとってより見え易くなるように加工する処理、又は、プログラムコードにおけるエラー(誤入力箇所)の有無を判定してエラーが見つかった場合にそのエラー箇所をハイライト表示する処理等が該当する。
【0085】
「取得」とは、第一データを受信して展開することで第一データが示す情報を入手すること、又は、受信したデータを用いたデータ処理を実施して、第二端末30側で利用できる情報を入手することを意味する。また、受信したデータがプログラムコードである場合、そのプログラムコードを実行することも「取得」に該当する。
【0086】
第二端末側取得部41が取得する情報は、未完成プログラムコードを示すデータに基づく情報であってもよい。また、第一データのうち最新のデータに基づく情報であってもよい。
【0087】
「最新のデータ」とは、各課題において最後に編集されたプログラムコード、各課題において最後に実行されたプログラムコード、又は、各課題において最後に実行されたプログラムコードの実行結果等の他、ここでは、第一端末側記憶部19に一番新しく記憶されたデータも含む。
【0088】
また、第二端末側取得部41は、後述する第二端末側選択部46により選択された1又は複数の第一端末10からプログラムコード又はその実行結果を示すデータに基づく情報を取得することとしてもよい。
【0089】
[第二端末側報知部42]
第二端末側報知部42は、主にプロセッサ31、記憶装置32及び出力装置35により実現され、第二端末側取得部41で取得した情報(プログラムコード又はプログラムコードの実行結果)を確認者Tが認識可能な状態で報知する。また、第二端末側実行部38により実行したプログラムコード又は第二プログラムコードの実行結果を確認者Tが認識可能な状態で報知する。
【0090】
「報知」とは、プログラムコードを表示すること、又は、プログラムコード若しくは第二プログラムコードの実行結果である映像、画像若しくは音等を出力することをいう。例えば、プログラムコードの実行結果が映像又は画像等の場合は、ディスプレイ表示(プログラム実行画面53による表示)が報知に該当する。一方、プログラムが音楽再生用プログラム等であって、プログラムコードの実行結果が音等の場合は、スピーカー出力が報知に該当する。
【0091】
また、第二端末側報知部42は、確認者Tに学習者Sの学習者情報を報知することもでき、例えば、学習者Sの学習状況及び進捗状況に応じた表示オブジェクトを表示する。ここで、表示オブジェクトとは、学習者Sの学習状況及び進捗状況を報知するために表示される図形、文字列若しくはこれらの組み合わせであり、例えば、学習者Sごとに表示されるアイコン等が該当する。また、第二端末側報知部42は、学習者Sの学習状況又は進捗状況に変化が生じたときに、その表示オブジェクトの表示態様(具体的には、表示オブジェクトの色及び点滅の有無等)を切り替えることができる。
【0092】
なお、プログラムコードを画面に表示する場合、又は、プログラムコード若しくは第二プログラムコードの実行結果が画面上に表示可能な映像若しくは画像である場合等は、第二端末側報知部42は、その機能において、第二端末側表示部37と一部重複する場合もある。このように、報知する内容が、画面上に表示するものである場合、プログラム編集画面52と並べて表示させてもよいし、プログラム編集画面52と重畳して表示させてもよいし、プログラム編集画面52と切り替え可能に表示させてもよい。
【0093】
[第二端末側受信部43]
第二端末側受信部43は、主にプロセッサ31、記憶装置32及び通信用インターフェース33により実現され、更新データ及び学習開始連絡データを受信する。
【0094】
[第二端末側データ作成部44]
第二端末側データ作成部44は、主にプロセッサ31、記憶装置32及び入力装置34により実現され、要求データを作成する。なお、要求データは、第二端末側操作受付部36が確認者Tによる要求データ作成操作を受け付けることをトリガーとして作成される。
【0095】
[第二端末側管理部45]
第二端末側管理部45は、主にプロセッサ31及び記憶装置32により実現され、第二端末側受信部43が受信したデータに基づき、学習者情報を適宜設定する。
【0096】
具体的に説明すると、第二端末側受信部43が学習開始連絡データを受信した場合、第二端末側管理部45は、第二端末側記憶部39に記憶された学習者情報テーブルDから、該当する学習者Sの学習者情報を読み込み、読み込んだ学習者情報を学習中に設定して第二端末側記憶部39に記憶する。また、第二端末側受信部43が更新データを受信した場合、第二端末側管理部45は、第二端末側記憶部39に記憶された学習者情報テーブルDから、該当する学習者Sの学習者情報を読み出し、読み出した学習者情報を更新データに応じて更新して第二端末側記憶部39に記憶する。
【0097】
[第二端末側選択部46]
第二端末側選択部46は、主にプロセッサ31、記憶装置32、通信用インターフェース33及び入力装置34により実現され、複数の第一端末10の中から所定の第一端末10を所定の選択条件に基づいて選択する。
【0098】
「所定の選択条件」とは、ここでは複数の第一端末10の中から特定の第一端末10が選択される際の条件を示し、例えば、確認者Tにより特定の第一端末10を選択する第一端末選択操作等が行われた場合、特定の第一端末10から編集したプログラムコードの確認依頼等の問い合わせを受け、確認者Tがそれを許可した場合、又は、特定の第一端末10から取得したプログラムコード中にエラーが発見された場合等をいう。また、例えば、課題実施中において所定の時間間隔で自動的且つランダムに選択することとしてもよい。
【0099】
[第二端末側判定部47]
第二端末側判定部47は、主にプロセッサ11及び記憶装置12により実現され、第二端末側取得部41が第一データに基づく情報を取得する際、又は、第二端末側実行部38がプログラムコードの実行処理を行う際等に、そのプログラムコード中にエラーが存在するか否かを判定する。
【0100】
なお、一般的に第一端末10及び第二端末30は、上記以外にも種々の機能を有しているが、ここでは、本発明におけるプログラミング学習支援システム1において作用効果を奏する特徴的な機能のみを説明することとし、その他の既知の機能等については図示及び説明を省略する。
【0101】
<プログラミング学習支援システム1の処理の概要>
次に、シーケンス図、及び、各画面の一例を示す図を参照しながら、上記構成からなるプログラミング学習支援システム1において実行される処理の概要について説明する。
【0102】
本実施形態に係るプログラミング学習支援方法は、コンピュータシステムとして機能するプログラミング学習支援システム1を用いることで実現され、換言すると、プログラミング学習支援システム1が実行するプログラミング学習支援処理では、本実施形態に係るプログラミング学習支援方法が適用されている。
【0103】
図5に示されるように、まず、確認者Tによって操作される第二端末30によって、講座が開設される(S101)。
【0104】
開設された講座は、学習者Sによって操作される第一端末10から確認することができる。学習者Sは、第一端末10を操作して講座への参加を申請する(S102)。
【0105】
「参加」とは、その講座において実施されている講義を視聴すること、又は、演習問題を解くこと等をいう。参加できるのは、初回講義等の講座開始時に限定されず、途中参加することもできる。
【0106】
第二端末30は、第一端末10から参加の申請を受け付けると(S103)、その講座の中から該当する課題を選択し(S104)、第一端末10に課題の説明とその課題の内容(例えば、講義動画又は演習問題等)を送信することにより、課題を開始する(S105)。
【0107】
このとき、課題は、学習者情報テーブルDに記憶された学習者情報に含まれる進捗状況等に基づいて自動的に選択されることとしてもよいし、確認者Tが、学習者Sの進捗状況等を参照しつつ任意に選択することとしてもよい。確認者Tが課題を選択する場合は、第二端末30の画面上に課題選択画面56を表示する。
【0108】
図6(a)に示されるように、課題選択画面56では、第二端末30の画面上に、先ず、講座の中に用意された複数の単元の中から任意の単元を選択する画面が表示される。さらに、その中から任意の単元が選択されると、
図6(b)に示されるように、その選択された単元の中に用意された複数の課題の中から任意の課題を選択する画面に遷移する。確認者Tは、第二端末30を操作して、この複数の課題の中から学習者Sに実施させたいと考える任意の課題を選択する。このとき、第一端末10の画面には複数の課題が表示され、学習者S側から任意の課題を選択して参加を申請することとしてもよい。
【0109】
第一端末10は、第二端末30から送信された課題に基づいて、まず、課題説明を行い(S106)、課題を開始する。
【0110】
課題の実施中、学習者Sは、第一端末10を操作して講義の視聴、又は演習を行う(S107)。具体的には、特に演習の場面において、学習者Sは、第一端末10の画面上に表示されたプログラム編集画面2で課題に応じたプログラムコードを編集し、編集作業が所定段階まで進むとその時点でのプログラムコードの正誤を確認するためにプログラムコードを実行する。
【0111】
なお、本実施形態では、プログラムコードの実行結果は映像又は画像とし、ディスプレイ表示を報知の一例として挙げるが、報知はディスプレイ表示に限定されない。例えば、プログラムが音楽再生用プログラムの場合等は、スピーカー出力等を行うことにより報知する。
【0112】
図7に示されるように、第一端末10の画面上に表示されるプログラム編集画面2は、プログラムコード表示領域4、プログラム実行領域5及び課題表示領域6とから主に構成される。また、プログラム編集画面2には、その他、各種操作ボタン等が表示されている。
【0113】
プログラムコード表示領域4は、学習者Sが入力したプログラムコードを表示する領域である。プログラムコード表示領域4に表示されるプログラムコードは、プログラム編集画面2に表示される仮想キーボード(不図示)をタッチすることにより、直接入力されることとしてもよいし、後述するコード入力用ブロック8に対応したプログラムコードの文字列(コード文字列)が表示されることとしてもよい。
【0114】
プログラム実行領域5は、プログラムコードの実行結果を表示する領域である。例えば、キャラクターCを動かすプログラムコードを編集する課題(キャラクター移動プログラミング)において、そのプログラムコードの編集完了のタイミング、又は「Play」ボタンをクリック(タップも含む)したタイミング等で、上記のプログラムコードが実行され、プログラム実行領域5では、キャラクターCがそのプログラムコードの指示に応じた動きをする。
【0115】
本実施形態では、プログラム実行領域5は、プログラムコード表示領域4とともに表示されている。すなわち、プログラム実行領域5とプログラムコード表示領域4とが同時に並べて表示されている。このように、プログラム編集画面2では、プログラムコードと、プログラムコードの実行結果(キャラクターCの動き)とを、一画面に両方表示する。なお、プログラムコード表示領域4とプログラム実行領域5とは、切り替え可能に表示してもよい。
【0116】
課題表示領域6は、現在の課題を表示する領域である。例えば、課題のクリア条件等が説明されている。なお、課題表示領域6は、非表示にすることもできる。
【0117】
図8に示されるように、プログラム編集画面2では、キーボードを使用しなくてもプログラムコードの入力ができるように、プログラム編集を補助することもできる。例えば、コード入力用ブロック8を選択して並べていくことにより、プログラムコードを編集することができる。
【0118】
具体的には、第一端末10の画面上に表示されるプログラム編集画面2は、プログラムコード表示領域4、プログラム実行領域5及び課題表示領域6の他、複数のコード入力用ブロック8が表示されたブロック表示領域7をさらに備える。
【0119】
コード入力用ブロック8には、対応するコード文字列ごとに、学習者Sの理解を助けるための説明が加えられており、例えば、「character:walkto(1,0,right)」というコード文字列に対応するコード入力用ブロックには、そのコード文字列の意味を示す「1マス右に歩く」という説明が表示されている。
【0120】
ブロック表示領域7には、コード入力用ブロック8が複数表示されている。ブロック表示領域7に表示されているコード入力用ブロック8は、課題に関する正解のコード文字列を入力できるブロックと、不正解のコード文字列を入力するブロックとが混在した状態で用意されている。それらのブロックの中から学習者Sによって選択されたコード入力用ブロック8に対応したコード文字列が、選択と同時にプログラムコード表示領域4に入力される。このとき、不正解のブロックの数を増減させることにより、難易度の設定をすることができる。また、学習者Sの習熟度が高い場合等は、コード入力用ブロック8を適宜非表示としてもよい。
【0121】
図9に示されるように、指定された図形を描画するためのプログラミングが課題として出題されたときは、例えば、カーソル9を操作して座標位置を指定することにより、プログラムコードを編集することとしてもよい。具体的には、第一端末10の画面上に表示されるプログラム編集画面2は、プログラム実行領域5上を移動可能なカーソル9を有する。なお、カーソル9が移動可能なプログラム実行領域5が、図形描画エリアに該当する。
【0122】
「指定された図形」とは、線画であり、例えば、円、多角形若しくは扇形等の二次元図形、球体、多面体若しくは錐体等の三次元図形、又は多胞体等の四次元図形等であってもよい。また、複雑な絵等であってもよい。さらに、時間軸を加えた動的な図形等であってもよい。
【0123】
「座標」とは、プログラム編集画面2、厳密には、図形描画エリアであるプログラム実行領域5上においてカーソル9で指定した点の位置を示す。
【0124】
カーソル9は、学習者Sによる操作に応じて移動する。また、「カーソルの座標から頂点を入力する」という趣旨の説明が表示されたコード入力用ブロック(
図9では不図示)を選択する等の所定操作に応じて、カーソル9の指し示す座標位置に対応するコード文字列が、プログラムコード表示領域4に入力される。なお、ダブルクリック又は長押し等の所定操作に応じて、カーソル9が指し示す座標位置に対応するコード文字列が、プログラムコード表示領域4に入力されることとしてもよい。
【0125】
また、図形を構成する線又は点の色については、色を判別できる情報が表示されたコード入力用ブロック(
図9では不図示)を選択する等の所定操作に応じて、その色に関する情報もプログラムコード表示領域4に入力される。なお、色については、パレット又はダイアログボックス等から選択することとしてもよい。さらに、カーソル9のドラッグ等の所定操作に応じて、座標間に線を引くプログラムコードがプログラムコード表示領域4に入力されることとしてもよい。
【0126】
学習者Sは、上記のように、第一端末10を操作して講義を視聴し、又は演習を行う。
一方、確認者Tは、学習者Sが課題を実施している最中に、第二端末30を操作して学習者Sの学習状況及び進捗状況を監視及び確認する(S108)。なお、このステップS108から次のステップS109にかけて行われる処理には、後述する学習者環境再現処理(
図14)が含まれる。
【0127】
図10(a)に示されるように、学習者管理画面57では、第二端末30の画面上に、各学習者Sの一覧が表示される。ここで表示される情報には、学習者Sの会員番号又は氏名等、学習者Sを識別可能な情報が含まれる。
【0128】
確認者Tは、その一覧に含まれる複数の学習者S(S1~SN)の中から、学習状況又は進捗状況を確認したい任意の学習者Sを選択すると、
図10(b)に示されるように、その選択した学習者Sの詳細情報(ステータス)が表示される。詳細情報には、上述した学習者情報テーブルDの情報に基づき、例えば、学習者Sの会員番号、氏名、学習状況、現在の単元、現在の課題、現在の課題の再生数、及び、現在の成否等に関する情報が表示される。確認者Tは、これらの情報により、学習者Sの学習状況及び進捗状況等を管理する。なお、学習者管理画面57では、学習者Sの学習状況又は進捗状況に変化が生じたことを報知するアイコン等(不図示)を表示してもよい。
【0129】
また、上記の学習者管理画面57には、学習者Sの詳細情報とともに「Scriptを見る」というリンクが設けられている。確認者Tは、学習者管理画面57上でこのリンクをクリック等することにより、学習者Sが編集したプログラムコードの提示を第一端末10に対して要求する。
【0130】
第一端末10は、第二端末30からの上記要求受けると、第一端末10を操作する学習者Sに通知することなく、その要求に対して自動応答を行う(S109)。すなわち、第二端末30に対して、第一データを自動的に送信する。そのため、確認者Tから学習者Sに対して、いつプログラムコードの提示要求があったとしても、プログラムコードを編集中の学習者Sは、集中を妨げられることがない。
なお、ステップS109では、第一データとして第一端末10に記録されたデータのうち、最新のデータが第二端末30に向けて送信される。
【0131】
第一データに基づく情報を取得した第二端末30は、学習者Sが編集したプログラムコード及びそのプログラムコードの実行結果をプログラム実行画面53に表示して、学習者Sの学習環境を再現する。そのため、確認者Tは、学習者Sがプログラムコードを編集している最中であっても、任意のタイミングで、学習者Sの学習状況及び進捗状況をリアルタイムに監視及び確認することができる。
【0132】
第二端末30が取得する情報は、プログラムコードであっても、プログラムコードの実行結果であってもよく、結果的に、第二端末30で学習者Sの編集したプログラムコードとそのプログラムコードの実行結果のどちらか一方又は両方を確認することができればよい。プログラムコードを示すデータに基づく情報を取得した場合は、第二端末30側でそのプログラムコードを実行して報知する。一方、プログラムコードの実行結果を示す情報を取得した場合は、第二端末30側でプログラムコードを実行する必要はない。
【0133】
なお、ここで取得するプログラムコードは、未完成プログラムコードであってもよい。また、確認者Tは、プログラムコード自体を読めば間違いに気付くこともあり得るので、未完成プログラムコードは、実行できない段階のものであってもよい。このように、確認者Tは、学習者Sが編集したプログラムコードが編集途中で実行不能な未完成プログラムコードであっても、その時点で確認することができるので、より早い段階で学習者Sの進捗状況や理解度を把握することができ、学習者Sに対する今後の学習の進め方を検討するうえで参考にすることができる。
【0134】
図11に示されるように、第二端末30の画面上で学習者環境を再現するプログラム実行画面53は、プログラムコード表示領域54及びプログラム実行領域55とから主に構成される。また、プログラム実行画面53には、「Play」ボタン等、その他、各種操作ボタン等が表示されていてもよい。
【0135】
プログラムコード表示領域54は、学習者Sが入力したプログラムコードを表示する領域であり、プログラムコードの文字列が表示されている。
【0136】
プログラム実行領域55は、学習者Sが編集したプログラムコードの実行結果を表示する領域である。本実施形態では、プログラム実行領域55上のキャラクターCは、プログラムコードを表示したタイミング、又は、「Play」ボタンをクリック等したタイミング等で、学習者Sの編集したプログラムコードの指示に応じた動きをする。
【0137】
プログラム実行領域55は、プログラムコード表示領域54とともに表示されている。すなわち、プログラム実行画面53では、プログラム実行領域55とプログラムコード表示領域54とが同時に並べて表示されており、学習者Sの編集したプログラムコードと、そのプログラムコードの実行結果(キャラクターCの動き)とを、一画面に両方表示する。
【0138】
学習者環境を再現して、学習者Sの編集したプログラムコードを確認した確認者Tは、学習者Sの進捗状況や理解度を把握したうえで、第二端末30を操作して第二プログラムコードを自ら編集して実演配信を行う(S110)。なお、このステップS110から次のステップS111にかけて行われる処理は、後述する実演配信処理(
図15)に該当する。
【0139】
「実演」とは、第二プログラムコードを実行し、その実行結果を報知することをいう。本実施形態の場合は、第一端末10の画面(プログラム実行画面3)及び第二端末30の画面(プログラム実行画面53)で、第二プログラムコードの実行結果を表示することをいう。
【0140】
「実演配信」とは、上記実演を第一端末10のプログラム実行画面3で行わせるために、第二データを、第二端末30から第一端末10に向けて送信することをいう。
【0141】
図12に示されるように、確認者Tが第二プログラムコードを編集する画面、すなわち、第二端末30の画面上に表示されるプログラム編集画面52は、プログラムコード表示領域54及びプログラム実行領域55とから主に構成される。また、プログラム編集画面52には、「Play」ボタン又は「送る」ボタン等、その他、各種操作ボタン等が表示されていてもよい。
【0142】
プログラムコード表示領域54は、確認者Tがプログラム編集画面52に表示される仮想キーボード(不図示)等を操作することにより入力した第二プログラムコードを表示する領域であり、第二プログラムコードの文字列が表示されている。プログラムコード表示領域54には、学習者Sが編集したプログラムコードを基とする場合は、学習者Sが元々編集したプログラムコードを表示しておき、確認者Tがそのプログラムコードの上から修正できることとしてもよい。
【0143】
プログラム実行領域55は、プログラムコード表示領域54とともに表示されており、確認者Tが編集した第二プログラムコードの実行結果を表示して実演する領域である。本実施形態では、プログラム実行領域55上のキャラクターCは、第二プログラムコードを入力したタイミング、又は、「Play」ボタンをクリック等したタイミング等で、確認者Tの編集した第二プログラムコードの指示に応じた動きをする。
【0144】
確認者Tは、第二プログラムコードの編集を完了すると、「送る」ボタンをクリック等して、第一端末10に向けて、第二データに基づく情報を送信する。
【0145】
第一端末10では、第二端末30から第二プログラムコードを取得すると、その取得した第二プログラムコードに基づいて、実演を行う(S111)。
【0146】
図13に示されるように、実演を行う第一端末10の画面上に表示されるプログラム実行画面3は、第二プログラムコードの実行結果を表示して実演するプログラム実行領域5を有している。また、プログラム実行画面3には、「Play」ボタン等、その他、各種操作ボタン等が表示されている。
【0147】
プログラム実行領域5では、例えば、第二プログラムコードを取得したタイミング、「Play」ボタンをクリック等したタイミング、又は、第二端末30側からのリモート操作によって確認者Tが指定した任意のタイミング等で、キャラクターCがその第二プログラムコードの指示に応じた動きをする。
【0148】
このとき、第一端末10側では、第二プログラムコードの実行結果を報知(本実施形態ではプログラム実行画面3に表示)するものの、第二プログラムコード自体はプログラム実行画面3に表示しない。すなわち、学習者Sは、第二プログラムコードの実行結果は確認することができても、その解答を示す第二プログラムコード自体は確認することができない。そのため、学習者Sは、その第二プログラムコードの実行結果を参考にしつつ、プログラムコードを自ら編集又は修正等を行い、さらに学習を進めることができる。
【0149】
また、第二プログラムコードの実演するプログラム実行画面3では、プログラム実行領域5とともに、学習者Sが編集したプログラムコードを表示するプログラムコード表示領域4を備えることとしてもよい。この場合、学習者Sは、実演される正解又はヒントを示す第二プログラムコードの実行結果を模範としながら、プログラムコード表示領域4において、プログラムコードの編集又は修正等を行うことができる。
【0150】
第二端末30は、実演配信(S110)が終了すると、課題が全て終了したか否かを判定する(S112)。課題が全て終了していない場合(S112:No)、再度、課題を選択する(S104)。なお、このとき、課題が全て終了していないと判断される場合は、別の新たな課題が残っている場合の他、その課題に対して未だ正解していない場合等、学習者Sに同じ課題を再度実施させる必要がある場合も含む。
【0151】
課題が全て終了した場合(S112:Yes)、第二端末30から第一端末10に向けて終了通知を送信した後、回線を切断する(S113)。これにより、第一端末10にて課題が終了する(S114)。なお、第一端末10側では、課題内容(プログラムコード及び第二プログラムコード等を含む)の保存をすることができ、回線切断後も復習メニューからオフラインで課題を再開することもできる。
【0152】
<プログラミング学習支援システム1の各処理の流れ>
次に、
図14乃至17を参照しながら、プログラミング学習支援システム1において実行される各処理の流れについて具体的に説明する。
【0153】
[学習者環境再現処理]
まず、
図14に基づいて、学習者環境再現処理について説明する。
「学習者環境再現処理」とは、学習者Sの編集したプログラムコードの実行結果を第二端末30で報知する処理をいう。また、学習者環境再現処理は、
図5に示したプログラミング学習支援処理のうち、ステップS108からステップS109にかけて行われる処理である。
【0154】
図14に示されるように、第一端末10は、学習者Sからプログラムコードの編集操作を受け付けると(S201)、プログラム編集画面2のプログラムコード表示領域4にその編集されたプログラムコードを表示する(S202)。
そして、第一端末10は、学習者Sからプログラムコードの実行操作を受け付けると(S203)、編集したプログラムコードを実行し(S204)、そのプログラムコードの実行結果をプログラム編集画面2のプログラム実行領域5に表示する(S205)。
そして、そのプログラムコード及びプログラムコードの実行結果を記憶装置12に記憶する(S206)。
なお、編集されたプログラムコードは、実行操作の受付有無に関係なく、プログラムコードが実行可能な段階まで編集された時点で自動的に実行されることとしてもよい。また、プログラムコード及びプログラムコードの実行結果は、それぞれの表示前又は表示と同時に記憶することとしてもよい。プログラムコードは、実行前又は実行と同時に記憶することとしてもよい。
【0155】
一方、第二端末30は、確認者Tから要求データの作成操作を受け付けると(S207:Yes)、要求データを作成し(S208)、その作成した要求データを第一端末10に向けて送信する(S209)。
【0156】
第一端末10は、学習者Sからプログラムコードの提出操作、すなわち、学習者Sの意思に基づいて不図示の提出ボタン等をクリック等することにより第一データを第二端末30に送信する指示を受け付けると(S210:Yes)、第一データのどちらか一方又は両方のデータを第二端末30に向けて送信する(S212)。
【0157】
また、第一端末10は、提出操作を受け付けない場合であっても(S210:No)、第二端末30から送信された要求データを受信すると(S211)、第一データのどちらか一方又は両方のデータを第二端末30に向けて送信する(S212)。
【0158】
第二端末30は、第一端末10から送信された第一データに基づく情報を取得すると(S213)、取得した情報がプログラムコードの実行結果を示すデータに基づく情報であるか否かを判定する(S214)。取得した情報がプログラムコードの実行結果を示すデータに基づく情報である場合(S214:Yes)、第二端末30は、プログラムコードの実行結果をプログラム実行画面53のプログラム実行領域55に表示して報知する(S216)。
【0159】
他方、取得した情報がプログラムコードの実行結果を示すデータに基づく情報でない場合(S214:No)、すなわち、プログラムコードを示すデータに基づく情報である場合には、第二端末30は、そのプログラムコードを実行した後(S215)、プログラムコード及びプログラムコードの実行結果をプログラム実行画面53のプログラムコード表示領域54及びプログラム実行領域55に表示して報知する(S216)。
なお、取得したプログラムコードを示すデータに基づく情報が実行できないときは、プログラムコードのみを表示して報知することとしてもよい。
【0160】
一方、第二端末30は、確認者Tから要求データの作成操作を受け付けていない場合であっても(S207:No)、第一端末10から第一データが送信されれば(S212)、第一データに基づく情報を取得し(S213)、以下は上記と同様の処理(S214~S216)を行う。
以上が、学習者環境再現処理の一例である。
【0161】
[実演配信処理]
次に、
図15に基づいて、実演配信処理について説明する。
「実演配信処理」とは、実演配信を行い、第二プログラムコードの実行結果を第一端末10で報知する処理をいう。また、実演配信処理は、
図5に示したプログラミング学習支援処理のうち、ステップS110からステップS111にかけて行われる処理である。
【0162】
図15に示されるように、第二端末30は、確認者Tから第二プログラムコードの編集操作を受け付けると(S301)、プログラム編集画面52のプログラムコード表示領域54にその編集された第二プログラムコードを表示する(S302)。
そして、第二端末30は、確認者Tから第二プログラムコードの実行操作を受け付けると(S303)、編集した第二プログラムコードを実行し(S304)、その第二プログラムコードの実行結果をプログラム編集画面52のプログラム実行領域55に表示する(S305)。
そして、その第二プログラムコード及び第二プログラムコードの実行結果を記憶装置32に記憶する(S306)。
なお、編集された第二プログラムコードは、実行操作の受付有無に関係なく、第二プログラムコードが実行可能な段階まで編集された時点で自動的に実行されることとしてもよい。また、第二プログラムコード及び第二プログラムコードの実行結果は、それぞれの表示前又は表示と同時に記憶することとしてもよい。第二プログラムコードは、実行前又は実行と同時に記憶することとしてもよい。
【0163】
そして、第二端末30は、確認者Tから第二プログラムコードの送信操作を受け付けると(S307)、第二データのどちらか一方又は両方を第一端末10に向けて送信する(S308)。
【0164】
第一端末10は、第二端末30から送信された第二データに基づく第二情報を取得すると(S309)、取得した情報が第二プログラムコードの実行結果を示す第二データに基づく第二情報であるか否かを判定する(S310)。取得した情報が第二プログラムコードの実行結果を示す第二データである場合(S310:Yes)、第一端末10は、第二プログラムコードの実行結果をプログラム実行画面3のプログラム実行領域5に表示して報知する(S312)。この報知が実演となる。
【0165】
他方、取得した情報が第二プログラムコードの実行結果を示す第二データに基づく第二情報でない場合(S310:No)、すなわち、第二プログラムコードを示す第二データに基づく第二情報である場合、第一端末10は、その第二プログラムコードを実行した後(S311)、第二プログラムコードの実行結果をプログラム実行画面3のプログラム実行領域5に表示して報知する(S312)。この報知も実演に該当する。
なお、このとき、第一端末10は、第二プログラムコードを示す第二データに基づく第二情報を取得していたとしても、その第二プログラムコード自体はプログラム実行画面3に表示しない。
以上が、実演配信処理の一例である。
【0166】
[学習開始状況管理処理]
次に、
図16に基づいて、学習開始状況管理処理について説明する。
「学習開始状況管理処理」とは、学習者Sが学習を開始しているか否かを第二端末30で管理する処理をいう。
【0167】
図16に示されるように、第一端末10は、学習者Sからプログラムコードの編集操作等の各種操作を受け付けると(S401)、学習開始連絡データを作成し(S402)、その作成した学習開始連絡データを第二端末30に向けて送信する(S403)。
【0168】
第二端末30は、第一端末10から送信された学習開始連絡データを受信すると(S404)、記憶装置12に記憶されている学習者情報テーブルDから該当する学習者Sの学習者情報を読み込み(S405)、その読み込んだ学習者情報の学習状況の項目を学習中と設定する(S406)。
そして、学習状況が「学習中」と設定された学習者情報を記憶装置12に再び記憶するとともに(S407)、学習者管理画面57に表示して報知する(S408)。
以上が、学習開始状況管理処理の一例である。
【0169】
[進捗状況管理処理]
次に、
図17に基づいて、進捗状況管理処理について説明する。
「進捗状況管理処理」とは、学習者Sの進捗状況を第二端末30で管理する処理をいう。
【0170】
図17に示されるように、第一端末10は、上述した所定の更新条件を達成すると(S501)、更新データを作成し(S502)、その作成した更新データを第二端末30に向けて送信する(S503)。例えば、ある課題に応じたプログラムコードを複数のブロックに分け、各ブロック単位で編集が完了した段階で上記プログラムコードの実行結果が得られた場合に、第一端末10は、更新データを作成して第二端末30に向けて送信する。
【0171】
第二端末30は、第一端末10から送信された更新データを受信すると(S504)、記憶装置12に記憶されている学習者情報テーブルDから該当する学習者Sの学習者情報を読み込み(S505)、その読み込んだ学習者情報を更新データの内容に基づいて書き換えることにより更新する(S506)。例えば、更新データによって、学習者情報の現在課題再生数又は現在の成否等の情報が更新される。
そして、その更新した学習者情報を記憶装置12に再び記憶するとともに(S507)、学習者管理画面57に表示して報知する(S508)。
以上が、進捗状況管理処理の一例である。
【0172】
<その他の実施形態>
本発明は上記の実施形態に限定されるものではない。
例えば、第一端末10及び第二端末30にインストールされているウェブブラウザを介して、ウェブページとして、プログラムコードの表示又は実行等をする構成であってもよい。この場合であっても、第一端末10及び第二端末30のそれぞれの端末にて、プログラムコード又は第二プログラムコードの実行等の各処理を行う。
【0173】
また、上記の実施形態では、プログラミング学習支援システム1は、第一端末10及び第二端末30のそれぞれの端末にて、プログラムコード又は第二プログラムコードの実行等の各処理を行うこととしたが、不図示のサーバ等を別途備え、そのサーバにて各処理を行わせることとしてもよい。具体的には、ASP(Application Service Provider)、SaaS(Software as a Service)、PaaS(Platform as a Service)又はIaaS(Infrastructure as a Service)等の方式で利用可能である。
この場合、ASP等に用いられるサーバは、プログラムコード及び第二プログラムコードのうちのいずれか一方又は両方を実行し、その実行結果を表示させるためのデータを生成し、記憶することができる。そのため、第一端末10及び第二端末30に、例えば、プログラムコード若しくは第二プログラムコードの実行処理を行うための機能(第一端末側実行部18及び第二端末側実行部38)、又は、プログラムコード等の各種データを記憶するための機能(第一端末側記憶部19及び第二端末側記憶部39)等を有さなくともよい。
【0174】
また、複数の学習者Sとその複数の学習者Sにより操作される複数の第一端末10が存在することを前提として、学習者S同士でチームを構築して同期通信を行い、学習者Sの操作する第一端末10側で互いに課題提供者と解答者の役回りを担当することとしてもよい。このとき、課題は、プログラミング学習支援システム1からダウンロードすることもできるし、第一端末10の機能として問題作成編集モードを設け、自作することもできる。
【0175】
さらに、複数の学習者Sとその複数の学習者Sにより操作される複数の第一端末10が存在することを前提として、学習者S同士でチームを構築して同期通信を行い、各学習者Sの第一端末10ごとに、プログラミング学習支援システム1における入力担当用と出力担当用としての役割を割り振り、複数台(例えば2~8台)の出力担当用の第一端末10の画面を並べて大画面の出力装置を構築し、予め定めた課題をチームで解決する、ということもできる。
【0176】
なお、本実施形態では、学習者Sは、プログラミング学習支援システム1に接続した状態、すなわち、オンライン状態で課題を実施することとしたが、第一端末10に予め記憶されている問題集、又は、プログラミング学習支援システム1から自習用に事前に送信された問題集等を用いてオフライン学習を行うこともできる。
【0177】
<まとめ>
以上説明した本実施形態に係るプログラミング学習支援システム1及びプログラミング学習支援システム1により実施されるプログラミング学習支援方法の主な特徴は以下の通りである。
【0178】
[1]本実施形態に係るプログラミング学習支援システム1は、互いに通信可能な第一端末10及び第二端末30を有し、第一端末10は、第一端末10を利用する学習者Sによる編集操作を受け付ける第一端末側操作受付部16と、第一端末側操作受付部16が受け付けた編集操作に従って編集されたプログラムコードを含むプログラム編集画面を表示する第一端末側表示部17と、プログラムコードを示すデータ、及び、プログラムコードの実行結果を示すデータの少なくとも一つのデータを第二端末30に向けて送信する第一端末側送信部20と、第二端末30は、第一端末側送信部20が送信した少なくとも一つのデータに基づく情報を取得する第二端末側取得部41と、第二端末30を利用する確認者Tに対して、第二端末側取得部41が取得した情報を報知する第二端末側報知部42と、を有する。
上記のプログラミング学習支援システム1によれば、学習者Sが編集したプログラムコード又はそのプログラムコードの実行結果を、教員等の確認者Tが、学習者Sとの間で特別なやり取りの必要もなく、任意のタイミングで確認することができる。そのため、確認者Tにとっては、学習者Sの進捗状況や理解度を正確且つ容易に把握することができる。一方、学習者Sにとっては、編集したプログラムの内容を確認者Tに確認してもらうことができるので、学習効率を向上させることができる。
【0179】
[2]上記のプログラミング学習支援システム1は、第一端末10は、少なくとも一つのデータを所定の記憶条件に基づいて記憶する第一端末側記憶部19をさらに有し、第一端末側送信部20は、第一端末側記憶部19に記憶されたデータのうち少なくとも一つを、第二端末30に向けて送信する。
こうすることで、学習者Sは、所定の記憶条件で記憶されたプログラムコード又はプログラムコードの実行結果の内容を確認者Tに確認してもらうことができるため、学習途中で集中を妨げられることもなく、学習効率がより向上する。
【0180】
[3]上記のプログラミング学習支援システム1は、第二端末側取得部41が第一端末10から取得する少なくとも一つのデータに基づく情報は、第一端末側記憶部19により記憶された少なくとも一つのデータのうち最新のデータに基づく情報である。
こうすることで、確認者Tは、最新のプログラムコード又はプログラムコードの実行結果(すなわち、最後に実行されたプログラムコードの実行結果)を確認することができるので、より正確且つ容易に学習者Sの進捗状況や理解度を把握することができる。一方、学習者Sは、最新のプログラムコード又はプログラムコードの実行結果を確認者Tに確認してもらうことができるため、学習効率がより向上する。
【0181】
[4]上記のプログラミング学習支援システム1は、第二端末30は、確認者Tによる編集操作を受け付ける第二端末側操作受付部36と、第二端末側操作受付部36が受け付けた編集操作に従って編集された第二プログラムコードを含むプログラム編集画面を表示する第二端末側表示部37と、第二プログラムコードを示す第二データ、及び、第二プログラムコードの実行結果を示す第二データの少なくとも一つの第二データを第一端末10に向けて送信する第二端末側送信部40と、第一端末10は、第二端末側送信部40が送信した少なくとも一つの第二データに基づく第二情報を取得する第一端末側取得部21と、学習者Sに対して、第一端末側取得部21が取得した第二情報を報知する第一端末側報知部22と、をさらに有する。
こうすることにより、確認者Tは、学習者Sの進捗状況や理解度を把握したうえで、正解又はヒントを示す模範となるプログラムコード(第二プログラムコード)を学習者Sに送信することができるので、学習者Sの学習効率をより向上させることができる。
【0182】
[5]上記のプログラミング学習支援システム1は、第一端末側報知部22により報知される第二情報は、第二プログラムコードを示す第二データを含まない。
こうすることにより、学習者Sは、第二プログラムコードの実行結果は確認することができても、その解答を示す第二プログラムコード自体は確認することができない。そのため、学習者Sは、その第二プログラムコードの実行結果を参考にしつつ、プログラムコードを自ら修正等してさらに学習を進めることができるので、学習者Sの学習効率をより向上させることができる。
【0183】
[6]上記のプログラミング学習支援システム1は、第二端末側送信部40は、プログラムコード中にエラーが有る場合に、第一端末10に対して、少なくとも一つの第二データを送信する。
こうすることにより、学習者Sが編集したプログラムコードのエラー判定を行うので、確認者Tは、より正確且つ容易に学習者Sの進捗状況や理解度を把握することができる。また、編集したプログラムコード中にエラーが発見された学習者Sに対して模範となる第二プログラムコードを送信するので、学習者Sの学習効率をより向上させることができる。
【0184】
[7]上記のプログラミング学習支援システム1は、第一端末10は、プログラム編集画面の表示とともに、第二情報の報知を行う。
こうすることにより、学習者Sは、模範となる第二プログラムコード又は第二プログラムコードの実行結果を確認しながら、プログラムコードの編集をすることができるので、学習者Sの学習効率をより向上させることができる。
【0185】
[8]上記のプログラミング学習支援システム1は、第一端末10は、プログラムコードの実行対象を、プログラム編集画面に表示されるプログラムコードと、第二情報に含まれる第二プログラムコードとの間で切り替え可能とする。
こうすることにより、学習者Sは、模範となる第二プログラムコードの実行結果を確認しながら、プログラムコードの編集をすることができるので、学習者Sの学習効率をより向上させることができる。
【0186】
[9]上記のプログラミング学習支援システム1は、第二端末30は、学習者Sの学習状況を示す学習者情報を管理する第二端末側管理部45をさらに有し、第一端末側送信部は、プログラムコードの実行結果が所定の更新条件を満たした場合に学習者情報を更新する更新データを第二端末30に向けて送信し、第二端末側管理部45は、第二端末30が更新データを受信したときに学習者情報を更新し、第二端末側報知部42は、学習者情報が更新された際に学習者情報を報知する。
こうすることにより、確認者Tは、学習者Sによるプログラムコードの実行結果が、予め設定された実行回数又は到達段階等の所定の更新条件を満たしたか否かの確認ができるので、より正確且つ容易に学習者Sの進捗状況や理解度を把握することができる。
【0187】
[10]上記のプログラミング学習支援システム1は、第二端末30は、学習者Sの学習状況を示す学習者情報を管理する第二端末側管理部45をさらに有し、第一端末側操作受付部16は、学習者Sによる学習開始操作を受け付け、第一端末側送信部20は、第一端末側操作受付部16が学習開始操作を受け付けると、学習開始連絡データを第二端末30に向けて送信し、第二端末側管理部45は、第二端末30が学習開始連絡データを受信したときに学習者情報を学習中と設定し、第二端末側報知部42は、確認者Tに対して、学習者情報が学習中に設定された際に学習者情報を報知する。
こうすることにより、確認者Tは、学習者Sが学習を開始したか否かの確認ができるので、より正確且つ容易に学習者Sの進捗状況や理解度を把握することができる。
【0188】
[11]上記のプログラミング学習支援システム1は、第二端末30は、第一端末10が複数存在する場合に、複数の第一端末10の中から第一端末10を選択する第二端末側選択部46をさらに有し、第二端末側取得部41は、第二端末側選択部46により選択された第一端末10の第一端末側送信部20が送信した少なくとも一つのデータに基づく情報を取得する。
こうすることにより、確認者Tは、特定の学習者Sの状況を個別に確認することができるので、より正確且つ容易に学習者Sの進捗状況や理解度を把握することができる。
【0189】
[12]上記のプログラミング学習支援システム1は、プログラム編集画面には、それぞれがコード文字列と対応付けられた1又は複数のコード入力用ブロック8を表示し、第一端末側操作受付部16は、コード入力用ブロック8に対する選択操作を受け付け、第一端末側表示部17は、選択されたコード入力用ブロック8に対応するコード文字列をプログラム編集画面に入力して表示する。
こうすることにより、学習者Sは、ブロックを用いてプログラム編集を行うことにより、プログラム編集を簡易化でき、さらにプログラムコードも併せて確認できるので、学習者Sの学習効率をより向上させることができる。
【0190】
[13]上記のプログラミング学習支援システム1は、プログラムは、図形描画プログラムであり、プログラム編集画面には、図形描画エリアと図形描画エリア内を移動可能なカーソル9とを表示し、第一端末側操作受付部16は、カーソル9の移動操作と、カーソル9の表示位置に基づく位置指定操作と、を受け付け、第一端末側表示部17は、位置指定操作が行われたときのカーソル表示位置に応じた図形描画エリア内の座標位置をプログラム編集画面に入力して表示する。
こうすることにより、学習者Sは、カーソルで座標位置を指定してプログラム編集を行うことにより、プログラム編集を簡易化でき、学習者Sの学習効率をより向上させることができる。
【0191】
[14]また、本実施形態に係るプログラミング学習支援方法によれば、互いに通信可能な第一端末10及び第二端末30を用いたプログラミング学習支援方法であって、第一端末10を利用する学習者Sによる編集操作を受け付け、編集操作に従って編集されたプログラムコードを含むプログラム編集画面を表示させ、第二端末30を利用する確認者Tに対して、プログラムコードを示すデータ、及び、プログラムコードの実行結果を示すデータの少なくとも一つのデータに基づく情報を報知する。
こうすることで、学習者Sが編集したプログラムコード又はそのプログラムコードの実行結果を、教員等の確認者Tが、学習者Sとの間で特別なやり取りの必要もなく、任意のタイミングで確認することができる。そのため、確認者Tにとっては、学習者Sの進捗状況や理解度を正確且つ容易に把握することができる。一方、学習者Sにとっては、編集したプログラムの内容を確認者Tに確認してもらうことができるので、学習効率を向上させることができる。
【符号の説明】
【0192】
1 プログラミング学習支援システム
2 プログラム編集画面
3 プログラム実行画面
4 プログラムコード表示領域
5 プログラム実行領域
6 課題表示領域
7 ブロック表示領域
8 コード入力用ブロック
9 カーソル
10 第一端末
11 プロセッサ
12 記憶装置
13 通信用インターフェース
14 入力装置
15 出力装置
16 第一端末側操作受付部
17 第一端末側表示部
18 第一端末側実行部
19 第一端末側記憶部
20 第一端末側送信部
21 第一端末側取得部
22 第一端末側報知部
23 第一端末側受信部
24 第一端末側データ作成部
25 第一端末側判定部
30 第二端末
31 プロセッサ
32 記憶装置
33 通信用インターフェース
34 入力装置
35 出力装置
36 第二端末側操作受付部
37 第二端末側表示部
38 第二端末側実行部
39 第二端末側記憶部
40 第二端末側送信部
41 第二端末側取得部
42 第二端末側報知部
43 第二端末側受信部
44 第二端末側データ作成部
45 第二端末側管理部
46 第二端末側選択部
47 第二端末側判定部
52 プログラム編集画面
53 プログラム実行画面
54 プログラムコード表示領域
55 プログラム実行領域
56 課題選択画面
57 学習者管理画面
60 サーバ
C キャラクター
D 学習者情報テーブル
N ネットワーク
S 学習者
T 確認者
X 座標
Y 座標
Z 座標