【ロボットプログラミング教育】シーケンスとアルゴリズム

プログラミング教室「プロラボ唐津」では、ロボットを使ったプログラミング教育を行っています。

プログラミングロボット「クムクム」

使用しているプログラミングロボットは、「クムクム」です。

今回は、こちらのロボットを使ったプログラミングの例を紹介します。

こちらの動画では、「ロボットが挨拶をしている」プログラムです。

動画からどのようにプログラミングされているか推測すると

  1. LEDが赤に光る
  2. 左手を上げる
  3. 「こんにちは、僕はクムクム。よろしくね」としゃべる
  4. 左手を下げる
  5. LEDの赤が消える

となります。

このようには「作業を手順に分けて順序立てる」ことを、プログラミングでは「シーケンス」といいます。

2020年度から、小学校でプログラミング教育が必修化されたことから「プログラミング的思考」という言葉を耳にすることも多くなったかと思いますが、順序立てて考えることが大切ですよと言われるのが、この「シーケンス」です。

プログラミングを行う際に必要な要素としてもう一つ大切なのは「アルゴリズム」で、「解を出すための手法」をさします。

例えば歩く動作を考えてみましょう。

  1. 左足を上げる
  2. 上げた左足を前に出す
  3. 出した左足を下ろす
  4. 右足を上げる
  5. 上げた右足を前に出す
  6. 出した右足を下ろす

このように、動作の手順を上から順に1つ1つプログラム(動作)を並べていきます。

これが先ほども説明した「シーケンス」です。

一方、アルゴリズムは、問題を解決するための方法や手順、つまり「答えを導き出すためのテクニック」になります。

例えば、「にんじんをいちょう切りする」という問題があったとします。

おそらく、ほとんどの方は

  1. ニンジンを縦に切って半分にする(半円)
  2. 半分にしたニンジンを更に縦に切って半分にする(1/4円)
  3. 横に切ってまとめていちょうの形にする

という順番で行うのではないでしょうか。

これは1つの方法で他にも方法はあります。

例えば

  1. ニンジンを縦に切って半分にする(半円)
  2. 半分にしたニンジンを横に切って1つ1つ半円の形にする
  3. 半円になった小さなニンジンを1つ1ついちょうの形にする

という方法です。

この方法でも結果は同じですが、圧倒的に前者の方が早く解決します。

このような答えを導き出すためのテクニックが「アルゴリズム」です。

「アルゴリズム」に対して難しいイメージを持っていた方も多いと思いますが、このように、日常、最適な方法を考えていること自体が「アルゴリズム」なんです。

プログラミング的思考を養うには、このどちらでも学ぶ事が可能ですが、「シーケンス」を重視した方が良いという方もいれば、「アルゴリズム」が重要だという考えの方もいます。

これは、どちらが正しいと断言できるものではありません。

実は、プログラミングロボット「クムクム」は、「シーケンス」を学ぶには最適なロボットです。

それは、完成した結果(プログラム)から、どのように動いているのかを分析し、理解するプロセスを学べるからです。

さらに、小さなプログラムで「インプット」と「アウトプット」を繰り返し、確実に自分のモノにしていきます。

そういう意味では、ロボットは、Scratchほどの自由度はありませんが、使えるブロックが少ない分、順序立てるシーケンスを学ぶには長けています。

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

実際にシステムやアプリを開発する際に、一番最初に必要とされるものが「仕様」というものです。

「こんなものが作りたい!」という希望(問題)から、頭の中でどのような仕組み(仕様)で作り上げるかを考えた上で、プログラミングをして完成させます。

プログラミング的思考や問題解決能力というのは、希望(問題)⇒仕組み(仕様)⇒プログラミング(結果)の全てのプロセスを通じて得られるもので、「プログラミング」と呼ばれる最後の部分だけで身に付くものではありません。

希望(問題)から少しずつ必要な部分を考え、それを結果に結びつけるプロセスが「論理的思考」であり、ぼやっとした希望(問題)からプログラミングによって実現化させることが「問題解決力」です。

このように、プログラミング教室「プロラボ唐津」では、論理的に子供たちの能力を最大限高められるようカリキュラムを作っています。

タイトルとURLをコピーしました