見出し画像

日常の中でアルゴリズムを学ぶ

今回からは、過去に実施したワークショップを振り返りながら、家庭の中で楽しみながら親子で一緒に学べるプログラミング学習を紹介します。

2016年4月から2019年の夏まで、延べ500人近くの幼児・小学生を対象にワークショップを実施してきました。
どれもこれも印象深くて、「なるほど!」と気づいた子供たちの表情や、「プログラミングの考え方を学ぶってそういうことね!」と納得してくださる保護者の表情・・それを見たくて続けていると言っても過言ではありません。

探プロのワークショップでは、身の回りにある日常の課題をテーマに取り上げます。
そして、その日常の課題には"プログラミングの考え方"を使うことで解決できること、その考え方自体は、実は大人は当たり前に使っていること、を知ってもらいます。
そうすることで、プログラミングはパソコンを使った特別なスキルを必要とするものではなく、考え方自体は私たちが当たり前に使っているものであり、そうした考え方を使いこなせれば、プログラミングはもちろん、日常の問題を解決することにも使えるのだ、と気づいてもらうことが狙いです。

例えば、アルゴリズムを学ぶワークショップで最初に取り上げるのは歯磨きです。

子どもたちにはこう問いかけます。
皆さんは普段、歯磨きの手順を守っていますか?
いつも同じようにできていますか?
TVを観ながら、新聞を読みながら・・・
あれ、どこまで磨いたっけ?ということはありませんか??

そんな適当な(!)人間とは違って、歯みがきを指導する歯磨きロボットは、完璧に仕上げることができます。

歯磨きロボット

なぜでしょう?

答は・・
ロボットすなわちコンピュータは、アルゴリズムの考え方を知っているおかげで
・いつも
・なんどやっても
・かならず
・同じけっかがでる

からなのです。

私たち人間も、アルゴリズムを身体にインプットしておけば(体に覚えこませておけば)、TVを観ながらだって完璧に磨けるはず、です。
それでも人間なので、ついつい夢中になって疎かになることは避けられないかもしれません・・

こうした例を使って、まずアルゴリズムを使うことのメリットを知ってもらいます。

そして次に、littleBitsという電子ブロックを使ってアルゴリズムの基本的な考え方を学びます。
https://www.littlebits-jp.com/

littleBitsを初めて目にしたのは、とある教育者向けのイベント会場でした。
メイン会場を一通り見終わって帰ろうとしたときに、片隅のブースで見かけたlittleBitsのブロックは、とてもカラフルで、すごく楽しそう!というのが第一印象でした。

調べてみると、ブロックを組み合わせることでアルゴリズムを作ることができることも分かりました。
順次構造と分岐構造、それから繰返し構造といった基本のアルゴリズムをブロックだけで作ることができるのです。

図2

しかも、ブロックを繋げるだけで実際に動くものを作ることができるので、幼児や小学生向けのワークショップにはうってつけでした。
例えば、図のようなミッションを子供たちに与えると、手を動かしながらブロックを繋げてアルゴリズムを作り、実際に動かすところまでを簡単に実現することができるのです。

画像2

この例は少し難しめですが、簡単なものであれば幼児でも作ることができます。

複雑なものを目の前にすると、人間は無意識のうちに、難しいものと捉えて複雑なまま理解しようとしてしがちです。 
頭で考えすぎると、どうやって組み合わせればよいのか分からず混乱し始めてしまいます。

こういうときほど、基本に立ち返る必要があることも知ってもらいます。
プログラムは、命令の集まりであり、その組み合わせにすぎません。
littleBitsの場合であれば、1つ1つのブロックが命令です。

先ほどの例であれば、2つのプログラムを「分岐」というアルゴリズムの考え方を使ってつなげるだけです。
だから、複雑なものを目の前にしたら、まずは分解してみると良い、ということも伝えます。
最小単位のブロックまで分解できれば、1つ1つは単なる「命令」です。
それを、動かしたい内容に合わせて、順番とルールに従って組み合わせていくだけです。

作っている途中は難しくても、出来上がったプログラムを前にするとなんだ、こんなに簡単なことだったのかと気づく子が多いです。
littleBitsはプログラミング教材ではないのですが、こうやって、手と頭を使って考え方の基本的なところを習得できるところがとても良いと思っています。

こうして、アルゴリズムとは何か?それによって何ができるのか?
を体験と共に学んだあとは、この考え方を使って日常にある課題を解決することを考えてもらいます。

ここで登場する課題とは・・・
洗濯もの干しです!

次回は、洗濯もの干しに潜む課題と、それをアルゴリズムによってどう解決するのか?
をお伝えします。

お楽しみに!


この記事が気に入ったらサポートをしてみませんか?