development of a mindstorms programming …...2.1 nxt mindstorms...

9
ロボット制御用初学者向けプログラミング学習環境の開発 Development of a MINDSTORMS Programming Environment for Novices 赤井 昭仁 , 主原佑記 , 中村 亮太 , 松浦 敏雄 Akihito Akai , Yuuki Syuhara , Ryota Nakamura , Toshio Matsuura 概要:中学校の技術家庭の中で「プログラムによる計測・制御」が必履修扱いとなったことに伴い,これを学ぶための 教材として,ロボットが注目されるようになり,ロボットを用いた教育実践例がいくつか報告されている.教育用のロ ボットの中では,LEGO 社の MINDSTORMS が注目されている.MINDSTORMS は,モーターやセンサーなどの 部品を組み合わせることで車や二足歩行ロボットなどを作成することができる.またロボットに様々な動きをさせるこ とができるプログラムの開発環境も用意されている.しかし,MINDSTORMS のプログラムの開発環境は,(1) プロ グラムを作成するための部品 (アイコン) の状態をアイコンを見ただけでは確認できない,(2) 部品となるアイコンの数 が多い,(3) 変数の扱い方が複雑で分かりづらいという問題があり,初学者に易しい環境とは言い難い. そこで本研究では,これらの問題を解決した MINDSTORMS のための初学者向けプログラミング学習環境を開発し た.本研究で開発したプログラミング学習環境上で初学者向けのコースウェアを作成した. AbstractFrom academic year 2012 the mechanism of measurement and control by programshas become required in junior high school technical arts and home economics courses. For such instruction teaching materials using cars and robot have been reported. Among some robots for education, MINDSTORMS made by LEGO has received the most attention. With MINDSTORMS we can make cars or robots by assembling parts such as motors or sensors. In addition, a development environment of the program for these motors and sensors is provided. However, programming novices face three problems: (1) there are too many icons for showing parts, (2) we cannot determine the state of the parts by only seeing icons, (3) variables are too complicated for beginners to understand. Therefore, we developed MINDSTORMS Programming Environment for Novices to solve these problems. In addition, we recommend introductory courseware using this learning environment. キーワード: 計測・制御, MINDSTORMS, NXT, EV3, OpenBlocks Keywords: Measurement and Control, MINDSTORMS, NXT, EV3, OpenBlocks 1 はじめに 社会の情報化の進展に伴って,情報教育の重要 性が認識され,2002 年より中学校では「技術・家 庭」の中で,高等学校では新教科「情報」として情報 教育が始まった.当初の授業は,コンピュータリテ ラシーに力点が置かれたものであったが,次第に情 大阪市立大学大学院 創造都市研究科 Graduate School of CreativecitiesOSAKA City University 報の科学的理解についても重視されるようになり, 2012 年度からは,中学校の技術の中で「プログラ ムによる計測・制御」が必履修に指定されるように なった. 「プログラムによる計測・制御」を学ぶための教 材として,ロボットが注目されるようになり,ロ ボットを用いた教育実践例がいくつか報告されてい [1][2][3].教育用のロボットの中でも,LEGO の「MINDSTORMS」が注目されており [4],モー ターやセンサーなどの部品を組み合わせることで

Upload: others

Post on 13-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Development of a MINDSTORMS Programming …...2.1 NXT MINDSTORMS を動かすためのソフトウェアと して,教育用 NXT ソフトウェア (以下 NXT)[8] が ある.

ロボット制御用初学者向けプログラミング学習環境の開発Development of a MINDSTORMS Programming Environment

for Novices

赤井 昭仁 †, 主原佑記 †, 中村 亮太 †, 松浦 敏雄 †

Akihito Akai†, Yuuki Syuhara†, Ryota Nakamura†, Toshio Matsuura†

概要:中学校の技術家庭の中で「プログラムによる計測・制御」が必履修扱いとなったことに伴い,これを学ぶための教材として,ロボットが注目されるようになり,ロボットを用いた教育実践例がいくつか報告されている.教育用のロボットの中では,LEGO社のMINDSTORMSが注目されている.MINDSTORMSは,モーターやセンサーなどの部品を組み合わせることで車や二足歩行ロボットなどを作成することができる.またロボットに様々な動きをさせることができるプログラムの開発環境も用意されている.しかし,MINDSTORMS のプログラムの開発環境は,(1)プログラムを作成するための部品 (アイコン)の状態をアイコンを見ただけでは確認できない,(2)部品となるアイコンの数が多い,(3)変数の扱い方が複雑で分かりづらいという問題があり,初学者に易しい環境とは言い難い.そこで本研究では,これらの問題を解決した MINDSTORMS のための初学者向けプログラミング学習環境を開発した.本研究で開発したプログラミング学習環境上で初学者向けのコースウェアを作成した.

Abstract:From academic year 2012 “the mechanism of measurement and control by programs” has become

required in junior high school technical arts and home economics courses. For such instruction teaching

materials using cars and robot have been reported. Among some robots for education, MINDSTORMS made

by LEGO has received the most attention. With MINDSTORMS we can make cars or robots by assembling

parts such as motors or sensors. In addition, a development environment of the program for these motors

and sensors is provided. However, programming novices face three problems: (1) there are too many icons

for showing parts, (2) we cannot determine the state of the parts by only seeing icons, (3) variables are too

complicated for beginners to understand. Therefore, we developed MINDSTORMS Programming Environment

for Novices to solve these problems. In addition, we recommend introductory courseware using this learning

environment.

キーワード: 計測・制御, MINDSTORMS, NXT, EV3, OpenBlocks

Keywords: Measurement and Control, MINDSTORMS, NXT, EV3, OpenBlocks

1 はじめに

社会の情報化の進展に伴って,情報教育の重要性が認識され,2002 年より中学校では「技術・家庭」の中で,高等学校では新教科「情報」として情報教育が始まった.当初の授業は,コンピュータリテラシーに力点が置かれたものであったが,次第に情

†大阪市立大学大学院 創造都市研究科†Graduate School of Creativecities,OSAKA City

University

報の科学的理解についても重視されるようになり,2012 年度からは,中学校の技術の中で「プログラムによる計測・制御」が必履修に指定されるようになった.「プログラムによる計測・制御」を学ぶための教材として,ロボットが注目されるようになり,ロボットを用いた教育実践例がいくつか報告されている [1][2][3].教育用のロボットの中でも,LEGO社の「MINDSTORMS」が注目されており [4],モーターやセンサーなどの部品を組み合わせることで

Daisuke YOSHIDA
35
Page 2: Development of a MINDSTORMS Programming …...2.1 NXT MINDSTORMS を動かすためのソフトウェアと して,教育用 NXT ソフトウェア (以下 NXT)[8] が ある.

車や二足歩行ロボットなどを作成することができる.またロボットに様々な動きをさせることができるプログラムの開発環境も用意されている.また,MINDSTORMSはセンサーの入力に応じて条件分岐ができるので,例えば黒い線に沿ってロボットカーを走らせたり,タッチセンサーを用いて障害物を避けて走行させるなど,楽しく遊びながらプログラミングを学習することが可能である [5][6][7].しかし,MINDSTORMSのプログラムの開発環境は,初学者が利用するには,必ずしも使い易いものではない.その理由として,(1) プログラムを作成するための部品がどのような状態かを確認する際に,ソフトウェアの画面下にある詳細画面を見なくてはならないため手間がかかる,(2)部品を表すアイコンの数が多く,また似たアイコンもあるため初学者が混乱する要因になっている,(3)変数を扱う際に,値を書き込むアイコン,値を読み込むアイコンなど,同じようなアイコンが並ぶことになり,初学者にとっては分かりづらいという点が挙げられる.そこで本研究では,既存のMINDSTORMSのプログラミング開発環境よりも分かりやすい,上記の問題を解決したプログラミング学習環境の実装を目標とする.本学習環境では,アイコンを見ただけで各部品の状態を把握できる.また,学習段階に応じて必要なアイコンを少しずつ増やしていくことができる.さらに,変数の扱い方は従来のプログラミング言語の扱い方と同様に単純化した.

2 先行研究

この章では MINDSTORMS を動かすためのプログラミングツールを紹介する.2.1 NXT

MINDSTORMSを動かすためのソフトウェアとして,教育用 NXTソフトウェア (以下 NXT)[8]がある.NXTは,図 1のようにアイコンをつなげていくことでMINDSTORMSの動作を指定する.プログラムが完成したあとは USB や Bluetooth

を用いて NXTからMINDSTORMSにダウンロードし, スタンドアローンでプログラムを実行させ

図 1 NXTの画面表示例

ることができる.NXTには初学者にとっては必ずしも分かりやすいものではない.その原因として以下の点が挙げられる.(1) アイコン一覧性問題:各部品アイコンを見ただけで細かい設定を確認することができず,アイコンの詳細を確認するためには,アイコンとは別の詳細表示画面を確認しなくてはならない.また複数のアイコンの詳細設定を同時に確認することができない.(2) アイコンの数問題:NXT には部品のアイコンが 45個あり,似たようなアイコンや一見して何のアイコンか分からないものもあるため初学者には分かりづらくなっている.(3) 変数の扱い方問題:変数の扱い方が煩雑である.例えば x と y を計算するだけでも同じアイコンを 5つ並べなければならない.2.2 EV3

NXTを改良し,新しいMINDSTORMSの動きを作成するソフトとして,教育版 EV3 ソフトウェア (以下 EV3)[9] がある.EV3 のプログラム開発環境は NXT と同様にアイコンを横に並べていく.EV3 ではアイコンの中ですべての詳細設定が可能であり,アイコン一覧性問題を解決している.しかしアイコンの数問題,および,変数の扱い方問題については改善が見られない.2.3 Enchanting

Enchanting[10] は,Scratch[11] をベースにMINDSTORMS 用に対応させたものである.画面右上 (図 3) にシミュレータがあるのでプログラムの動作を確認することもできる.

Page 3: Development of a MINDSTORMS Programming …...2.1 NXT MINDSTORMS を動かすためのソフトウェアと して,教育用 NXT ソフトウェア (以下 NXT)[8] が ある.

図 2 EV3の画面表示例

図 3 Enchanting

Enchanting は変数の扱い方問題について改善されており,従来のプログラミング言語と同様の方法で変数を扱うことができる.アイコンの一覧性問題については,NXTとは異なるが別の窓を開く必要がある.アイコンの数問題は,アイコンの総数 100

以上となっているため依然として初学者には分かりづらい.

3 提案するプログラミング学習環境

3.1 提案する学習環境の概要本研究で提案する学習環境は,ブロック*1を並べることでプログラムを作成することができ,作成したプログラムを NQC*2[12] に変換することができる.左にあるカテゴリー*3を押すと,そのカテゴ

*1 NXTでは各動作を表す図をアイコンと呼び,今回提案するものではブロックと呼ぶ.

*2 NQCとは,MINDSTOMRS用の Cライクなプログラミング言語である

*3 図 4 の左側に並んでいるボタンを本論文ではカテゴリーと呼ぶ.

リーに属するブロックが表示される (図 5).ここからブロックを選択し,ワークスペース (図 4 右側)

上組み合わせてプログラムを作成する.この学習環境は,主原が Scratch ライクなインターフェイスである OpenBlocks を改良した初学者向けのプログラミング学習環境 (oPEN)[13]を利用している.oPENでは,学習の難易度に応じてブロックを増やすというステージ分け機能とプログラミング言語に変換する機能が用意されている.

図 4 提案する学習環境

図 5 カテゴリーとブロック表示

3.2 解決手法(1)アイコン一覧性問題に対する解決策NXTのアイコン一覧性問題に関して,アイコンとその詳細表示を一体化させることで解決を図った.アイコンを見るだけで部品のすべてのパラメータを確認することができる.「モーター」ブロックで例を示すと,図 6 のモーターのアイコン名の右上の「ポート」とその下にある「パワー」は必須パラメータで必ずに設定しなけ

Page 4: Development of a MINDSTORMS Programming …...2.1 NXT MINDSTORMS を動かすためのソフトウェアと して,教育用 NXT ソフトウェア (以下 NXT)[8] が ある.

ればならない.追加でパラメータを設定する場合は右下にある「回転数ほか」の部分にモーターを何回回転させるかを表す「回転数」ブロックとモーターをどれだけ動かすかを示す「持続時間」ブロックのいずれか,または両方を挿入することで詳細設定ができる.設定できるパラメータが多数ある場合,複数の必要な項目をブロックのパラメータとして追加することができる.

� �

図 6 改良したブロック

(2)アイコンの数問題に対する解決策NXT のアイコンの数問題に関しての解決策は,ステージ分け手法を用いることで段階的に学習を可能にしている.ステージ分けは,プログラミングの学習段階に応じて表示するアイコンを徐々に増やしていくことで学習者の混乱を低減する.ステージ 1(図 7)はロボットの基本動作のステージであり「プログラムの開始」と「モーター」のみから構成される.ステージ 2(図 8)は繰り返しであり,「制御系のブロック」群に「繰り返し」ブロックと「boolean 型」のブロックが追加されている.また図 8の左側にあるカテゴリーに「四則演算」が増えている.このようにして学習段階が進むにつれて,ブロックを増やしていく.

図 7 ステージ 1

(3)変数の扱い方問題に対する解決策変数の扱い方は従来のプログラミング言語と同様の方法で扱うことができる.図 9 のように 1 つ目の「宣言」ブロックに「変数」ブロックをはめることで変数宣言することができる.次の「xに代入す

図 8 ステージ 2

る」というブロックに「数値」ブロックの 50をはめ込むことで代入できる.変数 xを使いたいときは,図 9 の条件分岐ブロックの条件式 (ならば) の右辺にある変数「x」ブロック (変数を参照するためのブロック)をはめ込むことで,条件分岐ブロックの条件文や計算式に用いることができる.

図 9 変数の扱い方

4 実装

この章では,MINDSTORMS用のプログラミング学習環境の実装方法について記載する.4.1 MINDSTORMSの各部品の定義実装する際に最初に MINDSTORMS の各部品に対応するブロックを作成した.新しいブロックは,OpenBlocks の block 情報が記載されている

Page 5: Development of a MINDSTORMS Programming …...2.1 NXT MINDSTORMS を動かすためのソフトウェアと して,教育用 NXT ソフトウェア (以下 NXT)[8] が ある.

xml(blockInfo.xml) に追加することで生成することができる.(1)モーター図 10に示すモーターブロックを作成するために,図 11のような xmlファイルを記述した.モーターのパラメータは,モーターが繋がっている「ポート」と,モーターの出力の「パワー」を指定する必須パラメータと,回転数と持続時間を必要に応じて設定できる「回転数ほか」のオプションパラメータがある.図 10(A)の例では,「回転数ほか」のオプションパラメータとして,「回転 (度)」ブロックが指定されており,この引数として 360(度)が与えられている.これによって 1回転させることを指示している.図 10(B)の例では「回転数ほか」のオプションパラメータとして,「回転 (度)」ブロックと「持続時間」ブロックが指定されており,この引数としては360(度)と 1000(ミリ秒)が与えられている (持続時間はミリ秒単位).これによって,1回転した後に,1秒間回転させることを指示している.

� �

図 10 改良したブロック

モーターブロックは図 11 のように block-

Info.xml の中で定義している.図 11 の 377 行のnameの部分にブロック名を指定している.ブロック名はブロックからソースコードに変換するとき,および,どのブロックを表示させるかを指定する際に用いるので重要である.次に「initlabel」の部分にブロックに表示する文字列を指定する.382行目から 394 行目までがブロックのコネクタ*4の指定である.383 行の「label」(=「ポート」) が第一引数の名前でその後に接続する形を決めるのが「connector-type」である.「connector-type」として図では「io」「number」が記述されているが,こ

*4 コネクタとは,ブロックの右側にはめることができる口のことである.

図 11 モーターブロックを作成するための xml

図 12 図 11で作成されたモーターブロック

れはブロックを接続するためのコネクタの形状を指定している.385行目ではブロック作成時にあらかじめ接続しておくブロックを記述している.この図11の設定の場合は,数値 50が繋がっている.図 11

から作成されるブロックは,図 12になる.(2)センサー次にセンサーブロックの使用例を図 13 に示す.図 13 中の先頭に「タッチセンサー」ブロックを置き,MINDSTORMSのどのポートに繋がっているかを指定する.これがセンサーの初期設定である.「条件分岐」ブロックの条件文の左辺の「Port3 からの入力値」ブロックはセンサーの値を保持している (このブロックの値が 1に等しいときタッチセンサーが押されており,0のとき押されていないことが分かる).このプログラムでは,タッチセンサーが押されているとき条件分岐の真のブロックに制御が移り,B と C につながれているモーターを「パワー」50で 1回転することを指示している.

Page 6: Development of a MINDSTORMS Programming …...2.1 NXT MINDSTORMS を動かすためのソフトウェアと して,教育用 NXT ソフトウェア (以下 NXT)[8] が ある.

図 13 センサーブロック

図 14 センサーブロックを作成するための xml

4.2 ステージの構成法ステージ分けは,基盤となったシステムにステージ分けの機能が用意されているので,それを活用した.今回の実装ではプログラミングの経験のない学生が初めてMINDSTOMRSにふれると想定し,ステージは大きく 3つに分けた.ステージ 1では,逐次処理とロボットの基本動作を学び,ステージ 2では繰り返しと四則演算を学ぶ.そしてステージ 3では条件分岐について学ぶというコースウェアを提案した.各ステージで使用するブロックを図 15,図16,および,図 17に示す.ステージ 1の主なブロックとして,ロボットを動かすためのモーターブロックがある.ここでは基本的なプログラムの逐次処理を学んでもらう.ステージ 2 は,「ロボットを四角形に走らせる」,「ロボットを何度も左右に蛇行して走らせる」などの例題をもとに繰り返しを学ぶ.ステージ 3 は,「ロボットを黒い線の上だけを走らせるライントレース」,「ロ

ボットを物にぶつかるまで走らせる (物にぶつかった場合はロボットを停止させる)」などの例題を用いて条件分岐を学ぶ.

図 15 ステージ 1

図 16 ステージ 2

図 17 ステージ 3

次にステージ分けを実現するために,各ステージの xml ファイルを作成し,各ステージに表示するブロックをカテゴリーに分けて xml ファイルに記述した.下の図 18 の 18 行目のようにブロックの作成に使ったブロック名 (例では start)を記述することでブロックを追加できる.図 18 と図 19 を比

Page 7: Development of a MINDSTORMS Programming …...2.1 NXT MINDSTORMS を動かすためのソフトウェアと して,教育用 NXT ソフトウェア (以下 NXT)[8] が ある.

較すると,図 19の方は 20行目以降に repeatなどのブロックが追加されているのが分かる.

図 18 ステージ 1を構成するための xml

図 19 ステージ 2を構成するための xml

4.3 NQCへの変換法本研究のプログラミング学習環境から NQC にソースコードを変換する仕組みは,NQC.xmlに記述している (図 20).図の 155 行目にブロックの名前を示し,その下の CodeTextという部分にブロックと対応するソースコード文を書く. 157行目の@

のあとにある文字列 (図では「OnFwd」)をソースコードとして変換するという仕組みになっている.「@ val」は,ブロックに接続されている引数 (=パラメータ)の値をとってくるもので,ソースコードは OnFwd(OUT BC, 50)と変換する (図 5).

図 20 NQCのソースコードに落とすための xml(一部)

図 21 モーター

4.4 特殊な部品の定義モーターは「回転数ほか」というオプションパラメータの部分で複数のブロックを入れることができるようになっているので,そのオプションパラメータをソースコードに落とすには OpenBlockの制約 (ソースコードに変換する際,ブロックのコネクタ情報を上から順番に取ってくるため,コネクタに接続されているブロックの順番を変えることができない) があり,NQC.xml だけでは書けないため (図 22参照),ToCode.javaに追加した.追加し

Page 8: Development of a MINDSTORMS Programming …...2.1 NXT MINDSTORMS を動かすためのソフトウェアと して,教育用 NXT ソフトウェア (以下 NXT)[8] が ある.

た部分は,図 23 の 213 行目から 253 行目である.モーターのオプションパラメータがついていない場合 (図 24),「OnFwd」という命令文を出力し,「回転数」ブロックがオプションパラメータにある場合(図 25)は,「RotateMotor」という命令文を出力という仕組みにしている.また「回転数」ブロックと「持続時間」ブロックが共にオプションパラメータにある場合 (図 26),「回転数」ブロックを優先して「RotateMotor」の命令文を出力した後に「wait」の命令文を出力という作業を行っている.

図 22 特殊な部品 (モーターの場合)

5 おわりに

本研究では,既存のMINDSTORMSのプログラム学習環境よりも分かりやすいプログラミング学習環境を開発した.本研究で開発したプログラミング学習環境で作成したプログラム例を NQCに変換した後,MINDSTORMSに転送し,動作確認した.今後の課題としては,今回開発したプログラミング環境にデバッグ用のシミュレータの実装すること, また EV3に対応するブロック (新しく追加されたセンサーなど)を追加すること,さらに,NQC

の言語に変換した後に直接 MINDSTORMS に転送できる仕組みを作成することが挙げられる.

図 23 モーターのソースコードに落とす部分

������������������ ���

図 24 モーター (オプションパラメータ無し)

��������������������� �����������

図 25 モーター (回転数)

��������������������� ���������������������

図 26 モーター (回転数+持続時間)

Page 9: Development of a MINDSTORMS Programming …...2.1 NXT MINDSTORMS を動かすためのソフトウェアと して,教育用 NXT ソフトウェア (以下 NXT)[8] が ある.

参考文献[1] 井戸坂幸男, 兼宗進, 久野靖. 中学校における自律制御ロボット教材の評価と授業. 情報処理学会研究報告, Vol. 2010-CE-103, pp. 1–7, 2010.

[2] 西ヶ谷浩史, 兼宗進, 青木浩幸, 紅林秀治. アーム付き自律型移動ロボットを使った授業実践. 情報処理学会研究報告, Vol. 2008-CE-93, pp. 17–23, 2008.

[3] 西ヶ谷浩史, 青木浩幸, 井上修次, 江口啓, 紅林秀治.

自律型 3モータ制御ロボット教材を用いた計測の授業. 情報処理学会研究報告, Vol. 2009-CE-98, pp.

113–120, 2009.

[4] MINDSTORMS. http://www.lego.com/ja-jp/

mindstorms/?domainredir=mindstorms.lego.

com (2014年 1月 30日確認).

[5] 高岡詠子, 伊川英男. ロボット制御による Java言語プログラミング教育支援システム Jesle. 情報処理学会研究報告, Vol. 2003-CE-70, pp. 9–16, 2003.

[6] 富永浩之, 加藤聡. LEGO ロボットの制御をゲーム題材とするプログラミング演習のフレームワーク. 電子情報通信学会, Vol. ET2009-19, pp. 31–38,

2009.

[7] 早川栄一, 高橋丈博, 青嶌健一. 情報系工学科におけるロボットを用いた組込みシステム教育の実践. 情報処理学会研究報告, Vol. 2009-CE-98, pp.

127–134, 2009.

[8] Takayori Takamoto. LEGO Mindstorms

NXT2.0ユーザガイド. http://www2.ocn.ne.jp/

~takamoto/LegoMindstormsNXT2.0UserGuide.

pdf (2014年 1月 30日確認).

[9] LEGO Mindstorms EV3 ユ ー ザ ガ イ ド.

User Guide LEGO MINDSTORMS EV3 10 All JA.

pdf (2014年 1月 30日確認).

[10] Enchanting. http://enchanting.robotclub.

ab.ca/tiki-index.php (2014年 1月 30日確認).

[11] スクラッチ(Scratch)とは - みんなでたのしくスクイーク. http://etoys.jp/scratch/scratch.

html (2014年 1月 30日確認).

[12] 金宏和實. 中学生のための nqc 入門―nqc プログラミングの解説と mindstorms,そしてコンピュータの仕組みを少しだけ知ってもらうためのテキスト―. http://software.nikkeibp.co.jp/

software/special/nqc/nqcframe.htm (2014 年1月 30日確認).

[13] 主原佑記. OpenBlocks を用いたプログラミング学習環境の開発. 大阪市立大学大学院創造都市研究科修士学位論文, 2014.

[14] 大山啓, 高木均, 日下一也, 堀川敬太郎. Lego Mind-

storms を利用した創造的ものづくり教育とその効果. 2004.

[15] 加藤聡, 小谷猛房, 富永浩之. LEGO ロボットとゲーム課題を題材とする 問題解決型のプログラミング演習- 事前学習から事後発表までを含む 理系高校生への教育実践 -. 情報処理学会研究報告, Vol.

2010-CE-105, pp. 1–10, 2010.

[16] M. Kabatova and J. Pekarova. Lessons learnt

with LEGO Mindstorms: from beginner to

teaching robotics. AT&P Journal Plus 2,

Robotics in Education, pp. 51–56, 2010.

[17] D Cliburn. Experiences with the Lego Mind-

stormsTM through the undergraduate computer

science curriculum. Paper presented at the 36th

ASEE/IEEE Frontiers in Education conference,

pp. 28–31, 2006.

[18] C. F. Panadero and J. V. Roman, and C. D.

Kloos. Impact of Learning Experiences Using

LEGO Mindstorms in Engineering Courses. En-

gineering Education, pp. 503–512, 2010.

[19] 赤井昭仁. 教育用ロボットを用いた初学者向けプログラミング学習ツールの開発. 大阪市立大学大学院創造都市研究科 修士学位論文, 2014.