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

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

▶ 株式会社プログミーの特許一覧

特許7549928プログラミング教育方法、プログラミング教育プログラム、プログラミング教育サーバ、及びプログラミング教育端末
<>
  • 特許-プログラミング教育方法、プログラミング教育プログラム、プログラミング教育サーバ、及びプログラミング教育端末 図1
  • 特許-プログラミング教育方法、プログラミング教育プログラム、プログラミング教育サーバ、及びプログラミング教育端末 図2
  • 特許-プログラミング教育方法、プログラミング教育プログラム、プログラミング教育サーバ、及びプログラミング教育端末 図3
  • 特許-プログラミング教育方法、プログラミング教育プログラム、プログラミング教育サーバ、及びプログラミング教育端末 図4
  • 特許-プログラミング教育方法、プログラミング教育プログラム、プログラミング教育サーバ、及びプログラミング教育端末 図5
  • 特許-プログラミング教育方法、プログラミング教育プログラム、プログラミング教育サーバ、及びプログラミング教育端末 図6
  • 特許-プログラミング教育方法、プログラミング教育プログラム、プログラミング教育サーバ、及びプログラミング教育端末 図7
  • 特許-プログラミング教育方法、プログラミング教育プログラム、プログラミング教育サーバ、及びプログラミング教育端末 図8
  • 特許-プログラミング教育方法、プログラミング教育プログラム、プログラミング教育サーバ、及びプログラミング教育端末 図9
  • 特許-プログラミング教育方法、プログラミング教育プログラム、プログラミング教育サーバ、及びプログラミング教育端末 図10
  • 特許-プログラミング教育方法、プログラミング教育プログラム、プログラミング教育サーバ、及びプログラミング教育端末 図11
  • 特許-プログラミング教育方法、プログラミング教育プログラム、プログラミング教育サーバ、及びプログラミング教育端末 図12
  • 特許-プログラミング教育方法、プログラミング教育プログラム、プログラミング教育サーバ、及びプログラミング教育端末 図13
  • 特許-プログラミング教育方法、プログラミング教育プログラム、プログラミング教育サーバ、及びプログラミング教育端末 図14
  • 特許-プログラミング教育方法、プログラミング教育プログラム、プログラミング教育サーバ、及びプログラミング教育端末 図15
  • 特許-プログラミング教育方法、プログラミング教育プログラム、プログラミング教育サーバ、及びプログラミング教育端末 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-04
(45)【発行日】2024-09-12
(54)【発明の名称】プログラミング教育方法、プログラミング教育プログラム、プログラミング教育サーバ、及びプログラミング教育端末
(51)【国際特許分類】
   G09B 19/00 20060101AFI20240905BHJP
   G09B 7/02 20060101ALI20240905BHJP
   G09B 5/10 20060101ALI20240905BHJP
   G06Q 50/20 20120101ALI20240905BHJP
   G06F 8/34 20180101ALI20240905BHJP
【FI】
G09B19/00 Z
G09B7/02
G09B5/10
G06Q50/20
G06F8/34
【請求項の数】 10
(21)【出願番号】P 2023202071
(22)【出願日】2023-11-29
(62)【分割の表示】P 2023502755の分割
【原出願日】2023-01-06
(65)【公開番号】P2024097750
(43)【公開日】2024-07-19
【審査請求日】2023-12-27
【新規性喪失の例外の表示】特許法第30条第2項適用 1.公開日:令和4年3月23日/令和4年3月26日/令和4年5月2日(他8件) 公開場所:Webアプリケーション向けプラットフォーム「Firebase」 2.公開日:令和4年12月26日 公開場所:Webアプリケーション向けプラットフォーム「Firebase」 3.掲載年月日:令和4年1月31日 掲載アドレス:https://prtimes.jp/main/html/rd/p/000000015.000070335.html 4.掲載年月日:令和4年3月27日 掲載アドレス:https://prtimes.jp/main/html/rd/p/000000016.000070335.html 5.掲載年月日:令和4年5月31日 掲載アドレス:https://prtimes.jp/main/html/rd/p/000000019.000070335.html 6.掲載年月日:令和4年6月30日 掲載アドレス:https://prtimes.jp/main/html/rd/p/000000020.000070335.html 7.掲載年月日:令和4年10月31日 掲載アドレス:https://prtimes.jp/main/html/rd/p/000000022.000070335.html 8.掲載年月日:令和4年11月30日 掲載アドレス:https://prtimes.jp/main/html/rd/p/000000023.000070335.html 9.掲載年月日:令和4年12月26日 掲載アドレス:https://prtimes.jp/main/html/rd/p/000000024.000070335.html 10.掲載年月日:令和4年5月3日 掲載アドレス:https://www.prlog.org/12915435-visual-programming-progummy-wins-pitch-event-toryu-movheld-at-work-lounge-mov-operated-by-kokuyo.html
【新規性喪失の例外の表示】特許法第30条第2項適用 11.掲載年月日:発行日:令和4年9月1日 掲載アドレス:https://www.prlog.org/12929048-progummy-collaborative-visual-programming-app-has-raised-over-750k-in-funding-since-foundation.html 12.掲載年月日:令和4年12月26日 掲載アドレス:https://www.prlog.org/12945097-the-visual-collaborative-programming-app-progummy-launches-free-version-for-consumers.html 13.掲載年月日:令和4年12月22日 掲載アドレス:https://progummy.medium.com/its-not-just-programming-skills-that-will-lead-to-the-future-2679b2604d04 14.掲載年月日:令和4年3月10日 掲載アドレス:https://www.smartround.com/public/startups/progummy 15.公開日:令和4年2月27日 放送番組:YouTubeチャンネル「Progummy」 動画URL:https://www.youtube.com/watch?v=J8DFxfEPVZY 16.公開日:令和4年3月26日 放送番組:YouTubeチャンネル「Progummy」 動画URL:https://www.youtube.com/watch?v=x_xkrBZjNAA
【新規性喪失の例外の表示】特許法第30条第2項適用 17.公開日:令和4年10月7日 放送番組:YouTube「白川寧々チャンネル」 動画URL:https://www.youtube.com/watch?v=-3ODOG063jI 18.刊行物:プログミーニュース 発行日:令和4年1月13日 19.刊行物:プログミーニュース 発行日:令和4年2月28日 20.集会名:Edvation Open Lab成果報告会Day1「教育イノベーターとディシジョンメーカーをつなぐ3ヶ月の育成プログラム成果報告会」 開催日:令和4年2月19日 21.集会名:SXSW EDU 2022 開催日:令和4年3月7日 22.集会名:Bett UK 2022 開催日:令和4年3月23日 23.集会名:Tera school プログラミングイベント 開催日:令和4年3月19日 24.集会名:コクヨプログラミングワークショップ 開催日:令和4年8月6日 25.集会名:商談 開催日:令和4年1月6日/令和4年1月11日/令和4年1月13日(他9件) 26.集会名:商談 開催日:令和4年3月7日/令和4年3月8日/令和4年3月9日(他25件) 27.集会名:採用活動 開催日:令和4年1月14日/令和4年3月3日/令和4年3月7日(他56件) 28.集会名:投資家等面談 開催日:令和4年1月6日/令和4年1月12日午前7時/令和4年1月12日午後3時(他71件) 29.集会名:ピッチイベント 開催日:令和4年1月26日/令和4年1月27日/令和4年1月28日(他12件)
【早期審査対象出願】
(73)【特許権者】
【識別番号】521090667
【氏名又は名称】株式会社プログミー
(74)【代理人】
【識別番号】110001139
【氏名又は名称】SK弁理士法人
(74)【代理人】
【識別番号】100130328
【弁理士】
【氏名又は名称】奥野 彰彦
(74)【代理人】
【識別番号】100130672
【弁理士】
【氏名又は名称】伊藤 寛之
(72)【発明者】
【氏名】石橋 康大
【審査官】相川 俊
(56)【参考文献】
【文献】韓国公開特許第10-2020-0078942(KR,A)
【文献】米国特許出願公開第2019/0146758(US,A1)
【文献】韓国公開特許第10-2012-0100125(KR,A)
【文献】特開2022-133902(JP,A)
【文献】古家一樹,ほか2名,"複数人でのプログラミング体験を向上させるScratch上での共同実行環境",情報科学技術フォーラム講演論文集,2022年08月30日,21巻,第4分冊,pp.225-226
【文献】"Visual Studio Code Live Share でモブプログラミング(2)",まだプログラマーですが何か?[online],2020年04月23日,[2023年7月26日検索],https://dotnsf.blog.jp/archives/1077356596.html
【文献】"TeamsでOfficeファイルを同時編集する",株式会社イルミネート・ジャパン [online],2020年08月03日,[2023年1月25日検索],<https://www.illuminate-j.jp/blog/teams-office-coauthoringtail/067059aHOfjCKR.html>
(58)【調査した分野】(Int.Cl.,DB名)
G09B 19/00
G09B 7/02
G09B 5/10
G06Q 50/20
G06F 8/34
(57)【特許請求の範囲】
【請求項1】
プログラミング教育方法であって、
編集受付工程と、コード共有工程と、一覧表示工程と、選択要素表示工程とを備え、
前記編集受付工程では、第1端末上でソースコードの編集を受け付け、
前記コード共有工程では、前記第1端末上で編集されたソースコードを少なくとも第2端末との間で共有し、
前記一覧表示工程では、前記第1端末及び前記第2端末それぞれの表示手段に共通する複数の要素の一覧として、第1の要素の一覧及び第2の要素の一覧を表示するとともに、これら第1の要素の一覧及び第2の要素の一覧における各複数の要素をそれぞれ択一的に選択状態と非選択状態とで切替可能とし、
前記選択状態は、前記第1の要素及び前記第2の要素の内容が前記表示手段に表示される状態であり、前記非選択状態は、前記第1の要素及び前記第2の要素の内容が前記表示手段に表示されない状態であって、
前記第2の要素の一覧は、前記第1の要素の一覧の要素ごとに表示されるものであって、
選択要素表示工程では、前記第1端末上の前記第1の要素の一覧及び前記第2の要素の一覧において、前記第2端末上における前記第1の要素の一覧及び前記第2の要素の一覧の各複数の要素の前記選択状態を示すためのマークをそれぞれ表示する、
プログラミング教育方法。
【請求項2】
請求項1に記載のプログラミング教育方法であって、
前記共有したソースコードは、その実行中に操作入力を受け付けて前記第1端末及び前記第2端末の各画面上の実行エリアに配置される操作対象に所定の動作を行わせるためのソースコードである、
プログラミング教育方法。
【請求項3】
請求項2に記載のプログラミング教育方法であって、
前記一覧表示工程で表示する前記第2の要素の一覧の前記複数の要素は、ソースコードの編集を受け付けるためのエリアを表示するための要素と前記操作対象に対して設定可能な複数の絵を選択するエリアを表示するための要素の少なくとも2つの要素を含み、
前記マークは、前記第1端末上の前記少なくとも2つの要素において、前記第2端末上における前記少なくとも2つの要素の前記選択状態を示すためのマークである、
プログラミング教育方法。
【請求項4】
請求項3に記載のプログラミング教育方法であって、
前記少なくとも2つの要素は、それぞれ対応するエリアから突き出したタブであって、
前記マークは、前記タブ上に表示されるランプである、
プログラミング教育方法。
【請求項5】
請求項2に記載のプログラミング教育方法であって、
前記一覧表示工程で表示する前記第1の要素の一覧の前記複数の要素は、複数の前記操作対象であって、
前記マークは、前記第1端末上の複数操作対象において、前記第2端末上における複数操作対象の前記選択状態を示すためのマークである、
プログラミング教育方法。
【請求項6】
請求項1に記載のプログラミング教育方法であって、
前記一覧表示工程では、前記第1端末及び前記第2端末それぞれの表示手段に共通する複数の要素の一覧として、第3の要素の一覧をさらに表示するとともに、当該第3の要素の一覧における複数の要素をそれぞれ選択状態と非選択状態とで切替可能とし、
前記第3の要素の一覧の前記複数の要素は、プログラミング教育に用いる複数の教材であって、
前記マークは、前記第1端末上の前記複数の教材の一覧において、前記第2端末上における前記複数の教材の一覧の前記選択状態を示すためのマークである、
プログラミング教育方法。
【請求項7】
請求項1~請求項6のいずれかに記載のプログラミング教育方法であって、
前記編集受付工程において、ビジュアルプログラミング言語により前記ソースコードを編集可能である、
プログラミング教育方法。
【請求項8】
請求項1~請求項5のいずれかに記載のプログラミング教育方法であって、
前記コード共有工程において、前記第1端末上で編集されたソースコードは、インターネット上のサーバを介して前記第2端末に共有される、
プログラミング教育方法。
【請求項9】
プログラミング教育プログラムであって、
コンピュータに、編集受付工程と、コード共有工程と、一覧表示工程と、選択要素表示工程とを実行させ、
前記編集受付工程では、第1端末上でソースコードの編集を受け付け、
前記コード共有工程では、前記第1端末上で編集されたソースコードを少なくとも第2端末との間で共有し、
前記一覧表示工程では、前記第1端末及び前記第2端末それぞれの表示手段に共通する複数の要素の一覧として、第1の要素の一覧及び第2の要素の一覧を表示するとともに、これら第1の要素の一覧及び第2の要素の一覧における各複数の要素をそれぞれ択一的に選択状態と非選択状態とで切替可能とし、
前記選択状態は、前記第1の要素及び前記第2の要素の内容が前記表示手段に表示される状態であり、前記非選択状態は、前記第1の要素及び前記第2の要素の内容が前記表示手段に表示されない状態であって、
前記第2の要素の一覧は、前記第1の要素の一覧の要素ごとに表示されるものであって、
選択要素表示工程では、前記第1端末上の前記第1の要素の一覧及び前記第2の要素の一覧において、前記第2端末上における前記第1の要素の一覧及び前記第2の要素の一覧の各複数の要素の前記選択状態を示すためのマークをそれぞれ表示する、
プログラム。
【請求項10】
プログラミング学習者が用いるプログラミング教育端末であって、
通信手段と、入力手段と、表示手段と、制御手段とを備え、
前記通信手段は、直接又はサーバを介して他のプログラミング学習者又は教育者が用いる他端末と通信可能に構成され、
前記入力手段は、前記プログラミング学習者からの入力を受け付けるよう構成され、
前記表示手段は、前記プログラミング学習者に対し、少なくともソースコードを編集するコードエリアを表示するよう構成され、
前記制御手段は、前記表示手段に、当該表示手段と前記他端末の表示手段に共通する複数の要素の一覧として第1の要素の一覧及び第2の要素の一覧を表示させるとともに、これら第1の要素の一覧及び第2の要素の一覧における各複数の要素をそれぞれ択一的に選択状態と非選択状態とで切替可能とし、
前記選択状態は、前記第1の要素及び前記第2の要素の内容が前記表示手段に表示される状態であり、前記非選択状態は、前記第1の要素及び前記第2の要素の内容が前記表示手段に表示されない状態であって、
前記第2の要素の一覧は、前記第1の要素の一覧の要素ごとに表示されるものであって、
前記制御手段はさらに、前記第1の要素の一覧及び前記第2の要素の一覧において、前記他端末上における前記第1の要素の一覧及び前記第2の要素の一覧の各複数の要素の前記選択状態を示すためのマークをそれぞれ表示させる、
プログラミング教育端末。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラミング教育のための方法、プログラム、サーバ、及び端末に関する。
【背景技術】
【0002】
従来、プログラミングを学習するためのシステムがある。例えば、特許文献1には、学習者がビジュアルプログラミングによって作成したプログラムの正誤判定が可能なプログラミング学習装置及びプログラムが開示されている。また、非特許文献1には、複数の学習者が共同でビジュアルプログラミングを行うことが可能なビジュアルプログラミングツールが開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】実開平5-313872号公報
【非特許文献】
【0004】
【文献】角征典他:共同プログラミングを実現する初心者向けビジュアルプログラミングツールJointryの開発と評価:情報処理学会研究報告 Vol. 2014-CE-125 No. 2
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、非特許文献1に開示される共同プログラミングツールは、ブロックを用いたソースコード(プログラム)の編集画面や編集操作は共有されるものの、作成したソースコードの実行内容まで共有されるわけではなかった。したがって、例えば、複数人で同時に操作するようなゲームのプログラムを作成しても、当該ゲームを一緒に実行するようなこと(マルチプレイ)はできなかった。
【0006】
本発明はこのような事情に鑑みてなされたものであり、ソースコードの実行内容を共有することの可能なプログラミング教育方法を提供するものである。
【課題を解決するための手段】
【0007】
本発明によれば、以下の発明が提供される。
[1]プログラミング教育方法であって、編集受付工程と、コード共有工程と、実行工程と、切替工程とを備え、前記編集受付工程では、第1端末上でソースコードの編集を受け付け、前記コード共有工程では、前記第1端末上で編集されたソースコードを少なくとも第2端末との間で共有し、前記実行工程では、個別実行モード又は共同実行モードで前記共有したソースコードを実行し、前記個別実行モードは、前記コード共有工程において共有したソースコードを前記第1端末上でのみ実行するか、又は当該ソースコードの実行を前記第1端末上でのみ再現するモードであり、前記共同実行モードでは、前記コード共有工程において共有したソースコードを前記第1端末上及び前記第2端末上で実行するか、又は当該ソースコードの実行を前記第1端末上及び前記第2端末上で再現するモードであって、前記切替工程では、少なくとも前記第1端末への入力に基づいて、前記個別実行モードと前記共同実行モードとを切り替える、プログラミング教育方法。
[2][1]に記載のプログラミング教育方法であって、前記共有したソースコードは、実行中に入力を受け付けて所定の動作を行うためのソースコードであり、前記共同実行モードにおいて、前記共有したソースコードの実行中、前記第1端末への操作入力は前記第2端末にも共有され、前記第2端末への操作入力は前記第1端末にも共有される、プログラミング教育方法。
[3][1]又は[2]に記載のプログラミング教育方法であって、前記編集受付工程において、ビジュアルプログラミング言語により前記ソースコードを編集可能である、プログラミング教育方法。
[4][1]~[3]のいずれかに記載のプログラミング教育方法であって、前記切替工程では、前記第1端末の表示手段に表示される切替部の操作に基づいて、前記個別実行モードと前記共同実行モードとを切り替える、プログラミング教育方法。
[5][1]~[4]のいずれかに記載のプログラミング教育方法であって、前記共同実行モードにおいて、前記第1端末と前記第2端末のいずれか一方の端末において実行操作を受け付けた場合、前記共有したソースコードが前記第1端末上及び前記第2端末上でそれぞれ実行され、所定のタイミングごとに、前記いずれか一方の端末の実行結果が他方の端末に同期される、プログラミング教育方法。
[6][1]~[5]のいずれかに記載のプログラミング教育方法であって、前記コード共有工程において、前記第1端末上で編集されたソースコードは、インターネット上のサーバを介して前記第2端末に共有される、プログラミング教育方法。
[7]プログラミング教育プログラムであって、コンピュータに、編集受付工程と、コード共有工程と、実行工程と、切替工程とを実行させ、前記編集受付工程では、第1端末上でソースコードの編集を受け付け、前記コード共有工程では、前記第1端末上で編集されたソースコードを少なくとも第2端末との間で共有し、前記実行工程では、個別実行モード又は共同実行モードで前記共有したソースコードを実行し、前記個別実行モードは、前記コード共有工程において共有したソースコードを前記第1端末上でのみ実行するか、又は当該ソースコードの実行を前記第1端末上でのみ再現するモードであり、前記共同実行モードは、前記コード共有工程において共有したソースコードを前記第1端末上及び前記第2端末上で実行するか、又は当該ソースコードの実行を前記第1端末上及び前記第2端末上で再現するモードであって、前記切替工程では、少なくとも前記第1端末への入力に基づいて、前記個別実行モードと前記共同実行モードとを切り替える、プログラム。
[8]プログラミング教育サーバであって、通信手段と、制御手段とを備え、前記通信手段は、プログラミング学習者又は教育者が用いる第1端末及び第2端末と通信可能に構成され、前記制御手段は、ソースコード共有部と、実行モード切替部と、を備え、前記ソースコード共有部は、前記第1端末で編集されたソースコードを取得し、前記第2端末に送信するよう構成され、前記実行モード切替部は、前記第1端末及び前記第2端末の少なくとも一方から切替入力情報を取得し、前記ソースコードを端末ごとに実行する個別実行モードと前記第1端末と前記第2端末とで前記ソースコードの実行を共有する共同実行モードとを切り替えるよう構成される、プログラミング教育サーバ。
[9]プログラミング学習者が用いるプログラミング教育端末であって、通信手段と、入力手段と、表示手段と、制御手段とを備え、前記通信手段は、直接又はサーバを介して他のプログラミング学習者又は教育者が用いる他端末と通信可能に構成され、前記入力手段は、前記プログラミング学習者からの入力を受け付けるよう構成され、前記表示手段は、前記プログラミング学習者に対し、少なくともソースコードを編集するコードエリアを表示するよう構成され、前記制御手段は、編集受付部と、コード送受信部と、実行部と、切替受付部と、を備え、前記編集受付部は、前記プログラミング学習者から前記入力手段を介して前記コードエリアにおけるソースコードの編集を受け付けるよう構成され、前記コード送受信部は、前記ソースコードを前記他端末との間で送受信することで、当該ソースコードを前記他端末との間で共有するよう構成され、前記実行部は、前記ソースコードを自端末単独で実行する個別実行モードと、前記自端末と前記他端末とで前記ソースコードの実行を共有する共同実行モードの2つの実行モードで前記ソースコードを実行するよう構成され、前記切替受付部は、前記自端末から前記入力手段を介して前記個別実行モードと前記共同実行モードの切り替えを受け付けるとともに、前記他端末からも前記個別実行モードと前記共同実行モードの切り替えを受け付けるよう構成される、プログラミング教育端末。
[10]プログラミング教育方法であって、編集受付工程と、コード共有工程と、一覧表示工程と、選択要素表示工程とを備え、前記編集受付工程では、第1端末上でソースコードの編集を受け付け、前記コード共有工程では、前記第1端末上で編集されたソースコードを少なくとも第2端末との間で共有し、前記一覧表示工程では、前記第1端末及び前記第2端末それぞれの表示手段に共通する複数の要素の一覧を表示するとともに、当該複数の要素を選択状態と非選択状態とで切替可能とし、選択要素表示工程では、前記第1端末上の前記一覧において、前記第2端末上における前記複数の要素の前記選択状態を示すためのマークを表示するプログラミング教育方法。
[11]プログラミング教育方法であって、編集受付工程と、コード共有工程と、実行工程とを備え、前記編集受付工程では、実行中に入力を受け付けて所定の動作を行うためのソースコードの編集を第1端末上で受け付け、前記コード共有工程では、前記第1端末上で編集されたソースコードを少なくとも第2端末との間で共有し、前記実行工程では、前記コード共有工程において共有したソースコードを前記第1端末上及び前記第2端末上でそれぞれ実行し、前記実行工程において、前記共有したソースコードの実行中、前記第1端末への操作入力を前記第2端末に共有し、前記第2端末への操作入力を前記第1端末に共有することで、各端末のユーザによる操作入力を共有する、プログラミング教育方法。
【0008】
本発明によれば、実行工程が個別実行モードに加えて共同実行モードでソースコードを実行できるようになっており、共同実行モードにおいて、共有したソースコードを、第1端末上及び第2端末上で実行するか、第1端末上及び第2端末上で再現するようになっている。これにより、第1端末のユーザと第2端末のユーザでソースコードの実行内容を共有することが可能となっている。
【0009】
また、ユーザは、切替工程により、作成したソースコードを自分の端末(第1端末)上でのみ実行(再現)するか、共有相手の端末(第2端末)でも実行(再現)するかを切り替えることができる。これにより、ユーザは、完成前のソースコードを一度自分の端末だけで実行し、デバッグを行うことも可能となっている。
【図面の簡単な説明】
【0010】
図1】本発明の一実施形態に係る情報処理システムSYSの全体構成を示す図である。
図2図2Aは、図1の第1端末1のハードウェア構成及び機能構成を示すブロック図であり、図2Bは、図1の第2端末2のハードウェア構成及び機能構成を示すブロック図である。
図3図1のサーバ3のハードウェア構成及び機能構成を示すブロック図である。
図4図1の第1端末1の表示手段14に表示される、第1スプライトSp1を選択した状態を示す画面D1の表示例を示す図である。
図5図4の画面D1のE部拡大図である。
図6図4の画面D1のコードエリアA3の拡大図である。
図7図7Aは、図4の画面D1のステージエリアA4(実行エリア)の拡大図であり、図9Bは、ステージエリアA4の全画面表示した画面D1aの表示例である。
図8図4の画面D1のスプライトエリアA5の拡大図である。
図9図1の第1端末1の表示手段14に表示される、第2スプライトSp2を選択し状態を示す画面D1の表示例を示す図である。
図10図1の第2端末2の表示手段24に表示される、第1スプライトSp1を選択し、且つコスチュームエリアA7を表示した状態を示す画面D2の表示例を示す図である。
図11】個別実行モードM1において第1端末1の入力手段13にキー入力があったときの第1端末及び第2端末2のステージエリアA4の様子を示す説明図である。
図12】共同実行モードM2において第1端末1の入力手段13にキー入力があったときの第1端末1、第2端末2及びサーバ3間で行われる処理を示すシーケンス図である。
図13】共同実行モードM2において第1端末1の入力手段13にキー入力があったときの第1端末1及び第2端末2のステージエリアA4の様子を示す説明図である。
図14】共同実行モードM2において第1端末1の入力手段13にキー入力があったときにスプライト状態が同期される様子を示す説明図である。
図15図15Aは、個別実行モードM1における切替ボタンB3の様子を示す拡大図であり、図15Bは、共同実行モードM2における切替ボタンB3の様子を示す説明図である。
図16】個別実行モードM1において第1端末1の画面D1上の切替ボタンB3がクリックされたときの第1端末1、第2端末2及びサーバ3間で行われる処理を示すシーケンス図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態について説明する。以下に示す実施形態中で示した各種特徴事項は、互いに組み合わせ可能である。また、各特徴について独立して発明が成立する。
【0012】
1.情報処理システムSYSの全体構成
図1は、本発明の一実施形態に係る情報処理システムSYSの全体構成を示す図である。本実施形態の情報処理システムSYSは、プログラミングを学習するためのシステムである。本実施形態において、情報処理システムSYSは、MITメディアラボの開発したOSS(オープンソースソフトウェア)であるスクラッチ(Scratch3.0)をベースとして構成され、Webアプリケーションとして提供される。
【0013】
ここで、スクラッチは、具体的には、オンライン上で提供されるビジュアルプログラミング言語である。スクラッチでは、ソースコード(プログラム)の作成に必要な多数のコマンドが、視覚的な命令ブロックとして予め用意されている。プログラミング学習者(ユーザ)は、「スプライト」と呼ばれるキャラクターを準備し、用意された命令ブロックからスプライトに適用される1つまたは複数のコマンドを選択して「コードエリア」上で組み合わせ、命令ブロックのパラメータを編集する。これにより、プログラミング学習者は、スプライトを「ステージ」と呼ばれる実行エリアで動作させるソースコードを簡単に作成することができ、当該ソースコードを実行することで、スプライトをアニメーションのように動作させることができる。なお、スクラッチでは、1つのスプライトに対して「コスチューム」と呼ばれる絵を複数設定して、切り替えて使用することができる。また、ソースコードの実行中に音を出したり音楽を流すことも可能である。そして、ソースコード、コスチューム及び音の情報を合わせてひとまとまりのデータとして保存したものは、「プロジェクト」と呼ばれる。
【0014】
本実施形態に係る情報処理システムSYSは、このようなスクラッチの機能をベースとし、作成したソースコード(プログラム)及びその実行を、複数の学習者の間、すなわち、複数の端末間で共有できるよう改良したことを特徴としたシステムである。
【0015】
図1に示すように、本実施形態の情報処理システムSYSは、具体的には、第1端末1と、第2端末2と、サーバ3とがネットワークNを介して接続されることで構成される。ここで、第1端末1及び第2端末2は、プログラミングを学習する第1学習者L1及び第2学習者L2が使用する端末である。ただし、いずれか一方の端末は、プログラミングを教育する教育者が用いる端末であっても良い。
【0016】
また、サーバ3は、第1端末1及び第2端末2からの要求(入力)に応じ、所定のレスポンス(出力)を生成する装置である。加えて、ネットワークNは、インターネット、イントラネット、無線LAN、移動通信等の双方向の通信回線である。以下、各構成について具体的に説明する。
【0017】
2.第1端末1及び第2端末2のハードウェア構成
図2Aは、第1端末1のハードウェア構成及び機能構成を示すブロック図である。第1端末1は、例えばパーソナルコンピュータ(PC)、ノートPC、スマートフォンやタブレット端末等の情報処理端末とされる。第1端末1は、具体的には、図2Aに示すように、制御手段10と、通信手段11と、記憶手段12と、入力手段13と、表示手段14とを備える。これらの各構成は、バス15を介して相互に電気的に接続されている。
【0018】
制御手段10は、例えば、CPU(Central Processing Unit)、マイクロプロセッサ、DSP(Digital Signal Processor)等であり、サーバ3全体の動作を制御する。制御手段10の機能構成については後述する。
【0019】
通信手段11は、例えばNIC(Network Interface Controller)であり、ネットワークNに接続する機能を有する。なお、通信手段11は、NICに代えて又はNICとともに、無線LAN(Local Area Network)に接続する機能、無線WAN(Wide Area Network)に接続する機能、例えばBluetooth(登録商標)等の近距離の無線通信、及び赤外線通信等を可能とする機能を有してもよい。第1端末1は、ネットワークNを介してサーバ3と接続され、各種データの送受信を行うことができる。
【0020】
記憶手段12の一部は、例えば、RAM(Random Access Memory)やDRAM(Dynamic Random Access Memory)等で構成されており、制御手段10による各種プログラムに基づく処理の実行時のワークエリア等として用いられる。また、記憶手段12の一部は、例えば、ROM(Read Only Memory)等の不揮発性メモリ、HDD(Hard Disk Drive)又はSSD(Solid State Drive)であり、各種データ及び制御手段10の処理に利用されるプログラム等を保存する。なお、記憶手段12の少なくとも一部は、外部クラウドや分散ストレージから構成されていても良い。
【0021】
記憶手段12に記憶されるプログラムは、例えば、第1端末1の基本的な機能を実現するためのOS(Operating System)、各種ハードウェア制御するためのドライバ、各種機能を実現するためのプログラム等であって、本実施形態に係るコンピュータプログラムを含む。
【0022】
入力手段13は、第1端末1を使用する第1学習者L1の入力を受け付ける装置であり、マウス、キーボード、タッチパネル等の各種入力デバイスで構成される。また、表示手段14は、液晶ディスプレイやタッチパネルディスプレイ等であり、ユーザに対し画面等を表示する。
【0023】
一方、図2Bは、第2端末2のハードウェア構成及び機能構成を示すブロック図である。第2端末2は、具体的には、図2Bに示すように、制御手段20と、通信手段21と、記憶手段22と、入力手段23と、表示手段24とを備える。これらの各構成は、バス25を介して相互に電気的に接続されている。なお、第2端末2は、本願で説明する機能を奏する限りにおいて第1端末1と同一の構成であるため、その詳細な説明を省略する。
【0024】
3.サーバ3のハードウェア構成
図3は、サーバ3のハードウェア構成及び機能構成を示すブロック図である。図3に示すように、サーバ3は、具体的には、制御手段30と、記憶手段31と、通信手段32とを備える。これらの各構成は、バス33を介して相互に電気的に接続される。なお、制御手段30、記憶手段31及び通信手段32の一般的なハードウェア構成は、上述した第1端末1のものと同じであるため、その説明を省略する。
【0025】
なお、サーバ3は、図3に示すような1つの装置によって構成される必要はなく、所謂クラウドや分散コンピューティングの技術等を用いた、複数の装置によって実現されてもよい。また、記憶手段31が記憶する各種データ(情報)も、図示のように1つのデータベースで構成される必要はなく、分散データベースによって構成されても良い。
【0026】
なお、記憶手段31には、図3に示すように、プロジェクト情報PIが記憶される。プロジェクト情報PIは、第1端末1と第2端末2の一方又は共同で作成されたソースコードの情報に加え、当該ソースコードによって制御するスプライト(制御対象)の情報、スプライトのコスチュームの情報ソースコードの実行の際に再生する音声情報等を含む情報である。
【0027】
4.第1端末1(制御手段10)及び第2端末2(制御手段20)の機能構成
図2Aに示すように、第1端末1の制御手段10は、編集受付部10aと、コード送受信部10bと、実行部10cと、切替受付部10dと、操作入力送受信部10eとを備える。
【0028】
編集受付部10aは、後述する編集受付工程において、第1学習者L1から入力手段13を介してソースコードの編集を受け付けるよう構成される。本実施形態において、ソースコードの編集とは、図4及び図5に示すブロックパレットエリアA2に置かれた命令ブロックC1,C2,C3・・・を図4及び図6に示すコードエリアA3にドラッグ&ドロップして組み合わせることである。
【0029】
コード送受信部10bは、後述するコード共有工程において、サーバ3を介して、ソースコードを第2端末2との間で共有するよう構成される。具体的には、コード送受信部10bは、編集受付部10aにおいて編集を受け付けたソースコード、すなわち、コードエリアA3上にある命令ブロックの情報を通信手段11を介してサーバ3へ送信し、サーバ3を介して第2端末2へと送信する。また、コード送受信部10bは、第2端末2で編集されたソースコードをサーバ3及び通信手段11を介して受信する。
【0030】
実行部10cは、後述する実行工程において、コード送受信部10bにより共有されているソースコードを実行するよう構成される。本実施形態では、ソースコードを第1端末1単独(自端末単独)で実行する個別実行モードM1と、ソースコードを第2端末2(他端末)との間で共有する共同実行モードM2の2つの実行モードでソースコードが実行される。ここで、本実施形態に係る情報処理システムSYSでは、実行ボタンB1(図5参照)のクリックや入力手段13(マウス、キーボード)からの入力等のイベントを受け付けて所定の動作を行うようなソースコード(プログラム)が実行可能となっている。ソースコード及びその実行の一例については、後述する。
【0031】
切替受付部10dは、後述する切替工程において、入力手段13を介して個別実行モードM1と共同実行モードM2の切り替えを受け付ける。具体的には、切替受付部10dは、第1学習者L1による入力手段13の操作により表示手段14の画面D1又は画面D2上に配置されている切替部としての切替ボタンB3がクリックされると、これを受け付けて個別実行モードM1と共同実行モードM2とを切り替える。また、切替受付部10dは、切替ボタンB3がクリックされると、切替入力情報を通信手段11を介してサーバ3へ送信する。
【0032】
加えて、切替受付部10dは、第2学習者L2による入力手段23の操作により第2端末2からサーバ3へと送信された切替入力情報を通信手段11を介してサーバ3から受信し、第1端末1における個別実行モードM1と共同実行モードM2の切り替えを受け付ける。
【0033】
ここで、本実施形態において、個別実行モードM1及び共同実行モードM2の2つのモード(状態)は、サーバ3に記憶され、第1端末1と第2端末2とで共有される。つまり、本実施形態では、情報処理システムSYS全体で個別実行モードM1と共同実行モードM2のいずれか1つのモードが選択される。したがって、本実施形態では、第1端末1が個別実行モードM1であれば第2端末2も個別実行モードM1であり、第1端末1が共同実行モードM2であれば第2端末2も共同実行モードM2となる。
【0034】
操作入力送受信部10eは、後述する実行工程の共同実行モードM2において、入力手段13を介した第1学習者L1からの操作入力を取得し、第1操作入力情報として通信手段11及びサーバ3を介して第2端末2へ送信する。また、操作入力送受信部10eは、入力手段23を介した第2学習者L2からの操作入力の情報を、第2操作入力情報としてサーバ3及び通信手段11を介して第2端末2から受信する。これにより、共同実行モードM2では、サーバ3を介して、第1操作入力情報と第2操作入力情報が第1端末1と第2端末2で共有されることになる。ここで、送信される操作入力は、入力手段13,23に入力される全ての入力とされる。ただし、ソースコードにおいて規定された特定の入力のみ送信するようにすれば、送信する情報量を削減することも可能である。
【0035】
一方、第2端末2の制御手段20は、図2Bに示すように、編集受付部20aと、コード送受信部20bと、実行部20cと、切替受付部20dと、操作入力送受信部20eを備える。これらの各構成の機能については、第1端末1の制御手段10の各構成と同様であるため、その詳細な説明を省略する。
【0036】
なお、上述した第1端末1及び第2端末2の各機能構成は、ベースとなるスクラッチと同様、開発環境のインストールが不要なWebアプリケーションとして実現することが可能である。つまり、第1端末1及び第2端末2からサーバ3が提供するWebページにアクセスすることで、第1端末1及び第2端末2において所定のプログラムが実行され、これにより各種機能が実現される。なお、サーバ3へのアクセスには、プロジェクトごとに一意に定められるURLが用いられる。
【0037】
5.サーバ3(制御手段30)の機能構成
図3に示すように、サーバ3の制御手段30は、ソースコード共有部30aと、実行モード切替部30bと、操作入力共有部30cとを備える。
【0038】
ソースコード共有部30aは、後述するコード共有工程において、第1端末1と第2端末2の間でソースコードを共有するよう構成される。具体的には、ソースコード共有部30aは、第1端末1(コード送受信部10b)により送信されたソースコードを取得し、第2端末2(コード送受信部20b)に送信するよう構成される。また、ソースコード共有部30aは、第2端末2(コード送受信部20b)で編集されたソースコードを取得し、第1端末1(コード送受信部10b)に送信するよう構成される。共有されるソースコードは、各端末のコードエリアA3に配置される。また、取得したソースコードは、プロジェクト情報PIとして、記憶手段31にも記憶する。
【0039】
実行モード切替部30bは、後述する切替工程において、第1端末1及び第2端末2から切替入力情報を取得し、上述した個別実行モードM1と共同実行モードM2とを切り替えるよう構成される。具体的には、実行モード切替部30bは、切替入力情報を取得すると、記憶手段31から現在のモード(切替前のモード)の情報を読み出し、読み出したモードとは逆のモードに切り替える。また、実行モード切替部30bは、切替入力情報を第2端末2又は第1端末1に送信するとともに、変更したモードを記憶手段31に記憶する。なお、現在のモードの情報は、記憶手段31に記憶するのではなく、第1端末1及び第2端末2のみに記憶するようにしても良い。
【0040】
操作入力共有部30cは、後述する実行工程の共同実行モードM2において、第1端末1と第2端末2の間で、それぞれへの入力を互いに共有するよう構成される。具体的には、共同実行モードM2において、操作入力共有部30cは、第1端末1の操作入力送受信部10eにより送信された第1操作入力情報を取得して第2端末2へ送信する。また、操作入力共有部30cは、第2端末2の操作入力送受信部20eにより送信された第2操作入力情報を取得して第1端末1へ送信する。
【0041】
なお、上述したサーバ3の機能構成は、サーバ3に適宜インストールされるソフトウェア(いわゆるアプリを含む)によって実現してもよく、ハードウェアによって実現してもよい。ソフトウェアによって実現する場合、制御手段30がソフトウェアを構成するプログラムを実行することによって各種機能を実現することができる。また、単一のソフトウェアではなく、複数のソフトウェアによって実現されていても良い。
【0042】
プログラムを実行することで実現される場合、当該プログラムは、サーバ3が内蔵する記憶手段31に格納してもよく、コンピュータが読み取り可能な非一時的な記録媒体に格納してもよい。また、外部の記憶装置に格納されたプログラムを読み出し、いわゆるクラウドコンピューティングにより実現してもよい。もしくは、ハードウェアによって実現する場合、ASIC、SOC、FPGA、又はDRPなどの種々の回路によって実現することができる。また、上述した機能構成は、一部の機能構成をソフトウェア又はハードウェアによって、第1端末1や第2端末2で処理されるようにしてもよい。
【0043】
また、上述した機能構成は、複数のコンピュータによって実現してもよく、その場合、上述した各機能構成は、複数のコンピュータに分散して配置してもよい。
【0044】
6.画面例
次に、図4図10を用いて、本実施形態の情報処理システムSYSによって第1端末1の表示手段14及び第2端末2の表示手段24に表示される画面D1,D2の表示例を説明する。ただし、図4図10に示す画面例はあくまで一例であり、本発明の目的を達成可能である限りにおいて、適宜変更が可能である。なお、図4図10の表示例は、りんご型のスプライトSp1とバスケットボール型のスプライトSp2を左右に転がすプログラム(プロジェクト)の例となっている。
【0045】
図4は、第1端末1の表示手段14に表示される画面D1の表示例を示す図である。図4に示すように、画面D1には、表示エリアとして、メニューバーA1と、ブロックパレットエリアA2と、コードエリアA3と、ステージエリアA4と、スプライトエリアA5と、背景エリアA6が含まれる。
【0046】
メニューバーA1には、プロジェクトを最新の状態に更新するボタン、サーバ3にアップロードするボタン、言語を変更するボタン、プロジェクトを保存したり新たなプロジェクトを作成するボタン等(符号は省略)が配置される。また、メニューバーA1の右端には、同一のプロジェクトを開いている他の学習者L2がいる場合に、そのことを表示するマークX1が配置されている。
【0047】
ブロックパレットエリアA2には、図4のE部拡大図である図5にも示すように、プログラミングに用いる各種の命令ブロックC1,C2,C3・・・が種類ごとに配置されている。例えば、命令ブロックC1は、制御対象であるスプライトSp1,Sp2を設定した歩数(距離)だけ動かすための命令ブロックであり、命令ブロックC2,C3は、スプライトSp1,Sp2を設定した角度だけ回転させるための命令ブロックである。
【0048】
また、ブロックパレットエリアA2の上部には、択一的に選択状態と非選択状態とを切替可能な複数の要素の一覧としてのコードタブT1、コスチュームタブT2及び音タブT3が配置されている。例えば、図4は、コードタブT1が選択された状態であり、この状態でコスチュームタブT2をクリックすると、ブロックパレットエリアA2とコードエリアA3の代わりにコスチュームエリアA7が表示される(図10の第2端末2の表示手段24に表示される画面D2参照)。なお、コスチュームエリアA7では、後述するスプライトエリアA5で選択されているスプライトSp1,Sp2の衣装や色、その他の状態を変更することができる。また、図示は省略するが、音タブT3を選択すると、実行中に再生する音を調整することができる。
【0049】
コードエリアA3は、図6にも示すように、コードタブT1に配置された命令ブロックC1,C2,C3・・・を配置して組み合わせ、ソースコードを作成するエリアである図示例では、複数の命令ブロックの組み合わせからなる2つのスクリプトSc1,S2が配置されている。具体的には、スクリプトSc1は、設定したキーの押下を条件として規定する命令ブロックC4と、スプライトを設定した距離だけX軸方向(水平方向)へ移動させる命令ブロックC5と、スプライトを設定した角度だけ時計回りに回転させるC2とからなるスクリプトである。スクリプトSc1を実行して右矢印キーの操作入力を受け付けると、制御対象であるスプライトが右方向に転がるよう動作する。また、スクリプトSc2は、上述した命令ブロックC4及び命令ブロックC5と、スプライトを設定した角度だけ反時計回りに回転させるC3とからなるスクリプトである。スクリプトSc2を実行して左矢印キーの操作入力を受け付けると、制御対象であるスプライトが左方向に転がるよう動作する。なお、本実施形態において、コードエリアA3は、スプライトごとに設定される。したがって、後述するスプライトエリアA5においてスプライトを変更すると、コードエリアA3に配置された命令ブロックも切り替わることになる。
【0050】
ステージエリアA4は、図4及び図7Aにも示すように、制御対象であるスプライトを配置し、作成したソースコードを実行することによりスプライトを動作させる実行エリアである。図示例では、ステージエリアA4にはスプライトSp1,Sp2が配置されている。
【0051】
また、ステージエリアA4の左上には、実行ボタンB1と、実行停止ボタンB2と、切替ボタンB3が配置される。また、ステージエリアA4の右上には、ステージエリアA4を全画面表示する全画面表示ボタンB4等が配置される。なお、図7Bは、ステージエリアA4を全画面表示した画面D1aを示している。画面D1aには、上述した実行ボタンB1、実行停止ボタンB2及び切替ボタンB3と、全画面表示を終了する終了ボタンB5が配置されている。
【0052】
スプライトエリアA5は、図8にも示すように、スプライトの選択及び追加を行うためのエリアである。具体的には、スプライトエリアA5には、複数の要素の一覧として、複数のスプライトSp1,S2が配置されている。スプライトエリアA5に配置されたスプライトのいずれか1つが選択状態となっており、選択されたスプライトSp1(Sp2)を制御するソースコード及びコスチュームを、それぞれコードエリアA3及びコスチュームエリアA7で編集可能となっている。また、スプライトエリアA5には、新たなスプライトを追加するボタンB6も配置されている。なお、図4及び図8は、複数のスプライトのうちスプライトSp1が選択された状態を示し、図9は、スプライトSp2が選択された状態を示している。
【0053】
背景エリアA6は、ステージエリアA4の背景等を変更するためのエリアであり、現在の背景の情報に加え、背景を追加、変更するボタンB7が配置されている。
【0054】
なお、図10は、第2端末2の表示手段24に表示される画面D2の表示例を示す図である。図示例では、第2端末2において、スプライトSp1を選択し、且つコスチュームタブT2(図5参照)を選択してコスチュームエリアA7を表示した状態となっている。
【0055】
第2端末2においてこのような選択状態となっている場合、第1端末1の画面D1上では、図5の拡大図に示すように、第2端末2上で表示されているコスチュームタブT2に対応してコスチュームタブT2の左端部に表示中マークX2(ランプ)が表示される。また、図8の拡大図に示すように、スプライトエリアA5の対応するスプライトSp1の左上にも表示中マークX3(ランプ)が表示されるようになっている(選択要素表示工程)。これにより、共有相手が現在表示しているエリアやスプライトを把握することが可能となっている。なお、図9に示すように、第1端末1の画面D1においてスプライトSp2を選択している場合は、スプライトSp1を選択している場合と異なり、コスチュームタブT2の左端部に表示中マークX2は表示されない。また、図10に示すように、画面D2においては、第1端末1の画面D1でスプライトSp1が選択されているため、スプライトエリアA5のスプライトSp1の左上に表示中マークX3が表示されている。
【0056】
7.情報処理システムSYSによるプログラミング教育方法
以下、図11図16を用いて、本実施形態の情報処理システムSYSによるプログラミング教育方法を説明する。本実施形態のプログラミング教育方法は、編集受付工程と、コード共有工程と、実行工程と、切替工程と、一覧表示工程と、選択要素表示工程とを適時に実行する。これにより、第1学習者L1及び第2学習者L2に対してプログラミング教育、具体的には、ソースコードの共有環境及びソースコードの実行の共有環境を提供する。以下、各工程について、詳細に説明する。なお、本実施形態において、上述した各工程は並行して実行される。
【0057】
<編集受付工程>
編集受付工程は、第1端末1及び第2端末2上で、ソースコードの編集を受け付ける工程である。具体的には、編集受付工程において、第1端末1の編集受付部10aは、第1学習者L1から、入力手段13を介してソースコードの編集を受け付け、第2端末2の編集受付部20aは、第2学習者L2から、入力手段23を介してソースコードの編集を受け付ける。ソースコードの編集は、上述したように、図4及び図5に示すブロックパレットエリアA2に置かれた命令ブロックC1,C2,C3・・・を図4及び図6に示すコードエリアA3にドラッグ&ドロップして組み合わせることで行うことができる。
【0058】
<コード共有工程>
コード共有工程は、第1端末1及び第2端末2上で編集されたソースコードを互いに共有する工程である。本実施形態において、第1端末1側のソースコードの共有は、第1端末1のコード送受信部10bがコードエリアA3上にある命令ブロックの情報(ソースコード情報)をサーバ3へ送信し、サーバ3のソースコード共有部30aが当該情報を第2端末2へ送信して、第2端末2のコード送受信部20bが受信することで行われる。同様に、第2端末2側のソースコードの共有は、第2端末2のコード送受信部20bがコードエリアA3上にある命令ブロックの情報(ソースコード情報)をサーバ3へ送信し、サーバ3のソースコード共有部30aが当該情報を第1端末1へ送信して、第1端末1のコード送受信部10bが受信することで行われる。なお、ソースコードの共有は、リアルタイムで行われ、一方の端末上で行われた編集が即座に他方の端末上に反映されることが好ましい。
【0059】
実行工程は、個別実行モードM1又は共同実行モードM2で共有したソースコードを実行する工程である。個別実行モードM1と共同実行モードM2は、後述する切替工程により切り替えることができる。
【0060】
<実行工程(個別実行モードM1)>
個別実行モードM1では、コードエリアA3で編集されたソースコードは、実行ボタンB1のクリック又はソースコードで規定された所定の操作入力に応じて、端末ごとに単独で実行される。図11は、個別実行モードM1において図4及び図6に示されるソースコード例を実行する様子を示す説明図である。当該ソースコードは、上述したように、りんご型のスプライトSp1とバスケットボール型のスプライトSp2を左右に転がす例であり、図示はしないが、スプライトSp2についても、スプライトSp1と同一のソースコードが設定されている。
【0061】
個別実行モードM1において、第1端末1の実行部10cは、図7Bに示すスプライトSp1及びスプライトSp2の状態(初期状態)において、第1学習者L1から入力手段13を介して右矢印キーの操作入力を受け付ける。すると、第1端末1の実行部10cがスクリプトSc1(図6参照)を実行し、図11に示すように、第1端末1のステージエリアA4において、スプライトSp1及びスプライトSp2が右方向に転がるよう動作する。ただし、個別実行モードM1において、第2端末2のステージエリアA4において、スプライトSp1及びスプライトSp2は動作しない。
【0062】
<実行工程(共同実行モードM2)>
一方、共同実行モードM2では、コードエリアA3で編集されたソースコードは、いずれかの端末の実行ボタンB1のクリック又はソースコードで規定された所定の操作入力に応じて、第1端末1及び第2端末2のステージエリアA4でそれぞれ実行される。ここで、図12は、共同実行モードM2において第1端末1の入力手段13に操作入力があったときの第1端末1、第2端末2及びサーバ3間で行われる処理を示すシーケンス図である。また、図13は、共同実行モードM2において第1端末1の入力手段13に操作入力があったときの第1端末1及び第2端末2のステージエリアA4の様子を示す説明図である。
【0063】
図12に示すように、ステップS1において、入力手段13を介した第1学習者L1からの操作入力(具体的には、右矢印キーの押下)を受け付けると、まず、ステップS2において、第1端末1の操作入力送受信部10eは、当該操作入力を第1操作入力情報としてサーバ3へ送信する。次に、ステップS3において、サーバ3の操作入力共有部30cは、第1操作入力情報を取得して第2端末2へ送信する。すると、ステップS4において、第2端末2の操作入力送受信部20eは、第1操作入力情報を受信する。これにより、第1端末1の実行部10c及び第2端末2の実行部20cによりスクリプトSc1(図6参照)がそれぞれ実行され、第1端末1のステージエリアA4及び第2端末2のステージエリアA4において、それぞれスプライトSp1及びスプライトSp2が右方向に転がるよう動作する。このように、共同実行モードM2では、第1学習者L1、第2学習者L2それぞれの操作入力は即時的に相手の端末へ同期され、ソースコードで定められた動作が共有される。
【0064】
なお、本実施形態における共同実行モードM2では、一方の端末において操作入力を受け付けると、その所定時間後に操作入力に対応する動作後のスプライトの状態(言い換えると、実行結果)を他方の端末と同期するようになっている(スプライト状態同期工程)。
【0065】
具体的には、図12に示すように、ステップS1において第1端末1が操作入力(具体的には、右矢印キーの押下)を受け付けると、上述した操作入力の即時的な同期に加え、その所定時間後に、ステップS5として、操作入力送受信部10eは、操作入力に対応する動作後のスプライトSp1,S2の状態を取得する。なお、所定時間は、例えば、0.5秒あるいは1秒に設定することができる。そして、ステップS6において、操作入力送受信部10eは、取得したスプライトSp1,S2の状態(以下、スプライト状態情報とする)をサーバ3へ送信する。次に、ステップS7において、サーバ3の操作入力共有部30cは、スプライト状態情報を取得して第2端末2へ送信する。すると、第2端末2の操作入力送受信部20eは、ステップS8において、スプライト状態情報を受信し、第2端末2のステージエリアA4に表示されているスプライトSp1及びスプライトSp2の状態を第1端末1のステージエリアA4のスプライトSp1,S2の状態と同期させる。
【0066】
以上のようなスプライト状態同期工程により、例えば、図14に示すように、第1端末1と第2端末2とでスプライトSp1及びスプライトSp2の操作入力前の状態が異なっている場合でも、いずれかの端末への操作入力の所定時間後には、第1端末1と第2端末2とでスプライトSp1及びスプライトSp2の状態を同期することが可能となっている。
【0067】
<切替工程>
切替工程は、第1端末1又は第2端末2への切替入力に基づいて、上述した個別実行モードM1と共同実行モードM2とを切り替える工程である。本実施形態において、切替入力は、具体的には、第1端末1の画面D1上又は第2端末2の画面D2上の切替ボタンB3のクリックである。
【0068】
なお、図15Aは、個別実行モードM1における切替ボタンB3の状態を示し、図15Bは、共同実行モードM2における切替ボタンB3の状態を示す。共同実行モードM2においては、切替ボタンB3の背景色が反転した状態となる。上述したように、個別実行モードM1及び共同実行モードM2の状態は第1端末1と第2端末2とで共有される(連動する)ため、第1端末1において切替ボタンB3がクリックされた場合でも第2端末2において切替ボタンB3がクリックされた場合でも、両端末1,2の切替ボタンB3の状態が図15A図15Bの状態の間で切り替わることになる。
【0069】
以下、個別実行モードM1において第1端末1の画面D1上の切替ボタンB3がクリックされたときの第1端末1、第2端末2及びサーバ3間で行われる処理を示すシーケンス図である図16を用いて、切替工程について具体的に説明する。
【0070】
個別実行モードM1において第1端末1の切替受付部10dが画面D1上の切替ボタンB3のクリックを受け付けると(ステップSS1)、ステップSS2において、切替受付部10dは、第1端末1における切替ボタンB3の状態を図15Bに示す共有状態とし、第1端末1における実行モードを共同実行モードM2へと切り替える。次に、ステップSS3において、切替受付部10dは、切替入力情報を通信手段11を介してサーバ3へ送信する。すると、ステップSS4において、サーバ3の実行モード切替部30bは、第1端末1から切替入力情報を取得し、記憶手段31から現在のモードの情報(現在の例では、個別実行モードM1であるという情報)を読み出し、読み出したモードとは逆のモード(すなわち、共同実行モードM2)に切り替える。また、実行モード切替部30bは、切替入力情報を第2端末2に送信するとともに、変更したモードを記憶手段31に記憶する。そして、ステップSS4において、第2端末2の切替受付部20dは、切替入力情報をサーバ3から受信すると、第2端末2の切替受付部20dは、第2端末2における切替ボタンB3の状態を図15Bに示す共有状態とし、第2端末2における実行モードを共同実行モードM2へと切り替え、共有状態を同期する(ステップSS5)。本実施形態における切替工程では、以上のステップSS1~SS5により、いずれかの端末において切替ボタンB3がクリックされることで、個別実行モードM1と共同実行モードM2とが切り替わるようになっている。
【0071】
<一覧表示工程>
一覧表示工程は、第1端末1の表示手段14及び第2端末2の表示手段24に、共通する複数の要素の一覧を表示するとともに、当該複数の要素を選択状態と非選択状態とで切替可能とする工程である。具体的には、第1端末1の編集受付部10a及び第2端末2の編集受付部20aは、複数の要素の一覧として、ブロックパレットエリアA2の上部にコードタブT1,コスチュームタブT2及び音タブT3を表示し、また、他の複数の要素の一覧として、スプライトエリアA5にスプライトSp1及びスプライトSp2を表示する。なお、一覧表示工程は、上述した他の工程においても常に実行されるものであり、したがって、タブT1~T3及びスプライトSp1,Sp2は、上述した他の各工程においても常に表示されている。
【0072】
<選択要素表示工程>
選択要素表示工程は、ソースコードを共有する他の端末(第1端末1であれば第2端末2、第2端末2であれば第1端末1)上の複数の要素の一覧における、当該複数の要素の選択状態を示すためのマークを表示する工程である。ここで、上述したように、本実施形態において、複数の要素の一覧は、タブT1~T3と、スプライトSp1,Sp2である。具体的には、そして、タブT1~T3のうちの選択状態を示す表示中マークX2(図5参照)と、スプライトSp1,Sp2のうちの選択状態を示す表示中マークX3(図8参照)が、第1端末1において第2端末2上における選択状態を示すためのマークとなる。なお、選択要素表示工程も、上述した他の工程において常に実行されるものであり、したがって、ソースコードを共有する他の端末が存在する場合は、表示中マークX2,X3は常に表示されていることになる。
【0073】
8.作用効果
(1)本実施形態に係るプログラミング教育方法によれば、実行工程が個別実行モードM1に加えて共同実行モードM2でソースコードを実行でき、共同実行モードM2において、共有したソースコードを、第1端末上及び第2端末上でそれぞれ実行するようになっている。これにより、第1端末1を使用する第1学習者L1と第2端末2を使用する第2学習者L2(先生でも良い)の間でソースコードの実行内容を共有することが可能となっている。
【0074】
(2)切替工程において、第1端末1又は第2端末2への入力、具体的には、各端末の表示手段14,24に表示される切替ボタンB3のクリック入力に基づいて、個別実行モードM1と共同実行モードM2とを切り替えるようになっている。これにより、第1学習者L1及び第2学習者L2は、作成したソースコードを自分の端末上でのみ実行するか共有相手の端末でも実行するかを容易に切り替えることができる。したがって、第1学習者L1及び第2学習者L2は、切替ボタンB3のクリックにより個別実行モードM1に切り替えることで、完成前のソースコードを一度自分の端末だけで実行し、デバッグを行うことも可能となっている。
【0075】
(3)実行工程の共同実行モードM2において、第1端末1への操作入力は、第1操作入力情報として操作入力送受信部10e,20eによりサーバ3(操作入力共有部30c)を介して第2端末2にも共有される。また、第2端末2への操作入力は、第2操作入力情報として操作入力送受信部20e,10eによりサーバ3(操作入力共有部30c)を介して第1端末1にも共有される。これにより、同じ操作対象(スプライト)を第1学習者L1及び第2学習者L2が同時に操作するようなゲーム(マルチプレイを行うゲーム)も実行することが可能となっている。
【0076】
(4)ビジュアルプログラミング言語によりソースコードを編集可能であり、プログラミング学習者はコードブロックを選択して組合せるだけで容易にソースコードの作成が可能である。また、コードブロックを組み合わせるだけであればソースコードの属人性がほぼ排除できる。これにより、コード共有工程においてソースコードを容易に共有でき、実行工程の共同実行モードM2において確実に同じソースコードを実行することが可能となっている。
【0077】
(5)共同実行モードM2において、第1端末1と前記第2端末2のいずれか一方の端末において実行操作、具体的には、実行ボタンB1のクリックや共有したソースコード上で規定されている操作入力を受け付けた場合、ソースコードで規定された内容(スプライトの動作)が第1端末1上及び第2端末2上でそれぞれ実行される。また、共同実行モードM2では、所定のタイミングごと、具体的には、一方の端末(例えば、第1端末1)において操作入力を受け付けた場合の、その所定時間後、当該一方の端末(第1端末1)の実行結果、具体的には、スプライトの位置及び向きが他方の端末(第2端末2)に同期される。つまり、操作入力の前に第1端末1と第2端末2で状態(スプライトの位置及び向き)が異なっていても、操作入力後には、操作入力を受け付けた端末の操作入力後の状態が他方の端末に同期されることになる。これにより、少なくともいずれかの端末に操作入力があると、その度に端末間のズレを補正することができ、同じ操作対象(スプライト)を第1学習者L1及び第2学習者L2が同時に操作するようなゲーム(マルチプレイを行うゲーム)も好適に実行することができる。
【0078】
(6)第1端末1と第2端末2の間の、コード共有工程におけるソースコードの共有及び実行工程の共同実行モードM2における操作入力の共有は、それぞれサーバ3を介して実現されている。これにより、第1端末1と第2端末2の間で直接データをやり取りしなくて良くなるため、セキュリティリスクを低減し、認証を容易に行うことが可能となる。また、共有するソースコード及び操作入力の情報をサーバ3に保持することで、サーバ3の情報をマスタとしてデータ管理を行うことが可能となる。
【0079】
(7)本実施形態に係るプログラミング教育方法によれば、実行工程の共同実行モードM2においてソースコードの実行を共有する際、各端末1,2への操作入力のみを共有するようになっている。つまり、ソースコードの実行の際、実行画面自体や、操作対象の座標、姿勢等を共有する必要がない。このような構成となっていることで、端末間での通信量を削減しつつ、同じ操作対象(スプライト)を第1学習者L1及び第2学習者L2が同時に操作するようなゲーム(マルチプレイを行うゲーム)を実行することが可能となっている。
【0080】
(8)本実施形態に係るプログラミング教育方法によれば、一覧表示工程において、各端末共通の複数の要素の一覧としてタブT1~T3及びスプライトSp1,Sp2を表示するとともにこれらを選択状態と非選択状態とで切替可能としている。また、要素表示工程において、タブT1~T3のうち共有相手である他の端末上の選択状態を示す表示中マークX2(図5参照)と、スプライトSp1,Sp2のうち他の端末上の選択状態を示す表示中マークX3(図8参照)を表示するようになっている。これらのことにより、共同でプログラミングを行っている相手が現在何を編集しているかを把握することが可能となっている。
【0081】
9.変形例
なお、本発明は、以下の態様でも実施可能である。
【0082】
上記実施形態において、ソースコードは、命令ブロックC1,C2,C3・・・をドラッグ&ドロップして組み合わせることで行うビジュアルプログラミング言語により編集するものであった。しかしながら、使用する言語は、Python(登録商標)、C言語、Java(登録商標)等の一般的なプログラミング言語(テキスト言語)であっても良い。この場合であっても、共同実行モードM2において、共有したソースコードを複数の端末上でそれぞれ実行し、第1端末1を使用する第1学習者L1と第2端末2を使用する第2学習者L2の間でソースコードの実行内容を共有することが可能である。
【0083】
上記実施形態では、個別実行モードM1及び共同実行モードM2の2つのモード(状態)は第1端末1と第2端末2とで共有される構成であった。しかしながら、第1端末1と第2端末2で異なるモードとなるよう構成することも可能である。この場合、両端末1,2がそれぞれ共同実行モードM2となっている場合にのみ、ソースコードの実行が共有されることになる。また、3つ以上の端末でソースコードを共有している場合には、共同実行モードM2になっている端末間で、ソースコードの実行が共有される。
【0084】
上記実施形態において、ソースコード及びその共同での実行は、第1端末1と第2端末2の2つの端末間でなされるものであった。しかしながら、3つ以上の端末間でソースコードの共有及びその実行の共同での実行を行えるようにすることも可能である。
【0085】
上記実施形態において、第1端末1と第2端末2の間の、コード共有工程におけるソースコードの共有及び実行工程の共同実行モードM2における操作入力の共有は、それぞれサーバ3を介して実現されていた。しかしながら、第1端末1と第2端末2の間をP2P(Peer to Peer)で直接接続し、サーバ3を介さずソースコードの共有及び操作入力の共有を行うようにすることも可能である。
【0086】
上記実施形態では、実行工程の共同実行モードM2においてソースコードの実行を共有する際、各端末1,2への操作入力のみを共有するようになっていた。しかしながら、各端末1,2への操作入力に加えて、操作対象(スプライト)の座標、姿勢等を共有するようにしても良い。また、また、実行画面自体を共有するようにすることも可能である。さらに、サーバ3上でのみソースコードを実行し、その実行結果を各端末1,2へ送信する構成とすることも可能である。
【0087】
上記実施形態において、第1端末1の制御手段10及び第2端末2の制御手段20の各機能構成は、Webアプリケーションとして実現されるものであった。しかしながら、各機能構成を、第1端末1及び第2端末2に適宜インストールされるソフトウェア(いわゆるアプリを含む)によって実現してもよく、ハードウェアによって実現してもよい。ソフトウェアによって実現する場合、制御手段10、制御手段20がソフトウェアを構成するプログラムを実行することによって各種機能を実現することができる。また、単一のソフトウェアではなく、複数のソフトウェアによって実現されていても良い。また、プログラムを実行することで実現される場合、当該プログラムは、第1端末1及び第2端末2が内蔵する記憶手段12,22に格納してもよく、コンピュータが読み取り可能な非一時的な記録媒体に格納してもよい。また、外部の記憶装置に格納されたプログラムを読み出し、いわゆるクラウドコンピューティングにより実現してもよい。もしくは、ハードウェアによって実現する場合、ASIC、SOC、FPGA、又はDRPなどの種々の回路によって実現することができる。また、上述した機能構成は、一部の機能構成をソフトウェア又はハードウェアによって、サーバ3や他の情報処理装置で処理されるようにしてもよい。
【0088】
上記実施形態において、一覧表示工程で表示する複数の要素の一覧はブロックパレットエリアA2の上部に配置されるタブT1~T3とスプライトエリアA5に配置されるスプライトSp1,Sp2のみであった。ただし、これに代えて、又はこれに加えて、例えばプログラミング教育に用いる複数の教材を一覧表示するようにしても良い。この場合、選択要素表示工程においては、複数の教材の一覧のうち、他の端末において選択中の教材にマークを表示することが好適である。
【0089】
上述した実施形態の選択要素表示工程では、表示中マークX2,X3(図5,8参照)は、誰かしらが対応する要素を選択状態としていることのみを示すようなマーク、つまり、「誰が選択しているか」は特定できないようなマークであった。しかしながら、特に3つ以上の端末間でソースコードの共有及びその実行の共同での実行を行う場合において、アバターやイニシャル等の表示により、「誰が対応する要素を選択状態としているか」を特定できるようにすることも好適である。
【符号の説明】
【0090】
1:第1端末、2:第2端末、3:サーバ、10:制御手段、10a:編集受付部、10b:コード送受信部、10c:実行部、10d:切替受付部、10e:操作入力送受信部、11:通信手段、12:記憶手段、13:入力手段、14:表示手段、15:バス、20:制御手段、20a:編集受付部、20b:コード送受信部、20c:実行部、20d:切替受付部、20e:操作入力送受信部、21:通信手段、22:記憶手段、23:入力手段、24:表示手段、25:バス、30:制御手段、30a:ソースコード共有部、30b:実行モード切替部、30c:操作入力共有部、31:記憶手段、32:通信手段、33:バス、A1:メニューバー、A2:ブロックパレットエリア、A3:コードエリア、A4:ステージエリア、A5:スプライトエリア、A6:背景エリア、A7:コスチュームエリア、B1:実行ボタン、B2:実行停止ボタン、B3:切替ボタン、B4:全画面表示ボタン、B5:終了ボタン、B6:ボタン、B7:ボタン、L1:第1学習者、L2:第2学習者、M1:個別実行モード、M2:共同実行モード、PI:プロジェクト情報、SYS:情報処理システム、Sp1:第1スプライト、Sp2:第2スプライト、T1:コードタブ、T2:コスチュームタブ、T3:音タブ、X1:マーク、X2:表示中マーク、X3:表示中マーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16