知ってほしいコト

HOME | 知ってほしいコト | なぜロボットなのか?

なぜロボットでプログラミングなのか

なぜロボットで
プログラミングなのか

「ハード組合せ型」と「ソフト型」のプログラミング教材

小学生・中学生向けに使用されるプログラミング教育教材には、ロボットなどハードを用いた「ハード組合せ型プログラミング教材」と、Scratch(スクラッチ)に代表されるソフトだけを使用した「ソフト型プログラミング教材」の2つに大きく分けられます。

 
ハード組合せ型プログラミング教材は、主にパーツを自由に組み立てて作ったロボットなどをプログラムで制御するもので、レゴ社のマインドストームや、株式会社アーテックのアーテックロボ、SONYのKOOV(クーブ)などが挙げられます。

私たちが開発したロボット「Qumcum(クムクム)」もこの分類に属します。

ソフト型プログラミング教材は、主に命令のブロックを並べるだけで簡単にプログラミングができるビジュアルプログラミング言語を利用したものが多く、世界中で3000万人以上の人たちが利用しているScratch(スクラッチ)や、そのスクラッチを参考に文部科学省が開発したプログラミン、NTTの研究で開発されたVISCUIT(ビスケット)などが挙げられます。

ビジュアルプログラミング言語の中でも、特にスクラッチは全国のプログラミング教室で採用されており、クムクムは、このスクラッチを利用して動かすことができるロボットでもあります。

ビジュアルプログラミング言語の関連書籍も数多く出版されていますが、ソフト型プログラミング教材の内容は、キャラクターを操作するゲームの作り方がほとんどです。

プログラミングでゲームを作りあげるには、順序立てて考える「シーケンス」と具現化させるテクニックの「アルゴリズム」の両方が要求されます。

「シーケンス」と「アルゴリズム」の詳細については、プログラミングとは?をご確認ください。

プログラミングを学ばせる理由としては、主に2020年度から小学校にてプログラミング教育が義務化されることや、論理的思考力・問題解決能力・創造力を養うため、などが挙げられます。

論理的思考力を身につけさせるにはプログラミングが最適だとよく言われますが、それは「完成した結果をしっかり想像から分析し理解するプロセス」があるからです。

ゲームを作ることは楽しいことですが、1つのゲームを作り上げるには時間がかかり、読み進めていくとプログラミングを学ぶというより「ゲームを作る」ということが目的となってしまう恐れがあります。

例えば、カーレースのゲームを作るときに、最初に「車を動かすプログラム」を作ります。次に「アクセルとブレーキのプログラム」を作ります。次に「流れるコース」を作ります。

といったような、一つ一つプログラムを作っていくプロセスには、結果から全体像を分析して順序立てて考えるプロセスがありません。

順序立てて考えるというプロセスを理解せずに、行き当たりばったりでなんとなく完成した結果だけが得られたのでは、論理的思考力や問題解決能力が身に付いたとは言えないのです

クムクムを使ったスクラッチのプログラミング学習では、プログラミングのテクニックである「アルゴリズム」を学習するのではなく、動作の手順を上から順に並べていく「シーケンス」を中心に物事を順序立てて考えるということをまずは身に付けさせます。

まずは、動画で完成した結果を確認し、どういう順序でプログラムが作られているのか「シーケンス」を考えます。
 
そして、動画と同じように動作するプログラムを作ってみて、同じように動作するか確認します。
 
失敗した場合は、どこが間違っているのか確認し、再度プログラムを実行します。
 
失敗と実行を何度も繰り返し試行錯誤することで、物事を順序立てて考える習慣が身に付きます

この動作を確認して順序立てて考える工程では、パソコン画面上の平面的な動きよりも、現実に動くロボットのほうが目や耳、肌でダイレクトに感じることができ、直感的で理解しやすいメリットがあります。

このように、クムクムのプログラミング学習では、短い課題を多くこなすことで、失敗と成功を繰り返して、結果を導き出す喜びと楽しさを手軽に体験できるように考えられています。

「シーケンス」メインの課題を多くこなすことで「順序立てて考える」という習慣が身に付き、段階的に「アルゴリズム」が必要な課題に挑戦し、それをどうテクニックで実現させるかを考えることで、論理的思考や力問題解決能力が身に付いていきます。

「どのように順序立てれば実現できるのか」「どのようなテクニックを使えば実現できるのか」をまずは考える習慣が身に付けば、カーレースのゲームを作るときも一つ一つプログラムを作りながら考えるのではなく、全体的な流れをしっかり考えた上で効率的に課題を解決でき、プログラミングに限らず様々な問題に対してもプログラミング的思考で解決できるようになります


 

社会でも通用するプログラミングも学ぶ

スクラッチに代表されるビジュアルプログラミング言語は、小学生でも簡単に理解できる子供向けプログラミングツールですが、スクラッチの問題点としてよく挙げられるのが、スクラッチの延長線上に社会でも通用するプログラミングがないことです。

スクラッチの生みの親でもあるミッチェル・レズニック教授は「スクラッチはプログラマの育成ではない」と発言しているように、スクラッチをマスターしたからといって社会で通用する技術が身についたということではありません。

また、ミッチェル・レズニック教授は「子どもたちにプログラミング体験を通じて、思考力や協働する力を身につけてほしい。そのために教育者が、子どもたちに正しい方向でプログラミングを教えることができるプログラミングツールとしてスクラッチを開発した」とも発言しています。

これは、政府が発表したプログラミング教育を通じて「プログラミングそのもののテクニックを学ぶのではなく、論理的思考力や問題解決能力のアップのためにプログラミング的思考を養う」目的と同様の考えでもあります。

しかし、政府が2020年度から小学校でプログラミング教育を必修化にした背景には、単にプログラミング的思考を養うためだけではなく、IT人材不足の深刻な問題があるためです。

経済産業省が発表したデータによると2030年には79万人のIT人材不足が予測されており、日本だけでなく世界でも、ますますコンピューターに関わる職業の人材が不足すると言われています。

オックスフォード大学でAI(人工知能)などを研究しているマイケル・A・オズボーン准教授が「10年後、今の職種の約50%近くがコンピューターやAIに置き換わる可能性がある」と発表し話題になりましたが、10年後約50%の職種がAIやITに置き換わり、IT人材が世界的にも不足している現状から、今後ITエンジニアは仕事に困ることはないとも言われています。

これからの時代、ITを使いこなしたほうが良いと考えている方も多く、お子さんを持つ親御さんだけでなく、就職を考えている学生の方や社会人の方も、最近ではプログラミング教室に通う方が増えています。

このように、これからテクノロジーが前提となる時代で生き抜いていくためにも、プログラミングスキルを身につけることはごく自然な流れであり、今学ぶべきことです。

それらを体系的に学ぶことができるよう考えられたのが私たちが開発したクムクムです。

社会でも通用するプログラミングスキルを身につけるには、スクラッチでプログラミングの基礎を習得した後に、社会でも通用するC言語やVB.NETといったプログラミング言語を学ぶことになります。

そうなると新たにプログラミング教材を探したり、今まで学んだ別の方法で学ばなければいけません。
 

スクラッチだけでなく社会に通用するプログラミング言語を学べる環境を整備

 
スクラッチ単体では他の言語は学べませんが、クムクムというロボットを媒体にすることで、C言語、C#、VB.NET、Pythonといったプログラミング言語を学べる環境を整えています
 
これにより、スクラッチで作成したプログラムと同じものをC言語などでクムクムを動かすことができ、他のプログラミング言語へ容易に移行することができます
 

スクラッチのプログラムイメージをそのままにプログラミングスキルを効率よく習得


スクラッチで作ったプログラムの中身はすでに理解していますので、そのプログラムをそれぞれのプログラミング言語に置き換えることで、一からそれぞれのプログラミング言語を学ぶよりも、より速くより深く理解することができます。
 


 

クムクムロボットはなぜ完成型なのか?

ハード組合せ型プログラミング教材のロボットは、たくさんの細かいパーツを自由に組み立てて作るものがほとんどですが、クムクムは一番最初に組み立てるだけの完成型ロボットです。

パーツを自由に組立て作る組立て式ロボットでは、よく身に付く力として「創造力」が挙げられます。

自由度の高いブロックの組み合わせには無限の組み合わせがあり、ゼロベースから考える力を養い創造力を引き出させるというものですが、大人であっても子どもであっても、創造力というのは知識と経験から生み出されるものです。

無限の組み合わせがあることやゼロから作り上げることが創造力に直結するのではなく、多くの知識と経験を得ることが創造力を高めることに繋がります。

これは、パーツの組立てだけでなくプログラミングの中でも論理的思考力や問題解決能力と一緒に創造力も養うことができるものです。

クムクムでは、組立てという時間を排除し、全てプログラミングの中で失敗と成功を多く体験させることで、効率よく「論理的思考力」「問題解決能力」「創造力」を身に付けられるよう考えられています。
 

 
また、モノ作りという観点からもクムクムは、拡張性の高いロボットです。

クムクムの胸に取り付けているボードは、クムクムを動かすためにとても大切なもので「Arduino Leonardo」というものをベースに開発されている独自のボードです。

Arduinoは、趣味の電子工作だけでなく製品設計やプロトタイプの制作にもよく使われるパーツで、このボードを利用すれば外出時にエアコンをつけたり、家の照明を遠隔で操作するといった、今後ますます生活に浸透するIoT製品も作ることができます。

他にも外部サービスを利用することで、Google Homeのような話しかければ答えてくれるクムクムロボットにカスタマイズすることもできます。

私たちは、開発するための知識はもちろんのこと、クムクムに関するライブラリや回路図、ポート割り付け表、3D図面まですべて惜しみなく公開していきます。

これからの未来、子どもたちが生き抜くためには、単なる知識だけでなく新しい価値を生み出す創造力や、より生活にも身近になるテクノロジーを活用する力が求められます。

プログラミング学習の動画を確認して「分析」⇒「検討」⇒「作成」⇒「完成」というプロセスは、システム開発の「仕様分析」⇒「設計」⇒「制作」⇒「完成」とまったく同じプロセスで、システム開発を擬似的に体験し、プログラミング的思考を身につけます。

クムクムロボットのボードは、製品設計やプロトタイプの制作にも使われ、パーツの取り外しや機能を拡張することができ、ホンモノのものづくりを体験することができます。

クムクムロボットは、単に教育という側面だけでなく、社会でも通用する知識や技術を習得し、「生き抜く力」を身につけるためのロボットです。