見出し画像

Robo Blocksって実際何が学べるの?!その1【ミワ ムラタのRobo Blocks奮闘記】

こんにちは!Robo Blocksチームのムラタ ミワです。前回は、プログラミング初心者のわたしが初めてRobo Blocksを体験したお話をご紹介しました。Robo Blocksは、初心者にも非常に取っ付きやすい!その上、夢中になってしまう!そんな魅力的なツールでした。
今回は、Robo Blocksを使って何ができるのか?をご紹介します。簡単に始めることができ、その学びは実に奥が深い!

今回のチャレンジ

Robo Blocksを触って大体の使い方がわかった後、わたしはかけ算九九プログラムの作成に挑戦しました。Pepperがかけ算の問題をランダムで出題するプログラムです。初級者向けと上級者向けでレベル分けをし、ユーザーの答えを聞いて正否で反応を分けます。

繰り返しになりますが、わたしはプログラミングど素人です。「変数」やら「引数」やらもよくわからないままスタートしました。

それでも、Robo Blocksの取っ付きやすさのおかげで、スムーズに始めることができました。いきなり九九プログラムの全体像を想像することはできませんが、まずは簡単なロジックを作り、そこから徐々に機能を拡張していきました。簡単なロジックができると、今まで見えていなかった全体像も少しずつ想像できるようになりました。

Robo Blocksでは、一つ一つのブロックは単純な処理しかできません。単純な処理を組み合わせて、自分のやりたいことを実現していくのです。例えば、「◯×▲」という演算をするブロックと、「■をしゃべる」というブロックを組み合わせることで、◯×▲の答えをPepperにしゃべらせることができます。


プログラミングの面白さの体験

この過程がまるでパズルを解くようで、ぐいぐい引き込まれてしまうのです。1つ1つの課題をクリアしていくうちに、だんだんやり方がわかってきて、さらなる挑戦、さらなる探究をしたくなっていきます。文系出身のわたしでさえ、時間を忘れるほど夢中になってしまいました。この繰り返しが思考力を鍛えていくのだと思います。

そして、プログラミングの楽しさに気づき、のめり込んだとき、Robo Blocksには、どんどん上級レベルへチャレンジできる土台があるのです。九九プログラムを1回作っただけでも、その自由度の高さ、奥の深さを感じることができました。今回は使用していませんが、ブロックの組み合わせだけでは物足りなくなったときには、部分的にコードを書くことさえできてしまいます。もちろん、わたし自身がコードを書くまで至るのはまだまだずっと先のことになりそうですが。

プログラミングの考え方、論理的思考の習得

このように、楽しみながらブロックを組み合わせ、プログラムを作っていくと、次々に疑問が湧いてきます。

  • 問題をランダムかつ重複がないように出題するにはどうすればいいのか?

  • 同じ処理(同じブロックの組み合わせ)が何度も出て来るのは、もっと効率よく実現できるんじゃないか?

などなど・・・

これらを実現するには、寸分のズレもないロジックを作る必要があります。ちょっとでもロジックがズレているとプログラムが正確に動かないからです。
 
また、うまくいかないこともたくさん出てきます。実際、わたしも何度もつまずきました。なぜうまくいかないのか、どうやったら原因を探れるのか、それ自体も論理的思考が欠かせません。「デバッグ」と呼ばれる、プログラムの間違いを探し、直す作業の中では、ときにはプログラムを作るとき以上に頭を使わねばなりません。自分では最適と思って作成したロジックの中から不整合を見つけ出す作業は、よりロジカルな思考が要求されます。
 
さらに、Pepperというハードウェアで動かした場合には、パソコンの中から飛び出してPepperを使っての実験、試行錯誤が必要になります。実際、わたしもPepperの聞き取りがうまくいかずに何度も解決案を試して、うまくいく方法を見つけるに至りました。

実際に聞き取りについて試した方法

  1. かけ算の答えを聞き取るよう設定

  2. かけ算の答えとワイルドカード(ワイルドカードについてはこちらの記事を参照)を設定

  3. 100までの数字全てを聞き取るよう設定

  4. 100までの数字全てとワイルドカードを聞き取るよう設定

これらの方法を試した結果、4を採用することにしました。

プログラミングの知識やテクニックの習得

そんな試行錯誤を繰り返して、解決策を見つけながらプログラム作成を進めていくと、だんだんパターンが見えてきます。ここはどう作ろう?と引っ掛かった時に、1度検討したロジックを当てはめたり応用したり、テクニックを自分のものにしていくことができます。
こうして、徐々にプログラミングの知識やテクニックが身についていきます。身につけた知識やテクニックを使いこなす楽しみも広がります。
 
そして、当初わからなかった「変数」や「引数」などの考え方も、実際に使ってみることで理解をより確かなものにすることができます。わたしの場合は、説明を読むよりも、実際に使ってみて初めて意味がわかったくらいです。

感想

今回、プログラム作成の1本目として、かけ算九九プログラムに挑戦しました。「変数」や「引数」など、言葉の意味から調べながらという、初期段階から試行錯誤の挑戦でした。それでも、とにかくやってみよう精神で、わかるところからスタートし、最終的には、「変数」も「引数」も使いこなし、かけ算や「◯または▲」などの演算や「もし〜なら」など制御ロジックも多分に取り入れられるまでに成長しました。

パズルのような面白さがあったからこそ、途中で諦めずに最後まで達成できたと思います。
文系出身のわたしですら、プログラミングの楽しさを発見することができました。きっとぐいぐいのめり込む子どもたちもたくさん出てくると思います。将来の仕事として夢をもつ子もいるでしょう。小さいころからその面白さに気づける環境があるのはとても羨ましいことです。

さらに、試行錯誤して作り上げていく過程は、論理的な考え方や、失敗から学び、再考する真摯な姿勢をも育みます。プログラミングは、テストでの「正解・不正解」二択の世界ではなく、「失敗を前提としてよりよいものを作り上げていく姿勢」を自然に体得できる活動だと感じます。

わずか1回のチャレンジですが、Robo Blocksを通した学びや体験の奥の深さに、底知れないものを感じました。
次回は、Pepperならではの、リアルな世界とのつながりを通した学びをご紹介します。

つづく

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ソフトバンクロボティクス株式会社 ホームページ
https://www.softbankrobotics.com/jp/

Pepper for Education
https://www.softbankrobotics.com/jp/product/education/

STREAMチャレンジ
https://www.softbankrobotics.com/jp/product/academy/stream/

━━━━━━━━━━━━━━━━━━━━Pepperブログ編集部━┛