探究型プログラミング学習(探プロ)

プログラミングの考え方を学んで、未来を創る力を手に入れる

プログラミングの考え方を学んで未来を創る力を手に入れる

【コラム】プログラミング的思考はなぜ必要か? vol.01

探プロで考えているプログラミング的思考の重要性に近い記事です。
カレーの画像がなかなか印象的。

 

特に記事の中盤にある『プログラミング教育における論理的な思考とは何か』の章を是非よんで頂きたいです。
ここから推測できるのは、「プログラミング」に求められる能力は理科・数学に近いもの、国語・社会に近いものがあるということ。
つまり「プログラミング」の能力をつけるためには、コンピュータのことだけを学べばよいのではなく、教科横断型に学んでいくことに意味がありそうだということでしょう。
 
この調査だけでは因果関係(理・数ができるからフローチャートが得意なのか、フローチャートが得意だと理・数が得意なのか)はわかりませんが、求められる能力は似ているのではないかということは推測できます。
そうなのだとすれば、「プログラミング」をするための能力の土台作りの段階では、教科学習の中で「プログラミング」を扱うことにも意味があると言えるでしょう。
 
国語や社会でその能力を活かすということは、プログラミング的思考を実社会で活かすということです。
 
最近の中学受験の問題や模試の問題を見ていると、プログラミング的思考を身につけておくことや、それを身近な社会で活かすことが本当に重要であり、求められているということがよく分かります。
 
今後はそんな話も少しずつ、していこうと思います。
 
※記事の中で紹介されている論文はこちら。
『プログラミング教育における論理的な思考とは何か 』赤堀侃司

【コラム】やぎさんゆうびん

f:id:dig_learning:20180616110619p:plain

やぎさんゆうびん」の歌を知っていますか?

実はこれ、プログラミングの考え方である「インタフェース」の重要性を伝えるのに使えます。

 

黒ヤギさんは、白ヤギさんから届いた手紙だと気づかず、読まずに食べてしまいます。

そして、書いてあった内容が気になった黒ヤギさんは、白ヤギさんに手紙を書いて届けるのですが

白ヤギさんは、黒ヤギさんから届いた手紙だと気づかず、読まずに食べてしまう....

という歌詞ですね。

 

ヤギさんたちは、まさか手紙がもらえると思っていなかったので、目の前にあった封筒をただの紙だと思って食べてしまったのでしょう。

 

このままだと、ヤギさんたちはずーっとお互いの手紙が読めなくて困ってしまいますね。

どうすれば解決できますか?

 

そう、封筒から中に入っている手紙をちゃんと読んでね、と予め相手に伝えておけば良いです。

 

そうすればきっと、白ヤギさんから届くはずの封筒を黒ヤギさんは食べずにワクワクしながら待っていることができるはずですね!

 

このように、メッセージをちゃんと受け取ってもらうためには、送る側と受け取る側が、ちゃんと話し合って、予め決めておくことが重要です。

プログラムも同じです。

 

自分の作ったプログラムから友だちの作ったプログラムにメッセージを送ることができれば、今よりもっともっと大きなプログラムを作ることができるのです。

 

大きなものを作るときには、友だちと協力することが大事です。
そして、協力するためには友だちと会話して考えていることを伝え合うことがとても大事です。

 

一人で作るプログラムなら自分の中で完結するけれど、他の人と協力するときは言葉にして伝えなければいけません。

プログラミングの世界でも、コミュニケーションはすごく重要なのです。

 

そんなことを伝えるための小話でした。

【レポート】探プロで発想力を身につける~変身する公園をつくろう!~ K.I.T.虎ノ門大学院 2018.05.20

すっかり日があいてしまいましたが。。。先日の公園ワークショップの様子をレポートします。

これで何度目かの・・・「変身する公園をつくろう!」。

繰り返しくりかえし、やっているように見えて実は毎回、中身ががらっと入れ替わります。

初めてこのコンテンツでワークショップをやったのがなんと2年前。

 

公園は変身するということ、そこからプログラミングの「ポリモフィズム」という考え方を学ぶこと、だけは決まっていたものの、当時はまだ深掘り、それこそ探究が足りていなくて、どちらかというとlittleBits工作のような形になっていました。

 

探プロが伝えたい「ポリモフィズム」の考え方は、「アルゴリズム」とは違って一般的に全く馴染みがないですし、非常に抽象的でかつ、実際にプログラムを設計してみないと理解しづらいものです。

それを、誰でもすぐに理解できて使いこなすことができるように何度も考え直し、作っては壊し、を繰り返しています。

 

そして今回、満を持しての提供です。

いつもの会場に、小学2年生から5年生の10名が集まってくれました。

中には、前回のポストのワークショップに続いて参加してくれた子たちもいて、とっても嬉しかったです!!

f:id:dig_learning:20180531060502j:plain

今回は、テーブルに5人ずつ座り、各テーブルにはTAの小学生に1人ずつ入ってもらいました。

アンケートにも書いて頂きましたが、同じ年頃の子どもにサポートしてもらいながら学ぶのは子どもたちにとっても良さそうです。

前回に引き続き2人の男の子にTAを引き受けてもらいましたが、回を重ねるごとに彼らの熟練度も上がっていき、littleBitsの使い方を伝えることについてはもう私の出番がなくなるほど(笑)

)f:id:dig_learning:20180531061349p:plain

とてもとても貴重な体験になるので、我が子こそ!と思う方は是非ご紹介ください!

 

さて、ワークショップの話に戻ります。

このプログラムは2部構成で、前半が公園の探究、後半が工作としています。

 

以前は、公園は変身するって知ってましたか?と始めていたのですが、今回は「合体」と「変身」の違いをお伝えしました。

 「合体」はパーツAとパーツBが組み合わさったものですね。例えば、消しゴムつき鉛筆とか、朱肉付き印鑑、多色ボールペンあたりがそうです。

公園にもあります。こんな複合型の遊具を見たことがあると思います。

f:id:dig_learning:20180531062048p:plain

こんな遊具が近くにあったら、毎日公園に遊びに行くのに!

でも近所の小さな公園には、こんな大きな遊具なかなか置けません。

 

これが「合体」の問題点です。

そう、良かれと思って組み合わせを増やすほど、大きくなってしまうのです。

たくさんの機能があれば便利だし楽しいですが、それと引き換えに、大きくなることを受け入れなければいけないのです。

 

さて困った。

大きさに制約はあるけれど、たくさんの機能もほしい。

そんなときに「変身」の考え方が使えます。

 

今年の春に、こんなニュースが話題になりました。

車から二足歩行のロボットに変身!

アニメの世界を本当に作ってしまうなんてすごい。

他にも、メガネのJINSがこんな商品を出して話題になっています。

ありそうでなかった、ワンタッチでサングラス。

ちなみに、この商品をワークショップで紹介したあと、帰り道にたまたま広告を見かけて盛り上がっている子がいました。

普段の生活の中でふと、今回のワークショップのことを思い出してくれたらすごく嬉しいです。

 

そして、変身するものは公園にもあります。

災害時に避難所として使うときにはベンチが竈に変身するカマドベンチ

かまどベンチ|防災ファニチャー|株式会社コトブキ

同じくマンホールトイレ。

下水道:マンホールトイレについて - 国土交通省

 

もちろん、公園そのものも変身します。

遊び場、憩いの場、スポーツをする場、避難所、夏祭り会場・・・

 

変身するのって、ちょっと面倒です。形を変えるのに手間や時間がかかるので。

ではどうして、わざわざ「変身」するものを作るのでしょう?

答えは、困ったこと(問題)を解決するため、です。

 

JINS SWITCHであれば、サングラスと通常のメガネを2つ持ち歩いて付け替えるのが面倒だし、めったに起きない災害のために、公園に竈や簡易トイレを置くと貴重な公園のスペースが有効に使えません。

こうした問題を解決するのが「変身」という考え方なのですが、どうすれば変身させることができるのか?

 

ワークショップでは、変身させるための3つの手順を伝えました。

まずは、"似てる"と"違う"を探すことです。

f:id:dig_learning:20180531064017p:plain

例えばlittleBitsには、○○センサー、というものがいくつかあります。

センサーとは、何らかの反応を受けて信号をONにするものですね。

littleBitsの音センサーであれば、音がなると電気が通る仕組みになっています。

何の反応を受けて、という部分はすべて違いますが、それ以外の仕組みは実は同じなのです。

だから、この同じ部分を1つにまとめます。

f:id:dig_learning:20180531064336p:plain

そして、時と場合によって違いを出します。

f:id:dig_learning:20180531064436p:plain

残念ながらlittleBitsは「合体」しかできないので、こんな都合の良いモジュールは存在しないのですが、もし「なんでもセンサー」があったら、littleBitsの工作はどうなるでしょう?

少ないモジュールの組み合わせでいろんな機能を実現できるので、より面白いものが作れるはずです。

 

ではこの変身の考え方を使って、先ほどのサングラスやカマドベンチがどんな変身を遂げているのか見てみましょう。

何が同じで、何が違いますか?是非、お子さんと一緒に考えてみてください。

 

さて、ここまできてようやく、プログラミングの考え方として「ポリモフィズム」を紹介します。

f:id:dig_learning:20180531064829p:plain

ちなみに、これは専門用語ですし、発音も難しいので覚える必要は全くありません。

覚えて得意げに使ったとしても、誰も分からないので役に立ちません(笑)

考え方だけを覚えていればOKです。

 

一応、ポリモフィズムの説明をしておきますが、分からない場合は、何の役に立つのか?というところだけ読んでください。

  • プログラミングの考え方の1つである『ポリモフィズム』では、似たようなAとB、2つのプログラムを作る代わりに、似ている部分を共通化したCをつくり、時と場合によってAにもBにもなるように設計します。
  • それによって、同じようなプログラムを2つ作らなくても済みます。
  • これを実現するためには、モノゴトを抽象化し、本質的に捉える力が必要であり、この力は様々な場面で応用できます。

最後の、モノゴトを抽象化し、というのが先ほどの手順に出てくる「似ているものを探す」ということです。

子どもと一緒に絵本などを使って○○と△△は同じグループ、などの遊びをしたことはありませんか?
自転車とバイクは二輪で走る乗り物のグループとして括れますし、バイクと自動車はタイヤの数ではなくエンジンが搭載された乗り物のグループとして括れます。

そして、自転車もバイクも自動車も、全て「乗り物」というもっと大きなグループで括ることができます。

ベストセラーの『はじめてであう すうがくの絵本』安野光雄著 の中にも、このような遊びがたくさん出てきますよ。

 共通項は何か?と考えることは、抽象化への一歩です。何か問題があったとき、個別のモノや事象として捉えるのではなく抽象的に捉えることができると問題解決力は格段にUPします。
AとBという2つの問題に個別対処するのではなく、それは要するに何か?と考えることができれば効果的にアプローチできるようになるからです。

ポリモフィズム」という言葉は一般的に馴染みのないものですが、根底にあるのは抽象化の考え方です。
似たようなプログラムをたくさん作る代わりに、似ているところを見つけて共通化し、差分だけをプログラムとして作ればムダがありません。
(変化に強い、というメリットもあります)
エンジニアの人たちはこうした考え方をプログラミングを通じて習得しているので、モノゴトを抽象的に捉えることが比較的得意です。


でも、実は私たちの日常にもこうした考え方を活用した例はたくさんあり、プログラミングができなくても、エンジニアにならなくても、こうした考え方を学んで使いこなすことはできるはず、と考えたことがこの「変身する公園をつくろう!」というワークショップに込めた想いです。

 

ワークショップの後半では、いつもの公園がもっともっと楽しいものになるように、公園にあるものを変身させよう、とお題を出しました。

f:id:dig_learning:20180531232631p:plain

お父さん、お母さんや見学者の方々も混じってワイワイと。

大人の方がアタマが固くて、うーん、と唸ったまま手が動かない人たちもちらほら。

 

公園にあるものと、何か別のものを比べて、似ているところ、違うところを見つける。

これが第一歩なのですが意外と難しいです。

その難しさを実感することで、カマドベンチやワンタッチサングラスというものを考えた人たちの発想力にあらためて関心することになります。

すごいよねぇ、と言うとみんな頷いていました。

 

今回、あまり余裕がなくて子どもたちの作品をうまく写真におさめられなかったのですが、、興味深いものがたくさんありました。

 

例えば、滑り台と担架の共通点は人が横になること、という点をみつけた子は、公園でケガをした子がいると急遽、滑り台を担架に変身させて病院へ運ぶ、ということを思いつきました。

滑り台を取り外す発想はなかった!

よく気づいたなぁ、と感心しました。

 

同じく滑り台を使って、はしご車と似ていると気づいた子もいました。

火災発生時には滑り台がはしご車に変身!

移動式の滑り台です。これも、動かないものを動かすという自由な発想がないと生まれない作品です。脱帽。

 

他にも、いつものベンチが介護用ベッドに変身したり、屋根つきの休憩所や寛ぎスペースが災害時には壁ができて安全なシェルターに変身したり。

グローブジャングルと発電機を組み合わせた子もいました。

f:id:dig_learning:20180531233647p:plain

 

ポリモフィズムの考え方を使えるようになると、”似ているところ”を探すのがうまくなります。

ベンチとカマドは似ている、って最初に気づいた人はすごいと思いませんか?

似ているものなら、1つにまとめられるんじゃないか?

と考えるところが問題を解決する第一歩です。

他の皆は気づいていないけど、”似ているところはないか?”と考えながら観察する人にだけ見える”似ているところ”は意外とあるのです。

 

意外と、家の中の台所でも見つかると思いますよ。

もし見つかったら、是非教えてください。

これまで誰も考えつかなかった「似ているもの」を発見することができたら、大発明に繋がるかもしれません。

 

今回のワークショップは特に、大人の方々が非常に熱心に見て、聴いてくださったので嬉しかったです。

ポリモフィズムなどという難解な専門用語をどうすれば伝えられるのか?

ずっと悩んで試行錯誤した甲斐がありました。

ただ、littleBitsを使うことで思考の面白さが逆に伝わりにくくなってしまったのは反省点です。

littleBitsを一切使わない方がむしろ、面白さを実感できるかもしれません。

なかなか勇気がいりますが、、、今度チャレンジしてみようと思います。

 

ご参加くださった皆さま、ありがとうございました。

次回はまたブラッシュアップして臨みますのでお楽しみに!

@tanpro-lab