小学生にはロボットプログラミングがなぜ良いのか?

こんにちは、埼玉県さいたま市浦和区にあるロボ団北浦和校です!
小学校では今年からプログラミングが必修化されましたね。
導入当初ということもあり、どこも試行錯誤中だと思うのですが、だいたいスクラッチ(Scratch)を中心にしたビジュアル言語が教材として選択されているようです。

スクラッチが人気の理由としては、

・ブロックを組み合わせる形なので従来のようなコーディングを必要としない実行環境
・開発元がMIT(マサチューセッツ工科大学)という権威
・ユーザー数が多く、ノウハウやコミュニティも豊富

――、など理由はいくつかありますがもっとも大きいのはコストでしょう。

スクラッチそのものも無料で利用できますし、それを動かすパソコンやタブレットも今では安価なものが増えました。多くの子供が集まる小学校では台数を準備しなければならないのでスクラッチは現実的な選択肢だと思います。

確かにスクラッチには上記のようなメリットが多くあるため、これから小学校のプログラミング教育ではデファクトスタンダード(事実上の標準)になっていくのではないかと思います。現に様々な子供向けの学習用プログラミング言語がスクラッチに似せた形のものを採用していることからもそれが伺えます。また当校で使用中の教材(レゴMindstorms EV3)もスクラッチに似た形式にアップデート予定です。

しかし、このスクラッチにも問題がないわけではありません。
それはスクラッチもプログラミング言語ですから、他のプログラム言語と同様に抽象性が高いことです。このことが子供のプログラミング学習の妨げになることがあるのです。

たとえば変数Aと変数Bのデータを交換するとしましょう。
変数とは、より簡単に言えば、何らかのデータを入れる入れ物のことです。AやBという名前をつけた箱をイメージしてもらえばよいでしょう。そしてこの問題で大切なのは、AとBのほかにCという別の変数を用意しておくことです。そしてアルゴリズム(=問題のやり方)としては以下のようなものです。

まず、
 CにAの中身を入れ替える

次に、
 空になったAにBの中身を入れ替える

最後に、
 空になったBにCの中身を入れ替える

――と、すればAとBの中身(つまりデータ)は交換することができます(なお変数CにはAのデータが入ったままですので、そこがモヤモヤと感じるのであれば1行加えてCの中身を空にすれば綺麗に交換した感じになります)。

さてこれをスクラッチで記述すると以下のようになります。

実行前の初期状態(右側):変数Aには「ぶどう」、Bには「みかん」、Cには何も入っていない。
実行後(右側):変数Cをうまく使うことで変数Aと変数Bの値を入れ替えている。
4行目は変数Cの値をクリアしている。

これ自体は数行ですのでさほど難しくないように思えます。

けれど子供の中にはよくわからない子も出始めます。理由は変数という抽象概念を子供が理解できないからです。(変数は英語ではvariableですから、もしかしたら「変わりうる数」や「可変データ」と言ったほうが子供にはわかりやすいかもしれません。)

もしこれがより具体的な形であればどうでしょうか?
たとえば以下の写真のようにAとBというカップに別のジュースを入れ替えることを実際に見せてあげればどうでしょうか?

データ交換のアルゴリズム 例1
用意するものはジュース2種類と3つの入れ物です
データ交換のアルゴリズム 例2
初期状態:Aにはぶどうジュース、Bにはみかんジュース、Cは空
データ交換のアルゴリズム 例3
まずAの中身をCに移します。
データ交換のアルゴリズム 例4
するとAのカップは空になりました(わずかに残っている分は誤差とします)
データ交換のアルゴリズム 例5
次はBの中身を空になったAに移します
データ交換のアルゴリズム 例6
今度はBのカップが空になりました。
データ交換のアルゴリズム 例7
最後にCの中身をBに移しかえます
データ交換のアルゴリズム 例8
これで完成。AとBの中身を入れ替えることができました。

このように具体的な形になれば、さきほどのデータ交換のプログラムを理解できなかった子も容易に理解してくれます。
なぜならこのケースでは具体的な現実の現象として現れるため理解しやすいからです。

こうした現象には一応、理論的裏付けもあります。
ピアジェという心理学者は子供の発達段階を感覚運動期(0~2歳)、前操作期(2歳~7歳)、具体的操作期(7歳~11歳)、形式的操作期(11歳~)と4つに分けて考えたのですが、ほとんどの小学生は具体的操作期にあたります。そしてこの具体的操作期では、その名の通り具体的なモノを操作することで認識や学習をしていくとされています。一方、次の形式的操作期でようやく抽象概念を操作する段階に入ると考えられています。これは逆に言えば小学生くらいの子供はまだ抽象的な概念を操作する典型であるプログラミングのスタイルはまだ少し早い子もいると考えられるのです。それが最もやさしいとされるスクラッチであってもです。

それと比べるとロボットはこれ以上ないくらいに具体的なモノです。そしてプログラミングの結果が具体的な形で現れます。そのため具体的操作期の小学生くらいの子供にはロボットを使ったプログラミングが適しているのだと思います。

ロボットはその動きが具体的。なので小学生(具体的操作期)くらい子供にはロボットプログラミングがピッタリ!

もし、皆さんの中にスクラッチやマインクラフトでプログラミングに挑戦した(させた)もののイマイチだった人はいますか?
まだあきらめるには早いと思います。
まずは結果が具体的な形で常に現れるロボットプログラミングを試してみてはいかがでしょうか? 

体験会、見学会は引き続き行っております。
お電話、メール、予約サイトなどからお気軽にご連絡ください。
スタッフ一同心よりお待ちしております。

体験会、実施中です!

JAXAや近鉄と共同開発した体験会もまだまだ実施しております!
体験会の詳しい内容はこちら

体験会チラシ(さいたま市のプログラミング教室ロボ団北浦和校)
ロボ団北浦和校体験会(近鉄)

ロボ団 北浦和校は北浦和駅から徒歩で約5分程度のところにあります。
京浜東北線の各駅にアクセスできる方や、大宮、さいたま新都心、与野、浦和付近にいらっしゃる方は比較的、簡単にお越しいただけるかと思います。
講師一同、楽しみにお待ちしております!

ロボ団北浦和 付近のマップはこちらから

体験会のお申込みはこちらクリック
以下のQRコードからもお申込みできます

体験会申し込みリンクQRコード(ロボ団北浦和校)

お問合せはこちらをクリック