JP2018031895A - プログラム作成システム、プログラミング育成方法、及びプログラム作成プログラム - Google Patents
プログラム作成システム、プログラミング育成方法、及びプログラム作成プログラム Download PDFInfo
- Publication number
- JP2018031895A JP2018031895A JP2016164105A JP2016164105A JP2018031895A JP 2018031895 A JP2018031895 A JP 2018031895A JP 2016164105 A JP2016164105 A JP 2016164105A JP 2016164105 A JP2016164105 A JP 2016164105A JP 2018031895 A JP2018031895 A JP 2018031895A
- Authority
- JP
- Japan
- Prior art keywords
- program
- identifier
- identifier display
- image
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Electrically Operated Instructional Devices (AREA)
Abstract
【課題】願発明の課題は、従来技術が抱える問題を解決することであり、すなわち、低年齢層にとって容易に取り組むことができるプログラミング教育、つまりコンピュータを使用することなく実施できるプログラミング教育を実現可能とする、プログラム作成システム、プログラミング育成方法、及びプログラム作成プログラムを提供することである。【解決手段】本願発明のプログラム作成システムは、識別子が付された識別子表示体を認識するとともに、要素プログラムを組み合わせることによって全体プログラムを作成するシステムであり、要素プログラム記憶手段とプログラム作成手段を備えたものである。プログラム作成手段は、画像を読み出し、この画像に含まれる識別子に対応づけられた要素プログラムを要素プログラム記憶手段から抽出し、この要素プログラムと画像上の識別子表示体の配列に基づいて全体プログラムを作成するものである。【選択図】図1
Description
本願発明は、プログラムを作成する技術に関するものであり、より具体的には、識別子を所望の配列としたうえで画像を取得し、この画像を認識することによってプログラムを作成することができる、プログラム作成システム、プログラミング育成方法、及びプログラム作成プログラムに関するものである。
現在、情報技術(IT:information technology)はあらゆる分野で欠かせないものとなり、このITを支えるプログラムの作成技術、すなわちプログラミング技術を有する人材が、いま世界中から求められている。なおプログラムという語は種々の分野で様々な意味として用いられているが、ここでいうプログラムとは、人が意図した動作をコンピュータに実行させるためのものである。またプログラミングとは、人工言語であるプログラム言語によってソースコードを記述するコーディングのみを指すものではなく、基本的な構想の策定や、コンピュータの処理手順等を定めたアルゴリズムの作成、あるいはソースコードから機械言語であるオブジェクトコードへの変換など、いくつかの工程を含む行為を指すこともある。
米国などいくつかの国では、早くから幼児期へのプログラミング教育に取り組んだ結果、今やIT先進国として大きな成果を上げている。近年、我が国でもプログラミング教育が重視され、2012年には中学校でのプログラミング学習が必修となり、さらには2020年度から小学校でのプログラミング教育を必修化する方向で検討されている。
プログラミング教育は、プログラミングの技術を習得できるばかりでなく、論理的な思考能力が鍛えられるうえ、「答えが一つでない」ことを学び、さらに試行錯誤で問題を解く訓練や、未来を予測して考える訓練が体験できるといった理由から、昨今、幼児や小学校低学年生(以下、「低年齢層」という。)を中心に大きな広がりを見せている。
低年齢層向けのプログラミング教育は、ワークショップ形式のものが主流であり、基本的な要素技術を教えた後は、各自が自由にプログラムを作成する形式で進められている。しかしながらこのワークショップ形式は、意欲がある者にとっては適しているものの、意欲に乏しい者にとっては難しい面がある。自ら積極的に学習しない生徒に対しては、段階的に難易度が上がる練習問題を解かせるなど、飽きないよう徐々に技術を向上させていく手法が適している。
また低年齢層にとって、早い段階からコーディングを行うことは困難なことである。プログラム言語を覚えることも難しいし、キーボードを使用して英数字を入力することでさえ低年齢層にとっては困難なことである。そこで、まずはアルゴリズムの学習を中心に行うことが考えられる。生徒にアルゴリズムを作成させ、そのアルゴリズムに基づくプログラムを実行して確認することで、正しいアルゴリズムの作成を学ぶわけである。特許文献1でも、フローチャートを作成することでアルゴリズムを表現し、さらにそのフローチャートに基づくプログラムを実行して確認するという技術を提案している。
特許文献1は、専用のソフトウェアを用いてフローチャートを作成する技術であり、したがってコンピュータを使用することが前提である。また、近時行われているプログラミング教育でも、パーソナルコンピュータ(PC)やスマートフォン、iPad(登録商標)などのタブレットPCといったコンピュータの使用が不可欠となっている。しかしながら、プログラミングの学習を始めようとする低年齢層にとって、コンピュータを操作することは困難であり、その結果、早い時期にプログラミング教育から脱落し、あるいは初めからプログラミング教育を諦めるケースも少なくなかった。
本願発明の課題は、従来技術が抱える問題を解決することであり、すなわち、低年齢層にとって容易に取り組むことができるプログラミング教育、つまりコンピュータを直接操作することなく実施できるプログラミング教育を実現可能とする、プログラム作成システム、プログラミング育成方法、及びプログラム作成プログラムを提供することである。
本願発明は、意図を持って配置した識別子を画像に収め、その画像を認識することによって意図したプログラムを作成するという点に着目して開発されたものであり、従来にはない発想に基づいてなされた発明である。
本願発明のプログラム作成システムは、識別子が付された識別子表示体を認識するとともに、要素プログラムを組み合わせることによって全体プログラムを作成するシステムであり、要素プログラム記憶手段とプログラム作成手段を備えたものである。このうち要素プログラム記憶手段は、2以上の要素プログラムを記憶するものである。そしてプログラム作成手段は、画像(2以上の識別子表示体を含む)を読み出し、この画像に含まれる識別子に対応づけられた要素プログラムを要素プログラム記憶手段から抽出し、この抽出された要素プログラムと画像上の識別子表示体の配列に基づいて全体プログラムを作成するものである。
本願発明のプログラム作成システムは、コンピュータによって実行された全体プログラムの実行内容を表示する表示手段をさらに備えたものとすることもできる。
本願発明のプログラム作成システムは、識別子表示体に付された色が識別子、識別子表示体に記された模様が識別子、もしくは識別子表示体の形状、又はこれらの組み合わせであるものとすることもできる。
本願発明のプログラム作成システムは、実行情報(要素プログラムによる実行内容を把握することができる情報)が記載された識別子表示体を用いるものとすることもできる。
本願発明のプログラム作成システムは、プログラム種別選定手段をさらに備えたものとすることもできる。プログラム種別選定手段は、プログラム作成手段が作成するプログラムの種別を指定するものであり、ユーザが種別を要素プログラムと指定したとき、プログラム作成手段は要素プログラムとして作成し、この要素プログラムは要素プログラム記憶手段に記憶される。
本願発明のプログラム作成システムは、要素プログラム記憶手段が反復要素プログラムを記憶したものとすることもできる。プログラム作成手段が反復要素プログラムを抽出したときは、この反復要素プログラムに対応する識別子表示体の周辺に配置された識別子表示体に対応する要素プログラムを繰り返しコンピュータに実行させる全体プログラムを作成する。
本願発明のプログラム作成システムは、要素プログラム記憶手段が条件要素プログラムを記憶したものとすることもできる。この条件要素プログラムには、あらかじめ定められた条件と、この条件に応じた指令内容が設定されている。そしてプログラム作成手段が条件要素プログラムを抽出したときは、与えられた条件に応じた指令をコンピュータに実行させる全体プログラムを作成する。
本願発明のプログラム作成システムは、検定手段をさらに備えたものとすることもできる。この検定手段は、与えられた問題に対してユーザが配列した識別子表示体の画像に基づいて作成された全体プログラムと、正答プログラム(あらかじめ用意された問題の答であるプログラム)を照らし合わせ、この照合結果をユーザに通知するものである。
本願発明のプログラミング育成方法は、ユーザが要素プログラムを組み合わせることで答案プログラムを作成し、この答案プログラムと正答プログラム(あらかじめ用意された問題の答であるプログラム)を照らし合わせ、この照合結果をユーザに通知することでユーザのプログラミング技術を育成する方法であり、配列工程と、画像取得工程、プログラム作成工程、検定工程を備えた方法である。このうち配列工程では、与えられた問題に対してユーザが識別子表示体を配列し、画像取得工程では、配列された2以上の識別子表示体を含む画像を取得する。プログラム作成工程では、画像に含まれる識別子表示体の識別子に対応づけられた要素プログラムを抽出し、この抽出された要素プログラムと画像上の識別子表示体の配列に基づいて答案プログラムを作成する。そして検定工程では、答案プログラムと正答プログラムを照らし合わせ、この照合結果をユーザに通知する。
本願発明のプログラム作成プログラムは、識別子表示体を認識し、要素プログラムを組み合わせることで、全体プログラムを作成する処理(プログラム作成処理)をコンピュータに実行させるプログラムである。プログラム作成処理は、画像中にある識別子表示体の識別子に対応づけられた要素プログラムを、要素プログラム記憶手段から抽出し、この抽出された要素プログラムと画像上の識別子表示体の配列に基づいて全体プログラムを作成する処理である。
本願発明のログラム作成システム、プログラミング育成方法、及びプログラム作成プログラムには、次のような効果がある。
(1)識別子が収められた画像を認識させることでプログラムが作成されることから、コーディングする必要も、プログラム言語を習得する必要さえもなく、想定したプログラムを容易に得ることができる。
(2)生徒には識別子を配置させるだけとし、教育者がその画像を取得してこれに基づくプログラムを実行して見せるという形式を採れば、生徒がコンピュータを操作する必要がなく、特に低年齢層の生徒にとっても抵抗なく学習することができる。
(3)プログラムを作成する手段を中央側に配置し、取得した画像を送信する手段を端末側に配置し、中央側と端末側を通信可能とすれば、通信教育が可能となり、遠隔地にある者でも手軽に学習することができ、また時間に制約されることなく学習することができる。
(4)ドリル形式の練習問題を用意し、段階的に難易度が上がる練習問題を順に解かせることによって、意欲に乏しい者でも飽きることなく学習でき、その結果、着実にプログラミング技術を習得することができる。
(5)本願発明を利用したプログラミング教育を受けることで、ITの動作原理が理解できるうえ、論理的思考能力が鍛えられるとともに、未来を予測する力を身に付けることができる。
(1)識別子が収められた画像を認識させることでプログラムが作成されることから、コーディングする必要も、プログラム言語を習得する必要さえもなく、想定したプログラムを容易に得ることができる。
(2)生徒には識別子を配置させるだけとし、教育者がその画像を取得してこれに基づくプログラムを実行して見せるという形式を採れば、生徒がコンピュータを操作する必要がなく、特に低年齢層の生徒にとっても抵抗なく学習することができる。
(3)プログラムを作成する手段を中央側に配置し、取得した画像を送信する手段を端末側に配置し、中央側と端末側を通信可能とすれば、通信教育が可能となり、遠隔地にある者でも手軽に学習することができ、また時間に制約されることなく学習することができる。
(4)ドリル形式の練習問題を用意し、段階的に難易度が上がる練習問題を順に解かせることによって、意欲に乏しい者でも飽きることなく学習でき、その結果、着実にプログラミング技術を習得することができる。
(5)本願発明を利用したプログラミング教育を受けることで、ITの動作原理が理解できるうえ、論理的思考能力が鍛えられるとともに、未来を予測する力を身に付けることができる。
本願発明のプログラム作成システム、プログラミング育成方法、及びプログラム作成プログラムの例を図に基づいて説明する。
1.定義
本願発明の実施形態の例を説明するにあたって、はじめにここで用いる用語の定義を示しておく。
本願発明の実施形態の例を説明するにあたって、はじめにここで用いる用語の定義を示しておく。
(プログラム)
プログラムという語は、カリキュラムやスケジュールといった意味で用いられることもあるが、ここでいうプログラムとは、人が意図した動作をコンピュータに実行させるためのものである。
プログラムという語は、カリキュラムやスケジュールといった意味で用いられることもあるが、ここでいうプログラムとは、人が意図した動作をコンピュータに実行させるためのものである。
(要素プログラム)
要素プログラムは、完成させようとするプログラムを構成する部分的な(ブロックの)プログラムであり、換言するとこの要素プログラムを組み合わせることによって意図するプログラムを作成することができる。したがって要素プログラムは、例えば迷路を進むゲームのプログラムであれば、「前に進む」あるいは「右に曲がる」といった、基本動作(単位動作)を記述したものとするとよい。なお、要素プログラムはあらかじめ用意することができるものであり、要素プログラムは要素プログラム記憶手段に記憶される。
要素プログラムは、完成させようとするプログラムを構成する部分的な(ブロックの)プログラムであり、換言するとこの要素プログラムを組み合わせることによって意図するプログラムを作成することができる。したがって要素プログラムは、例えば迷路を進むゲームのプログラムであれば、「前に進む」あるいは「右に曲がる」といった、基本動作(単位動作)を記述したものとするとよい。なお、要素プログラムはあらかじめ用意することができるものであり、要素プログラムは要素プログラム記憶手段に記憶される。
(全体プログラム)
全体プログラムは、要素プログラムを組み合わせることによって完成されるプログラムのことであり、要素プログラムと区別する意味でここでは全体プログラムということとする。したがって、先の迷路を進むゲームのプログラムの例であれば、「前に進む」や「右に曲がる」といった要素プログラムを組み合わせて完成された(例えば、スタート地点から種々経由してゴールにたどり着く)プログラムが、全体プログラムである。
全体プログラムは、要素プログラムを組み合わせることによって完成されるプログラムのことであり、要素プログラムと区別する意味でここでは全体プログラムということとする。したがって、先の迷路を進むゲームのプログラムの例であれば、「前に進む」や「右に曲がる」といった要素プログラムを組み合わせて完成された(例えば、スタート地点から種々経由してゴールにたどり着く)プログラムが、全体プログラムである。
(反復要素プログラムと条件要素プログラム)
反復要素プログラムと条件要素プログラムは、それぞれ要素プログラムの一種である。後に詳しく説明するように、反復要素プログラムは、1又は2以上の他の要素プログラムを、所定回数(無限回数含む)繰り返し実行させるという指令が記述されたものである。一方の条件要素プログラムは、対応する条件と動作が記述されており、全体プログラムの進行中その条件に合致した場合にその動作を実行させるという指令が記述されたものである。
反復要素プログラムと条件要素プログラムは、それぞれ要素プログラムの一種である。後に詳しく説明するように、反復要素プログラムは、1又は2以上の他の要素プログラムを、所定回数(無限回数含む)繰り返し実行させるという指令が記述されたものである。一方の条件要素プログラムは、対応する条件と動作が記述されており、全体プログラムの進行中その条件に合致した場合にその動作を実行させるという指令が記述されたものである。
(答案プログラムと正答プログラム)
答案プログラムと正答プログラムは、それぞれ全体プログラムの一種である。後に詳しく説明するように、答案プログラムは、問題に対して解答すべくユーザが作成した全体プログラムである。一方の正答プログラムは、問題の答えとなる全体プログラムであって、あらかじめ用意されたものである。例えば、ある迷路の問題が提出されたとすると、これに対しユーザが意図して作成したいわば答案が答案プログラムであり、最短コースでゴールまでたどり着くことができるなどあらかじめ用意された答えが正答プログラムである。
答案プログラムと正答プログラムは、それぞれ全体プログラムの一種である。後に詳しく説明するように、答案プログラムは、問題に対して解答すべくユーザが作成した全体プログラムである。一方の正答プログラムは、問題の答えとなる全体プログラムであって、あらかじめ用意されたものである。例えば、ある迷路の問題が提出されたとすると、これに対しユーザが意図して作成したいわば答案が答案プログラムであり、最短コースでゴールまでたどり着くことができるなどあらかじめ用意された答えが正答プログラムである。
(識別子と識別子表示体)
識別子は、他の識別子と区別できるものであり、いわゆるID(identification)である。識別子は、要素プログラム記憶手段にあらかじめ記憶されたいずれかの要素プログラムと対応付けられており、つまり識別子は複数の要素プログラムの中から所定の要素プログラムを特定することができるものである。一方の識別子表示体は、識別子が付されたものである。この識別子表示体の画像を取得すると、その画像中に識別子が含まれる必要があり、したがって識別子は識別子表示体の表面に付されることが望ましく、また一の識別子表示体には一の識別子が付されるとよい。なお識別子表示体は、板状のものとすることも、ブロック状のものとすることも、あるいは識別子が付された紙とすることもでき、できれば持ち運びやすいものが望ましい。あるいは、磁石を利用するなど固定しやすいものとすることもできる。特に、識別子が付されたシール(識別子表示体)と台紙を用意し、そのシールを台紙に貼っていく方式にすると便宜である。
識別子は、他の識別子と区別できるものであり、いわゆるID(identification)である。識別子は、要素プログラム記憶手段にあらかじめ記憶されたいずれかの要素プログラムと対応付けられており、つまり識別子は複数の要素プログラムの中から所定の要素プログラムを特定することができるものである。一方の識別子表示体は、識別子が付されたものである。この識別子表示体の画像を取得すると、その画像中に識別子が含まれる必要があり、したがって識別子は識別子表示体の表面に付されることが望ましく、また一の識別子表示体には一の識別子が付されるとよい。なお識別子表示体は、板状のものとすることも、ブロック状のものとすることも、あるいは識別子が付された紙とすることもでき、できれば持ち運びやすいものが望ましい。あるいは、磁石を利用するなど固定しやすいものとすることもできる。特に、識別子が付されたシール(識別子表示体)と台紙を用意し、そのシールを台紙に貼っていく方式にすると便宜である。
2.全体概要
図1を参考に本願発明の全体概要について説明する。図1は、本願発明の基本的な構成を示すモデル図である。この図に示すように本願発明は、読み込んだ画像PHの情報に基づいてプログラムを作成するというのが基本的な構成である。つまりプログラム作成手段が、画像PHから識別子表示体110に表示された識別子120を認識し、その識別子120をもって要素プログラム記憶手段305に問い合わせ、目的の要素プログラムを抽出し、そして画像PHから認識した識別子表示体110(つまり識別子120)の配列(つまり並び順)に基づいて、抽出した要素プログラムを組み合わせることで全体プログラムを作成する。なお、要素プログラム記憶手段305にはあらかじめ種々の要素プログラムが記憶されており、プログラム作成手段によって作成された全体プログラムは全体プログラム記憶手段307に記憶される。
図1を参考に本願発明の全体概要について説明する。図1は、本願発明の基本的な構成を示すモデル図である。この図に示すように本願発明は、読み込んだ画像PHの情報に基づいてプログラムを作成するというのが基本的な構成である。つまりプログラム作成手段が、画像PHから識別子表示体110に表示された識別子120を認識し、その識別子120をもって要素プログラム記憶手段305に問い合わせ、目的の要素プログラムを抽出し、そして画像PHから認識した識別子表示体110(つまり識別子120)の配列(つまり並び順)に基づいて、抽出した要素プログラムを組み合わせることで全体プログラムを作成する。なお、要素プログラム記憶手段305にはあらかじめ種々の要素プログラムが記憶されており、プログラム作成手段によって作成された全体プログラムは全体プログラム記憶手段307に記憶される。
図2を参照しながら、より具体的に説明する。図2は、迷路ゲームを例に本願発明の全体概要について説明するモデル図であり、(a)は問題となる迷路を示し、(b)は画像取得手段301で識別子120を含む画像PHを取得する状況を示し、(c)は作成された全体プログラムを実行した状況を示している。図2(a)に示す迷路ゲームは、スタートから1マスずつ進んでゴールまでたどり着くもので、前進や左折などの指令を組み合わせたプログラムを実行すると、キャラクタ(この場合は子供)がその指令どおり進んでいく。ただし、網がけしたマスには侵入できないことになっている。
図2(b)では、ユーザが4つの識別子表示体110を選択して順に並べ、これをカメラやスマートフォンといった画像取得手段301で撮影して画像PHを取得している。先に説明したシール(識別子表示体110)と台紙が用意されたケースでは、図3に示すように、与えられた問題に対してユーザが適切と思うシール(識別子表示体110)を選択し、それらのシールを台紙上に並べていき、その状態(配置)のシールを撮影する。この画像PHには、識別子表示体110に表示された識別子120が収められている。そして、従来から用いられている画像認識の技術を利用してこの画像PHから、識別子120及びその配列を認識する。図1や図2に示すように識別子120が文字情報であれば、従来から用いられているOCR(Optical Character Reader)などの識字技術が利用できる。
さらに認識された4つの識別子120を要素プログラム記憶手段305に照会し、対応する要素プログラムを抽出する。この場合、「右に進む」処理を実行する要素プログラムと、「左に曲がる」処理を実行する要素プログラム、「上に進む」処理を実行する要素プログラムを抽出している。なお、「右に進む」の要素プログラムは2つ抽出している。
目的の要素プログラムが抽出できると、識別子120の並び順にしたがって4つの要素プログラムを組み合わせ、全体プログラムを作成する。そしてユーザがこの全体プログラムを実行すると、図2(c)に示すように、ユーザが意図したとおりキャラクタがスタートからゴールまで進んでいき、その様子がディスプレイといった表示手段204に表示されるわけである。
ところで、図1や図2に示すように意味を持たない文字(2桁のアルファベットと4桁の数字)からなる識別子120では、その識別子120によってどのような動作が実行されるのか理解することは難しい。識別子120と動作が対応した対応表のようなものを用意しておけば理解することはできるものの、識別子表示体110の選別に手間と時間がかかるし、低年齢層にとっては対応表を見ること自体が困難な作業である。そこで識別子120とは別に、要素プログラムによって実行される内容(動作)を把握することができる情報(以下、「実行情報130」という。)を識別子表示体110に表示しておくとよい。例えば、図4(a)では識別子120とは別に「ふたを開ける」という実行情報130が識別子表示体110に記されており、ユーザはこの識別子120に対応する要素プログラムが、「キャラクタがふたを開ける」という動作を実行することが直感的に理解できるわけである。同様に、図4(b)では「キャラクタがお湯を入れる」という動作、図4(c)では「キャラクタは3分待つ」という動作が実行されることが容易に把握できる。なお実行情報130は、要素プログラムによる実行内容を理解できる情報であれば、必ずしも文字情報に限らず、図(マンガ)や写真、矢印などの記号で構成することもできる。
また識別子120は、他の識別子120と区別できるものであって画像認識できるものであれば、文字以外のものを利用することができる。例えば、図4(b)に示すようにQRコード(登録商標)やビジュアル・マーカーといった標識を識別子120とすることもできる。また、図4(c)に示すように識別子表示体110に付された色と模様の組み合わせを識別子120とすることもできるし、多種の色を用意しておけば色そのものを識別子120とすることもできる。この場合、RGBや、CMYK、NCSといった色を表す物理量を用いて、識別子120を認識するとよい。この他、多種の形状を用意しておけば識別子表示体110の形状を識別子120とすることもできる。この場合、種々の形状のテンプレートを用意しておき、このテンプレートとマッチング(いわゆるパターンマッチング)することで、識別子表示体110の識別子120を特定するわけである。
さらに、要素プログラムの実行内容を理解できる情報を識別子120とすることもできる。つまり、識別子120を実行情報130とするわけである。図4ではいずれも識別子表示体110には識別子120と実行情報130が併記されているが、識別子120を実行情報130とすれば、識別子表示体110には識別子120のみ(つまり実行情報130のみ)を付すだけで足りる。この場合、識別子120(つまり実行情報130)が文字情報であれば、従来から用いられているOCRなどの技術が利用でき、図形等の情報であれば従来から用いられているパターンマッチング等の技術が利用できる。
3.プログラム作成システム、及びプログラム作成プログラム
次に、本願発明のプログラム作成システム、及びプログラム作成プログラムの例について、図を参照しながら説明する。図5は、本願発明のプログラム作成システムの構成を示す説明図である。この図に示すように本願発明のプログラム作成システムは、複数のユーザ側装置200とサーバ側装置300が通信回線等を介して接続される構成とすることができる。もちろん、ユーザ側装置200とサーバ側装置300を分けることなく、一体のものとして本願発明のプログラム作成システムを構成することもできる。ここでは便宜上、図5に示すようにユーザ側装置200とサーバ側装置300を分けた例で説明する。
次に、本願発明のプログラム作成システム、及びプログラム作成プログラムの例について、図を参照しながら説明する。図5は、本願発明のプログラム作成システムの構成を示す説明図である。この図に示すように本願発明のプログラム作成システムは、複数のユーザ側装置200とサーバ側装置300が通信回線等を介して接続される構成とすることができる。もちろん、ユーザ側装置200とサーバ側装置300を分けることなく、一体のものとして本願発明のプログラム作成システムを構成することもできる。ここでは便宜上、図5に示すようにユーザ側装置200とサーバ側装置300を分けた例で説明する。
(ユーザ側装置)
図6は、本願発明のプログラム作成システムを示すブロック図である。この図を参照しながら、本願発明のプログラム作成システムについて詳しく説明する。この図に示すようにユーザ側装置200は、画像取得手段201や送信手段202、実行指令手段203、ディスプレイといった表示手段204、検定依頼手段205、受信手段206を含んで構成することができる。この他、図13に示すようにプログラム種別選択手段207を含んで構成することもできる。なおユーザ側装置200は、デジタルカメラ(画像取得手段201)とPC、あるいはスマートフォンやタブレットPCを利用して構成するとよい。
図6は、本願発明のプログラム作成システムを示すブロック図である。この図を参照しながら、本願発明のプログラム作成システムについて詳しく説明する。この図に示すようにユーザ側装置200は、画像取得手段201や送信手段202、実行指令手段203、ディスプレイといった表示手段204、検定依頼手段205、受信手段206を含んで構成することができる。この他、図13に示すようにプログラム種別選択手段207を含んで構成することもできる。なおユーザ側装置200は、デジタルカメラ(画像取得手段201)とPC、あるいはスマートフォンやタブレットPCを利用して構成するとよい。
(サーバ側装置)
一方のサーバ側装置300は、受信手段301や画像読出し手段302、画像認識手段303、要素プログラム抽出手段304、要素プログラム記憶手段305、プログラム構築手段306、全体プログラム記憶手段307、プログラム実行手段308、検定手段309、正答プログラム記憶手段310を含んで構成することができる。なおサーバ側装置300は、コンピュータを利用して構成するとよい。
一方のサーバ側装置300は、受信手段301や画像読出し手段302、画像認識手段303、要素プログラム抽出手段304、要素プログラム記憶手段305、プログラム構築手段306、全体プログラム記憶手段307、プログラム実行手段308、検定手段309、正答プログラム記憶手段310を含んで構成することができる。なおサーバ側装置300は、コンピュータを利用して構成するとよい。
(プログラム作成システムの流れ)
本願発明のプログラム作成システムによる処理の流れを、ユーザが練習問題に回答するケースを例として図6を参照しながら説明する。まずユーザが、練習問題に対して最適と思う答えを構想し、これに基づいて識別子表示体110を選出するとともに、これら識別子表示体110を所望の順で並べる。例えば図3では、左側に識別子表示体110としてのシールが複数用意され、右側に練習問題が記載された台紙が用意されており、この問題に対してユーザが適切と思うシール(識別子表示体110)を選択して、それらのシールを適切と思う順で台紙上に並べていく。識別子表示体110を配置したユーザは、画像取得手段201を用いて識別子表示体110の画像PHを取得し、送信手段202を利用してサーバ側装置300にその画像PHを送信する。
本願発明のプログラム作成システムによる処理の流れを、ユーザが練習問題に回答するケースを例として図6を参照しながら説明する。まずユーザが、練習問題に対して最適と思う答えを構想し、これに基づいて識別子表示体110を選出するとともに、これら識別子表示体110を所望の順で並べる。例えば図3では、左側に識別子表示体110としてのシールが複数用意され、右側に練習問題が記載された台紙が用意されており、この問題に対してユーザが適切と思うシール(識別子表示体110)を選択して、それらのシールを適切と思う順で台紙上に並べていく。識別子表示体110を配置したユーザは、画像取得手段201を用いて識別子表示体110の画像PHを取得し、送信手段202を利用してサーバ側装置300にその画像PHを送信する。
サーバ側装置300では受信手段301が画像PHを受信し、画像読出し手段302がその画像PHを読み出すとともに、画像認識手段303が画像PHに含まれる識別子120とその配列を認識する。このとき、OCRやパターンマッチング、RGB等による識別など、従来から用いられている画像認識技術が利用できることは既述のとおりである。識別子120が認識できると、要素プログラム抽出手段304が要素プログラム記憶手段305に照会し、認識された識別子120に対応する要素プログラムを読み出す(抽出する)。プログラム構築手段306は、画像認識手段303が認識した識別子120の配列に基づいて要素プログラムが実行される順(以下、「実行手順」という。)を設定し、さらに抽出された要素プログラムをこの実行手順にしたがって組み合わせることで全体プログラムを作成する。要素プログラム抽出手段304とプログラム構築手段306が行う処理をコンピュータに実行させるプログラムが、本願発明のプログラム作成プログラムである。プログラム構築手段306が作成した全体プログラムは、全体プログラム記憶手段307に記憶される。
一方、画像PHを送信したユーザは、その画像PH、つまり識別子表示体110の選択と配列によって作成される全体プログラムの実行内容を確認することもある。この場合、実行指令手段203を利用して全体プログラムを実行し、その内容を確認することができる。具体的には、プログラム(実行指令手段203の処理をコンピュータに実行させるもの)をユーザが操作する(例えば、実行ボタンをクリックする)ことで、プログラム実行手段308に実行指令を送り、プログラム実行手段308は該当する(ユーザが意図する)全体プログラムを全体プログラム記憶手段307から読出してコンピュータに実行させる。この実行内容は表示手段204で表示され、ユーザは意図した実行内容となっているか確認することができる。
また、練習問題に対してユーザが意図した全体プログラム(つまり、答案プログラム)が作成されたとしても、あらかじめ用意された練習問題の答えである正答プログラムとは異なることもある。一般的にプログラムは、同じ答えを出力するものであっても、その内容(つまり結果出力までの経過)が異なることは珍しくなく、工夫を凝らすことでプログラムを短くすることもできるし、また結果出力までの時間を短縮することもできる。つまり、プログラミングを学習する上では、出力結果のみを考えるのではなく、出力までの過程を重視することが重要であるといえる。そこでユーザが作成した答案プログラムを正答プログラムと照らし合わせることができれば、自身のプログラミング技術の改善点を見出すことができ、ひいてはより高度な技術を習得することができるわけである。
答案プログラムを正答プログラムと照らし合わせる場合、検定依頼手段204を利用する。具体的には、プログラム(検定依頼手段204の処理をコンピュータに実行させるもの)をユーザが操作する(例えば、実行ボタンをクリックする)ことで、検定手段309に検定指令を送り、検定手段309は該当する(ユーザが意図する)全体プログラム(つまり、答案プログラム)を全体プログラム記憶手段307から読出すとともに、同一の練習問題に対する正答プログラムを正答プログラム記憶手段310から読出す。さらに検定手段309は、答案プログラムと正答プログラムを照らし合わせ、その照合結果(検定結果)をユーザ側装置200の受信手段206に送信する。検定結果としては、プログラムのうち相違する部分や、改善すべき個所の解説、正誤のみの情報、あるいは正答プログラムとなる識別子表示体110の選択と配列などとすることができる。
(標準的な要素プログラムからなる全体プログラム)
以下、練習問題が迷路ゲームの例で、種々の要素プログラムと全体プログラムについて具体的に説明する。図7は、標準的な要素プログラムの組み合わせからなる全体プログラムを説明するモデル図である。この図で提示された練習問題では、スタート地点を出発したキャラクタが3マスだけ前進し、そこで左折し、さらに2マスだけ前進すればゴールにたどり着くことができる。そこでユーザは、「前進する」という識別子120(実行情報130)が表示された識別子表示体110を順に3つ並べ、その右列に「左に曲がる」という識別子120が表示された識別子表示体110と、「前進する」という識別子120が表示された識別子表示体110を順に並べ、その状態で識別子表示体110の画像PHを取得する。
以下、練習問題が迷路ゲームの例で、種々の要素プログラムと全体プログラムについて具体的に説明する。図7は、標準的な要素プログラムの組み合わせからなる全体プログラムを説明するモデル図である。この図で提示された練習問題では、スタート地点を出発したキャラクタが3マスだけ前進し、そこで左折し、さらに2マスだけ前進すればゴールにたどり着くことができる。そこでユーザは、「前進する」という識別子120(実行情報130)が表示された識別子表示体110を順に3つ並べ、その右列に「左に曲がる」という識別子120が表示された識別子表示体110と、「前進する」という識別子120が表示された識別子表示体110を順に並べ、その状態で識別子表示体110の画像PHを取得する。
この画像PHを認識すると、「キャラクタが前進する」という動作をコンピュータに実行させる要素プログラムと、「キャラクタが左に曲がる」という動作をコンピュータに実行させる要素プログラムをそれぞれ読み出す。また、プログラム構築手段306は、画像認識手段303が認識した識別子120の配列に基づいて要素プログラムの実行手順を設定する。このとき、画像PH中に配列された識別子120の実行順を規定する基準(以下、「実行基準」という。)をあらかじめ定めておくとよい。例えば実行基準を、縦列を優先することとし、1列だけ並んでいる場合は上から下へ(あるいは、下から上へ)順に実行し、2列以上並んでいる場合は左列(あるいは、右列)から先に上から下へ実行すると定めておく。横列を優先するケースでは、1列だけ並んでいる場合は左から右へ(あるいは、右から左へ)順に実行し、2列以上並んでいる場合は上列(あるいは、下列)から先に左から右へ実行するなどと定めておく。あらかじめ実行基準を定めることなく、全体プログラムを作成する都度、オペレータが実行基準を入力して指定することとしてもよい。
ここまで説明した内容に基づいて、プログラム構築手段306は実行基準に従った実行手順を設定するとともに、抽出された要素プログラムを組み合わせる(実行手順で連結する)ことで全体プログラムを作成する。その結果、図7に示すように「前進→前進→前進→左折→前進→前進」というキャラクタの動作が実行される。
(反復要素プログラムからなる全体プログラム)
図8は、反復要素プログラムを含む要素プログラムの組み合わせからなる全体プログラムを説明するモデル図である。この図で提示された練習問題では、スタート地点を出発したキャラクタが7マスだけ前進し、そこで左折し、さらに4マスだけ前進すればゴールにたどり着くことができる。7マスだけ前進させるためには、「前進する」という識別子120が表示された識別子表示体110を7つ連続して並べるとよいが、識別子表示体110の数が不足している、あるいは1枚の画像に収まらない、といった不都合も予想される。このような場合、反復要素プログラムを利用するとよい。この反復要素プログラムは、後続の要素プログラムを所定回数だけ繰り返し実行させるもので、例えば図8のケースでは、「7回反復する」反復要素プログラムによって、「前進する」動作が7回繰り返されるわけである。
図8は、反復要素プログラムを含む要素プログラムの組み合わせからなる全体プログラムを説明するモデル図である。この図で提示された練習問題では、スタート地点を出発したキャラクタが7マスだけ前進し、そこで左折し、さらに4マスだけ前進すればゴールにたどり着くことができる。7マスだけ前進させるためには、「前進する」という識別子120が表示された識別子表示体110を7つ連続して並べるとよいが、識別子表示体110の数が不足している、あるいは1枚の画像に収まらない、といった不都合も予想される。このような場合、反復要素プログラムを利用するとよい。この反復要素プログラムは、後続の要素プログラムを所定回数だけ繰り返し実行させるもので、例えば図8のケースでは、「7回反復する」反復要素プログラムによって、「前進する」動作が7回繰り返されるわけである。
反復要素プログラムを利用する場合、この反復要素プログラムに対応する識別子120が表示された識別子表示体110(以下、特に「反復識別子表示体111」という。)を配置する。そして、反復要素プログラムによって繰り返すべき要素プログラムに対応する識別子120が表示された識別子表示体110を、反復識別子表示体111の周辺に配置し、その状態で画像PHを取得する。例えば、実行基準が上から下と規定されている場合は、反復すべき識別子表示体110を反復識別子表示体111の直下に配置し、実行基準が左から右と規定されている場合は、反復すべき識別子表示体110を反復識別子表示体111のすぐ右に配置する。
繰り返すべき要素プログラムは1つでもよいし、2以上でもよい。2以上の要素プログラムを繰り返す場合は、これらの識別子表示体110を反復識別子表示体111の周辺に連続して配置することになるが、繰り返すべき要素プログラムと、そうでない要素プログラムは区別されなければならない。この区別は、例えば隣接する識別子表示体110間の距離で判断することができる。あらかじめ閾値を定めておき、識別子表示体110間の距離がこの閾値を下回るほど接近している場合は、反復要素プログラムによって繰り返し実行される要素プログラムの識別子表示体110として判断し、識別子表示体110間の距離がこの閾値を上回るほど離れている場合は、繰り返し実行されない要素プログラムの識別子表示体110として判断する。図8では、「前進する」の識別子表示体110aは「7回反復」の反復識別子表示体111の周辺に配置されたと判断され、「左に曲がる」の識別子表示体110bは上方の「前進する」の識別子表示体110aから離れていることから反復識別子表示体111の周辺ではないと判断され、この結果、「前進する」動作のみが7回繰り返されるわけである。
ここまで説明した内容に基づいて、プログラム構築手段306は実行基準に従った実行手順を設定するとともに、抽出された要素プログラムを組み合わせることで全体プログラムを作成する。その結果、図8に示すように「前進」を7回繰り返し、「左折」した後、「前進」を4回繰り返すというキャラクタの動作が実行される。
図9は、2段階の反復要素プログラムを含む要素プログラムの組み合わせからなる全体プログラムを説明するモデル図である。この図で提示された練習問題では、スタート地点を出発したキャラクタが、「右への前進を2回繰り返した後、上への前進を2回繰り返す」という動作をさらに3回繰り返すとゴールにたどり着くことができる。この場合も、反復要素プログラムを利用するとよい。ただし、反復動作をさらに反復させるという2段階の反復処理が必要であることから、いわゆる「入れ子ループ」の手法を採用することが考えられる。
この場合、反復要素プログラムにレベルを設定するとよい。例えば図9のケースでは、「3回反復」の反復要素プログラムがレベル1であり、2つの「2回反復」の反復要素プログラムはレベル2とされている。このレベルの設定は、要素プログラム内に記述しておいてもよいし、画像PH内の配置(例えば、左寄りにあるほどレベルが高い、など)からその都度判断してもよい。そして、自身のレベルより低い反復要素プログラムは、自身の繰り返し実行として対象となるが、自身と同等(あるいはそれ以上)のレベルの反復要素プログラムは、自身の繰り返し実行として対象としない、などの規約をあらかじめ定めておく。こうすることで、「右に進む」の識別子表示体110の直下に近接して配置された「2回反復」の反復識別子表示体111cは、これより上方に位置する反復識別子表示体111bの繰り返し実行には含まれないこととなる。つまり、「右に進む」を2回繰り返した後、「上に進む」を2回繰り返し、さらにこれらの動作(右進×2と上進×2)が3回繰り返されることになる。
ここまで説明した内容に基づいて、プログラム構築手段306は実行基準に従った実行手順を設定するとともに、抽出された要素プログラムを組み合わせることで全体プログラムを作成する。その結果、図9に示すように「右への前進を2回繰り返した後、上への前進を2回繰り返す、という動作をさらに3回繰り返す」というキャラクタの動作が実行される。
(条件要素プログラムからなる全体プログラム)
図10は、旗の有無を条件とした条件要素プログラムを含む要素プログラムの組み合わせからなる全体プログラムを説明するモデル図である。この図で提示された練習問題では、スタート地点を出発したキャラクタが3マスだけ前進し、Lと表示された旗(以下、「L旗」という。)があるマスで左折し、さらに2マスだけ前進して今度はRと表示された旗(以下、「R旗」という。)のマスで右折し、4マスだけ前進して再びL旗のマスで左折して2マスだけ前進すればゴールにたどり着くことができる。このように、左折と右折を繰り返すなど複雑な動作を表すためには、無限回数繰り返す反復要素プログラムと条件要素プログラムを利用するとよい。
図10は、旗の有無を条件とした条件要素プログラムを含む要素プログラムの組み合わせからなる全体プログラムを説明するモデル図である。この図で提示された練習問題では、スタート地点を出発したキャラクタが3マスだけ前進し、Lと表示された旗(以下、「L旗」という。)があるマスで左折し、さらに2マスだけ前進して今度はRと表示された旗(以下、「R旗」という。)のマスで右折し、4マスだけ前進して再びL旗のマスで左折して2マスだけ前進すればゴールにたどり着くことができる。このように、左折と右折を繰り返すなど複雑な動作を表すためには、無限回数繰り返す反復要素プログラムと条件要素プログラムを利用するとよい。
既述のとおり条件要素プログラムは、対応する条件と動作との組み合わせが記述されており、全体プログラムの進行中その条件に合致した場合にその動作を実行させるという指令が記述されたものである。例えば図10の場合、「R旗があるマス」という条件と「そのときは右折する」という動作が組み合わされた条件要素プログラムと、「L旗があるマス」という条件と「そのときは左折する」という動作が組み合わされた条件要素プログラムが用いられている。そして条件要素プログラムを利用する場合、この条件要素プログラムに対応する識別子120が表示された識別子表示体110(以下、特に「条件識別子表示体112」という。)を配置する。図10では、「R旗がある?」という識別子120には「R旗があるときは右折する」という条件要素プログラムが対応付けられており、「L旗がある?」という識別子120には「L旗があるときは左折する」という条件要素プログラムが対応付けられている。さらに「R旗がある?」が表示された条件識別子表示体112aと「L旗がある?」が表示された条件識別子表示体112bは、「前進する」の識別子表示体110に近接して配置されていることから、「無限反復」の反復識別子表示体111dの反復要素プログラムによって繰り返し実行される要素プログラムとして判断されている。したがって、原則としては繰り返し前進するが、R旗があるときは右折し、L旗があるときは右折する動作が実行されることとなる。
ここまで説明した内容に基づいて、プログラム構築手段306は実行基準に従った実行手順を設定するとともに、抽出された要素プログラムを組み合わせることで全体プログラムを作成する。その結果、図10に示すように「L旗があるマスまで前進して左折し、R旗があるマスまで前進して右折し、さらにL旗があるマスまで前進して左折する」というキャラクタの動作が実行される。
図11は、穴の有無を条件とした条件要素プログラムを含む要素プログラムの組み合わせからなる全体プログラムを説明するモデル図である。この図で提示された練習問題は、スタート地点を出発したキャラクタは前進を続けていくが、穴があるときはジャンプさせるというものである。したがって図11では、「穴がある」という条件と「そのときはジャンプする」という動作が組み合わされた条件要素プログラムを用い、そしてこの条件要素プログラムに対応付けられ、「穴がある?」という識別子120が表示された条件識別子表示体112cを配置し、その画像PHを取得する。
この場合も図10と同様、「前進する」の識別子表示体110と「穴がある?」の条件識別子表示体112cが、「無限反復」の反復識別子表示体111dに接近して配置されていることから、これらの識別子表示体110は反復要素プログラムによって繰り返し実行されるものとして判断される。したがって、原則としては繰り返し前進するが、穴があるときはジャンプするというキャラクタの動作が実行される。
(時間変化に対応する全体プログラム)
図12は、時間とともに状況が変化するゲームの例であり、状況変化に対応するように要素プログラムを組み合わせた全体プログラムを説明するモデル図である。この図で提示された練習問題は、定期的に上方から落下してくる矢を交わしながら前進していくというものである。つまり、キャラクタに適切な行動をとらせるよう先を予測しながら全体プログラムを作成することを狙いとした練習問題である。したがって、前進に掛かる時間と矢が落ちてくるタイミングを試行錯誤しながら把握し、一時停止という要素プログラムを「どこで」、「いくつ」配置すればよいかを見出す必要がある。この場合、実行指令手段203を利用してひとまず作成した全体プログラムを実行し、その実行内容を表示手段204で確認することで、前進にかかる時間と矢が落ちてくるタイミングを把握することができる。
図12は、時間とともに状況が変化するゲームの例であり、状況変化に対応するように要素プログラムを組み合わせた全体プログラムを説明するモデル図である。この図で提示された練習問題は、定期的に上方から落下してくる矢を交わしながら前進していくというものである。つまり、キャラクタに適切な行動をとらせるよう先を予測しながら全体プログラムを作成することを狙いとした練習問題である。したがって、前進に掛かる時間と矢が落ちてくるタイミングを試行錯誤しながら把握し、一時停止という要素プログラムを「どこで」、「いくつ」配置すればよいかを見出す必要がある。この場合、実行指令手段203を利用してひとまず作成した全体プログラムを実行し、その実行内容を表示手段204で確認することで、前進にかかる時間と矢が落ちてくるタイミングを把握することができる。
(要素プログラムの作成)
ここまで、要素プログラムはあらかじめ要素プログラム記憶手段305に記憶されていると説明してきたが、この要素プログラムをユーザが任意に作成することもできる。図13は、プログラム種別選択手段207を備えた本願発明のプログラム作成システムを示すブロック図である。この図に示すように、この場合のユーザ側装置200は、図6で説明した各手段に加えプログラム種別選択手段207を含んで構成される。以下、プログラム種別選択手段207を備えたプログラム作成システムによる処理の流れを、図13を参照しながら説明する。
ここまで、要素プログラムはあらかじめ要素プログラム記憶手段305に記憶されていると説明してきたが、この要素プログラムをユーザが任意に作成することもできる。図13は、プログラム種別選択手段207を備えた本願発明のプログラム作成システムを示すブロック図である。この図に示すように、この場合のユーザ側装置200は、図6で説明した各手段に加えプログラム種別選択手段207を含んで構成される。以下、プログラム種別選択手段207を備えたプログラム作成システムによる処理の流れを、図13を参照しながら説明する。
これまで説明したようにユーザは、所望の識別子表示体110を選出するとともに、これら識別子表示体110を所望の順で並べる。そして識別子表示体110の画像PHを取得し、送信手段202を利用してサーバ側装置300にその画像PHを送信する。このとき、ユーザがプログラム種別選択手段207を操作することで、プログラム構築手段306が作成するプログラムの種別を指定することができる。具体的には、サーバ側装置300に画像PHを送信するときに、プログラム(プログラム種別選択手段207の処理をコンピュータに実行させるもの)をユーザが操作する(例えば、種別ボタンをクリックする)ことで、プログラム構築手段306が作成するプログラムの種別を指定する。つまり、ユーザがプログラム種別選択手段207を操作して「要素プログラム」と指定したときは、プログラム構築手段306が作成したプログラムは「要素プログラム」として要素プログラム記憶手段305に記憶され、「全体プログラム」と指定したとき、あるいは何も指定しない(いわゆるデフォルト)ときは、プログラム構築手段306が作成したプログラムは「全体プログラム」として全体プログラム記憶手段307に記憶されるわけである。
図14は、要素プログラムを作成する具体例を説明するモデル図であり、(a)は「カップ麺を作る」という動作を実行する要素プログラムを作成する状況を示し、(b)は「カップ麺を作る」要素プログラムを3回繰り返す全体プログラムを作成する状況を示している。図14に提示された練習問題は、「ふたを開ける→お湯を入れる→ふたを閉める→3分待つ→ふたを開ける」という一連の動作をキャラクタに3回繰り返し行わせるものである。もちろん、5つの動作を実行する要素プログラムに対応する識別子表示体110(識別子120)を3回繰り返して配置(つまり15枚の識別子表示体110を配置)してもよいが、これでは識別子表示体110の数が不足している、あるいは1枚の画像に収まらない、といった不都合も予想される。
この場合、ユーザは、「ふたを開ける→お湯を入れる→ふたを閉める→3分待つ→ふたを開ける」の順で配置した識別子表示体110の画像PHを取得し、プログラム種別選択手段207で「要素プログラム」と指定したうえで、その画像PHをサーバ側装置300に送信する。このとき、ユーザがプログラム種別選択手段207を操作することで、作成する要素プログラムの実行情報130を「カップ麺を作る」と入力することもできる。作成するプログラムの種別(=要素プログラム)とともに画像PHを受信したサーバ側装置300では、プログラム構築手段306がこの画像PHの情報に基づいてプログラムを作成し、ここで作成されたプログラは「要素プログラム」として要素プログラム記憶手段305に記憶される(図14(a))。
そしてユーザは、「カップ麺を作る」という要素プログラムに対応する識別子120(例えば、「カップ麺を作る」という実行情報130)が表示された識別子表示体110を用意し、「3回反復」の反復要素プログラムの反復識別子表示体111と組み合わせて配置し、その画像PHを取得する。そしてユーザは、プログラム種別選択手段207で種別を指定することなく(あるいは、「全体プログラム」と指定したうえで)、その画像PHをサーバ側装置300に送信する。画像PHを受信したサーバ側装置300では、プログラム構築手段306がこの画像PHの情報に基づいて通常どおり全体プログラムを作成し、この全体プログラムは全体プログラム記憶手段307に記憶される(図14(b))。その結果、この全体プログラムを実行すると、「3個のカップ麺を作る」というキャラクタの動作が実行される。
4.プログラミング育成方法
続いて、本願発明のプログラミング育成方法の例について、図15を参照しながら説明する。なお本願発明のプログラミング育成方法は、ここまで説明した本願発明のプログラム作成システムを利用して行う方法であり、したがってプログラム作成システムと同じ内容に関する説明はここでは割愛し、プログラミング育成方法に特有の内容について説明することとする。すなわち、ここで説明しない内容は、既に説明したプログラム作成システムの内容と同様である。
続いて、本願発明のプログラミング育成方法の例について、図15を参照しながら説明する。なお本願発明のプログラミング育成方法は、ここまで説明した本願発明のプログラム作成システムを利用して行う方法であり、したがってプログラム作成システムと同じ内容に関する説明はここでは割愛し、プログラミング育成方法に特有の内容について説明することとする。すなわち、ここで説明しない内容は、既に説明したプログラム作成システムの内容と同様である。
はじめにユーザは提示された練習問題を確認し、これに対して最適と思う答えを構想する(Step101)。この構想に基づいてユーザは、適切と思う識別子表示体110を選出するとともに、これら識別子表示体110を所望の順で並べ(Step102)、画像取得手段201を用いて識別子表示体110(識別子120)の画像PHを取得し(Step103)、送信手段202を利用してプログラム作成システム(サーバ側装置300)にその画像PHを送信する(Step104)。
プログラム作成システムが画像PHを受信すると(Step201)、画像認識手段303が画像PHに含まれる識別子120とその配列を認識し(Step202)、要素プログラム抽出手段304が認識された識別子120を要素プログラム記憶手段305に照会して対応する要素プログラムを抽出する(Step203)。必要な要素プログラムを抽出すると、プログラム構築手段306が認識された識別子120の配列に基づいて「実行手順」を設定し、抽出された要素プログラムをこの実行手順にしたがって組み合わせることでユーザの答案プログラムを作成する(Step204)。
画像PHを送信したユーザは、実行指令手段203を操作することで自身の答案プログラムを実行するよう依頼し(Step105)、この依頼を受けたプログラム実行手段308は該当する(ユーザが意図する)答案プログラムを全体プログラム記憶手段307から読出してコンピュータに実行させ(Step205)、ユーザは表示手段204で表示されたその実行内容を確認する(Step106)。確認した結果、その答案プログラムがユーザの意図したものと異なれば、構想を修正したうえで再度、識別子表示体110の選択と配列を行って(Step102)答案グラムを作成し(Step204)、実行内容を確認する(Step106)。
答案プログラムがユーザの意図したものとなれば、ユーザが検定依頼手段204を操作することで、検定手段309に検定指令を送る(Step107)。そして検定手段309は、該当する(ユーザが意図する)答案プログラムを全体プログラム記憶手段307から読出すとともに、同一の練習問題に対する正答プログラムを正答プログラム記憶手段310から抽出する(Step206)。さらに検定手段309は、答案プログラムと正答プログラムを照らし合わせ、その照合結果(検定結果)をユーザに送信し(Step207)、これを受け取ったユーザは、プログラムのうち相違する部分や、改善すべき個所の解説、正誤のみの情報、あるいは正答プログラムとなる識別子表示体110の選択と配列といった検定結果を確認する(Step108)。
プログラム作成システム、プログラミング育成方法、及びプログラム作成プログラムは、学校や私塾での教育や企業での社員教育など幅広い教育現場で利用でき、また通信教育に限らず対面学習など様々な形態で実施することができる。本願発明が、プロミング技術を備えた人材を数多く輩出する一助になることを考えれば、産業上利用できるばかりでなく社会的にも大きな貢献を期待し得る発明である。
110 識別子表示体
111 反復識別子表示体
112 条件識別子表示体
120 識別子
130 実行情報
200 ユーザ側装置
201 (ユーザ側装置の)画像取得手段
202 (ユーザ側装置の)送信手段
203 (ユーザ側装置の)実行指令手段
204 (ユーザ側装置の)表示手段
205 (ユーザ側装置の)検定依頼手段
206 (ユーザ側装置の)受信手段
207 (ユーザ側装置の)プログラム種別選択手段
300 サーバ側装置
301 (サーバ側装置の)受信手段
302 (サーバ側装置の)画像読出し手段
303 (サーバ側装置の)画像認識手段
304 (サーバ側装置の)要素プログラム抽出手段
305 (サーバ側装置の)要素プログラム記憶手段
306 (サーバ側装置の)プログラム構築手段
307 (サーバ側装置の)全体プログラム記憶手段
308 (サーバ側装置の)プログラム実行手段
309 (サーバ側装置の)検定手段
310 (サーバ側装置の)正答プログラム記憶手段
PH 画像
111 反復識別子表示体
112 条件識別子表示体
120 識別子
130 実行情報
200 ユーザ側装置
201 (ユーザ側装置の)画像取得手段
202 (ユーザ側装置の)送信手段
203 (ユーザ側装置の)実行指令手段
204 (ユーザ側装置の)表示手段
205 (ユーザ側装置の)検定依頼手段
206 (ユーザ側装置の)受信手段
207 (ユーザ側装置の)プログラム種別選択手段
300 サーバ側装置
301 (サーバ側装置の)受信手段
302 (サーバ側装置の)画像読出し手段
303 (サーバ側装置の)画像認識手段
304 (サーバ側装置の)要素プログラム抽出手段
305 (サーバ側装置の)要素プログラム記憶手段
306 (サーバ側装置の)プログラム構築手段
307 (サーバ側装置の)全体プログラム記憶手段
308 (サーバ側装置の)プログラム実行手段
309 (サーバ側装置の)検定手段
310 (サーバ側装置の)正答プログラム記憶手段
PH 画像
Claims (10)
- 識別子が付された識別子表示体を認識するとともに、所定の指令をコンピュータに実行させる要素プログラムを組み合わせることで、所定の指令をコンピュータに実行させる全体プログラムを作成するシステムであって、
2以上の前記要素プログラムを記憶する要素プログラム記憶手段と、
2以上の前記識別子表示体を含む画像を読み出し、該画像に含まれる前記識別子表示体の前記識別子に対応づけられた前記要素プログラムを前記要素プログラム記憶手段から抽出するとともに、抽出された前記要素プログラムと前記画像上の前記識別子表示体の配列とに基づいて前記全体プログラムを作成するプログラム作成手段と、
を備えた、ことを特徴とするプログラム作成システム。 - コンピュータによって実行された前記全体プログラムの実行内容を表示する表示手段を、
さらに備えた、ことを特徴とする請求項1記載のプログラム作成システム。 - 前記識別子が、前記識別子表示体に付された色、前記識別子表示体に記された模様、もしくは前記識別子表示体の形状、又はこれらの組み合わせである、ことを特徴とする請求項1又は請求項2記載のプログラム作成システム。
- 前記識別子表示体に、前記要素プログラムによる実行内容を把握することができる実行情報が記載された、ことを特徴とする請求項1乃至請求項3のいずれかに記載のプログラム作成システム。
- プログラム種別選定手段をさらに備え、
前記プログラム種別選定手段によって要素プログラムが指定されたときは、前記プログラム作成手段は、前記画像上の前記識別子と前記識別子表示体の配列とに基づいて前記要素プログラムを作成し、該要素プログラムが前記要素プログラム記憶手段に記憶される、ことを特徴とする請求項1乃至請求項4のいずれかに記載のプログラム作成システム。 - 前記要素プログラム記憶手段が、反復要素プログラムを記憶し、
前記反復要素プログラムを抽出したときは、前記プログラム作成手段は、該反復要素プログラムに対応する前記識別子表示体の周辺に配置された前記識別子表示体に対応する前記要素プログラムを、繰り返しコンピュータに実行させる前記全体プログラムを作成する、ことを特徴とする請求項1乃至請求項5のいずれかに記載のプログラム作成システム。 - 前記要素プログラム記憶手段が、条件要素プログラムを記憶し、
前記条件要素プログラムには、あらかじめ定められた条件と該条件に応じた指令内容が設定され、
前記条件要素プログラムを抽出したときは、前記プログラム作成手段は、与えられた条件に応じた指令をコンピュータに実行させる前記全体プログラムを作成する、ことを特徴とする請求項1乃至請求項6のいずれかに記載のプログラム作成システム。 - 与えられた問題に対してユーザが配列した前記識別子表示体の前記画像に基づいて作成された前記全体プログラムと、あらかじめ用意された問題の答である正答プログラムとを照らし合わせるとともに、照合した結果をユーザに通知する検定手段を、さらに備えた、ことを特徴とする請求項1乃至請求項7のいずれかに記載のプログラム作成システム。
- ユーザが、所定の指令をコンピュータに実行させる要素プログラムを組み合わせることで、所定の指令をコンピュータに実行させる答案プログラムを作成し、該答案プログラムと、あらかじめ用意された問題の答であって所定の指令をコンピュータに実行させる正答プログラムとを照らし合わせ、照合した結果をユーザに通知することでユーザのプログラミング技術を育成する方法であって、
ユーザが、与えられた問題に対して識別子が付された識別子表示体を配列する配列工程と、
配列された2以上の該識別子表示体を含む画像を取得する画像取得工程と、
前記画像に含まれる前記識別子表示体の前記識別子に対応づけられた前記要素プログラムを抽出するとともに、抽出された前記要素プログラムと前記画像上の前記識別子表示体の配列とに基づいて所定の指令をコンピュータに実行させる前記答案プログラムを作成するプログラム作成工程と、
前記答案プログラムと前記正答プログラムを照らし合わせるとともに、正誤をユーザに通知する検定工程と、
を備えた、ことを特徴とするプログラミング育成方法。 - 識別子が付された識別子表示体を認識するとともに、所定の指令をコンピュータに実行させる要素プログラムを組み合わせることで、所定の指令をコンピュータに実行させる全体プログラムを作成する処理をコンピュータに実行させるプログラムであって、
2以上の前記識別子表示体を含む画像中にある前記識別子表示体の前記識別子に対応づけられた前記要素プログラムを、2以上の前記要素プログラムを記憶する要素プログラム記憶手段から抽出するとともに、抽出された前記要素プログラムと前記画像上の前記識別子表示体の配列とに基づいて前記全体プログラムを作成するプログラム作成処理を、
コンピュータに実行させる、ことを特徴とするプログラム作成プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016164105A JP2018031895A (ja) | 2016-08-24 | 2016-08-24 | プログラム作成システム、プログラミング育成方法、及びプログラム作成プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016164105A JP2018031895A (ja) | 2016-08-24 | 2016-08-24 | プログラム作成システム、プログラミング育成方法、及びプログラム作成プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018031895A true JP2018031895A (ja) | 2018-03-01 |
Family
ID=61303005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016164105A Pending JP2018031895A (ja) | 2016-08-24 | 2016-08-24 | プログラム作成システム、プログラミング育成方法、及びプログラム作成プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018031895A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110188270A (zh) * | 2019-05-26 | 2019-08-30 | 韶关市启之信息技术有限公司 | 一种基于熟悉环境协助用户学习编程的方法 |
JP2019174524A (ja) * | 2018-03-27 | 2019-10-10 | 合同会社オフィス・ゼロ | プログラム作成支援システム及びその方法並びにそのプログラム |
JP2019174797A (ja) * | 2018-03-26 | 2019-10-10 | カシオ計算機株式会社 | 電子機器、学習支援端末、学習支援方法、およびプログラム |
WO2020255182A1 (ja) * | 2019-06-17 | 2020-12-24 | 合同会社オフィス・ゼロ | プログラム作成支援システム及びその方法並びにそのプログラム |
-
2016
- 2016-08-24 JP JP2016164105A patent/JP2018031895A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019174797A (ja) * | 2018-03-26 | 2019-10-10 | カシオ計算機株式会社 | 電子機器、学習支援端末、学習支援方法、およびプログラム |
JP7334430B2 (ja) | 2018-03-26 | 2023-08-29 | カシオ計算機株式会社 | 教育支援装置、教育支援方法およびプログラム |
JP2019174524A (ja) * | 2018-03-27 | 2019-10-10 | 合同会社オフィス・ゼロ | プログラム作成支援システム及びその方法並びにそのプログラム |
EP3779926A4 (en) * | 2018-03-27 | 2021-05-26 | Office Zero Limited Liability Company | PROGRAM CREATION ASSISTANCE SYSTEM, RELATED PROCESS, AND PROGRAM |
CN110188270A (zh) * | 2019-05-26 | 2019-08-30 | 韶关市启之信息技术有限公司 | 一种基于熟悉环境协助用户学习编程的方法 |
WO2020255182A1 (ja) * | 2019-06-17 | 2020-12-24 | 合同会社オフィス・ゼロ | プログラム作成支援システム及びその方法並びにそのプログラム |
JPWO2020255182A1 (ja) * | 2019-06-17 | 2020-12-24 | ||
JP7184402B2 (ja) | 2019-06-17 | 2022-12-06 | 合同会社オフィス・ゼロ | プログラム作成支援システム及びその方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Witzel et al. | Number sense: Strategies for helping preschool through grade 3 children develop math skills | |
Resnick | Design of an early learning curriculum. | |
JP2018031895A (ja) | プログラム作成システム、プログラミング育成方法、及びプログラム作成プログラム | |
CN109493652A (zh) | 基于vr技术的实践教学系统 | |
Hugo et al. | Six failures of the pedagogic imagination: Bernstein, Beeby and the search for an optimal pedagogy for the poor | |
Tsalapatas et al. | Game-based programming towards developing algorithmic thinking skills in primary education | |
US11727819B2 (en) | Interactive system for teaching sequencing and programming | |
Freina et al. | Discussing implementation choices for serious games supporting spatial and orientation skills | |
Baroutsis et al. | Computational thinking as a foundation for coding: Developing student engagement and learning | |
Kritzer et al. | Playing With Code | |
Hamilton | Critical Thinking for Better Learning: New Insights from Cognitive Science | |
Fresch | Strategies for effective balanced literacy | |
Olvera et al. | Teaching Basic Concepts: Geometric Forms and Colors on a NAO Robot Platform. | |
Tramonti | Reinforcing learning setting through the use of digital tools | |
KR100598143B1 (ko) | 유아용 두뇌개발 학습 시스템 | |
Jin et al. | An Investigation of In-Service Teachers' Perceptions and Development of Computational Thinking Skills in a Graduate Emerging Technologies Course. | |
Havlásková et al. | Methodology for developing algorithmic thinking in pre-school education | |
Korenova et al. | The Use of Augmented Reality in the After School Club from the Point of View of Future Educators | |
Miglino et al. | Enhancing manipulative learning with smart object | |
KR100850041B1 (ko) | 객관적 선택에 의한 과학 실험 방법 | |
Vargová et al. | Robotic toys and their use in pre-primary and primary education | |
Xixi et al. | Electric signals in machine learning using AppInventor and Arduino | |
Tippins et al. | Elementary science education: Looking toward the future | |
Mont1&2 et al. | Coding toys while learning English: Programming with very young learners | |
Cunningham | Engineering education for elementary students |