見出し画像

プログラミングの考え方を使って日常の問題を解決する

前回は、過去に実施したワークショップの中からアルゴリズムの考え方を学ぶものを紹介しました。
https://note.com/tanpro/n/n1890181f449c

プログラムは命令の集まりであり、それらを組み合わせたものです。
そして、組み合わせるにあたってその命令の"順番"と"ルール"を決める考え方がアルゴリズムです。
といっても難しいものではなく、知っておくべき基本のアルゴリズムは3つだけです。

順次構造
分岐構造
反復構造

ワークショップの中では最後に、アルゴリズムを使って身近な問題を解決することにチャレンジします。
例えば、洗濯物干しの問題をやってみます。

画像1

名付けて、はやわざ洗濯ゲーム!

とっても良い天気のある日。
これから家族で出かけることになったのですが、おうちの人から、洗濯物を急いで干して!とお手伝いをお願いされました。
とっても急いでいて、あと5分で出かけるのだそうです。
のんびり干していては間に合いません。
どうすれば、早く干すことができるでしょうか?

ワークショップの中では、あーでもない、こーでもない、と小学生同士で考えます。
あと5分?じゃあ帰ってからにしようかな、という弱気な発言も(笑)

ある回では最年少の女の子が、テキパキと洗濯物を捌きはじめ、しまいにはお兄ちゃんに手を動かすよう指示まで出していました(笑)

当たり前ですが、このゲームには答えなんてありません。
どんなやり方だって構わないのです。
ただ自分自身の頭と手を使って、さっき習ったばかりのアルゴリズムの考え方を使うにはどうすればいいか?
ということを必死に考えることに意味があります。

同じ作業を繰り返すことができると、バラバラにやっていたときに比べて効率UPすることができます。
そして、そのために重要なことは

同じものをまとめる

ということなのです。
どういうことでしょうか?

先ほどの洗濯ものの例でいえば、タオルと靴下を、同じものと捉えるのか、別のものと捉えるのか・・
それは、"干し方が同じ"かどうかで変わってくる、ということに気づけるかどうかということです。

ハンガーピンチにとめるもの、ハンガーに吊るすもの、物干し竿にかけるもの・・などをそれぞれまとめておき、一気にまとめて干せば、行ったり来たりせずに済むので効率が良いですね。

大人はこれを無意識のうちにやっていますが、実はとても難しいことです。

洗濯物は分かりやすい例ですが、普段の仕事や家事の中で私たちはどれほど意識できているでしょうか?
同じであることに気づかないまま、ムダに動いていることは意外とあるのではないでしょうか?
違う仕事だと思っていたAとBが実は同じものである、ということは、けっこうあるんですよ。

そして抽象化の話になっていくのですが・・今回はここまでとします。

現在のプログラミング教育には、2つのアプローチがあります。
①身近なテーマを題材にプログラミングの考え方を学び、その考え方を使いこなしてプログラミングできるようになる
②プログラミングのやり方を学び、社会の問題をITの力で解決できるようになる
①は幼児や小学生向け、②は主に中高生以上に使われることが多いです。

IT人材という言葉が最近では"AI人材"に置き換わったりしているようですが、文系だろうが理系だろうか、基本的なITリテラシーを身につけるためにこうしたアプローチは有効だと思います。

しかし、個人的には少しもったいないかな、と思っています。
なぜなら、プログラミングの考え方を活かせる場面は、ITの世界だけではないからです。
先ほど紹介した洗濯物干しのように、私たちの身近にある問題を解決することにも使えるのです。

スマホ世代である子どもたちが大人になる頃には、いま以上にITを使いこなすのが当たり前になっていることでしょう。
それでも、私たちの日常にはたくさんの改善すべき問題があることもまた、当たり前であることに変わりはないでしょう。

だから探プロは、3つめのアプローチをとる新しいプログラミング学習を提案しています。
③プログラミングの考え方を学び、日常の問題を自分の頭と身体、そして仲間の力を使って解決できるようになる

もちろん、ここにITの力が加わっても全く構いません。(むしろ望ましい)

探プロが考える理想の形は、学校でプログラミングの考え方を学んだ子どもたちが家に帰ったあと、この考え方を使えば我が家のこの問題を解決できるんじゃないか?と気づいて行動することです。

朝の忙しい時間帯に忙しく洗濯物を干すお母さんやお父さんを助けられないか?なんて考えてくれたら素敵です。


いいなと思ったら応援しよう!