【レポート】プログラミングで問題解決~ポストはなぜ赤いのか?~ 2/2 北区立桐ヶ丘郷小学校 2018.01.19
次は問題解決のお話です。
明治時代のポストに問題があることは分かりました。
では、どのように解決するか?
解決の手順としては、まず最初に原因を探ります。
これだけで何時間でも話せそうですが、原因の深掘りはテーマではないので軽めに。
そして、どのようにすれば原因を取り除けるかを考えます。
ここでは、素材を変えること、色を変えること、が問題解決の手段でした。
これから伝えるプログラミングというのも、同じように問題解決の手段になり得るものです、という形でプログラミングの話に移ります。
プログラムは命令の集まりです。
そのプログラムを実行するコンピュータは、いつも同じ結果を出します。
1+1を計算せよ、とコンピュータに命令すれば、必ず「2」と答えます。
プログラムのバグがない限りいつでも必ず同じ結果を出すことができます。
一方で、君たちはどうでしょうか?
先生や親から言われた命令に対して、いつも同じ結果を出すことができますか??
ここで苦笑しながら首を横にふる正直な子どもたち(笑)
何が違うのでしょう?
コンピュータにあって君たちにないものは何でしょう?
それは、アルゴリズムです。
このアルゴリズムを、littleBitsを使って実際に体験してみます。
littleBitsは本当に良い教材だなぁ、と今回あらためて実感しました。
アルゴリズムの学習をするのには、紙と鉛筆だけでも良いのですが、動きがないと結果を実感し難いので小学生には物足りません。
かといって、パソコンを使って実際のプログラミングをしながらでは覚えるべきことが多すぎてアルゴリズムだけにフォーカスして学習するのが難しくなってしまいます。
その点、littleBitsならアルゴリズムだけの学習に専念できますし、手を使って実際に動きを確かめながら理解を進められるので学習効果はとても高いと思います。
当日はアルゴリズムの基本である3つの構造について、littleBitsのモジュールを組み合わせながらプログラミングを体験してもらったのですが、初めての子どもたちにとっては適度に難しかったようです。
なかなか、モジュールを組み合わせる「順番」や「ルール」を意識することに辿り着きません。
工作であれば、電源に繋いでライトがつけばそれでOKなのかもしれません。
でも、「スイッチをONにしたら、まず白色のライトをつけて、次に赤色のライトをつける」アルゴリズムを作るのだから、決められた通りに動くように「順番」を決めなければいけません。
「スイッチをONにしたら、白色のライトと赤色のライトをずっとつけ続ける」アルゴリズムを作るのだから、白色のライトも赤色のライトもどちらも点きっぱなしになるように「ルール」を決めなければいけません。
ものすごく単純なことをやっているだけなのですが、言葉で示すことと、実際に手を動かすこと、そして結果を出すことの全て繋げるのは意外と難しいです。
やってみると7割くらいの子たちが不正解だったので、自力で解決できるように少しずつ個別にヒントを出しながら進めました。
すると、あちこちから
「あ、そういうことか!」「なるほど!」「できた!」
といった声があがります。
こうやって失敗→成功の体験を積み重ねることで、身体にアルゴリズムを染み込ませることができると良いですね。
アルゴリズムがあれば自分たちも確実に結果を出せるようになるのだから!
最後に、これまでに学んだアルゴリズムを使ってこんな問題を解いてみます。
あともう1コマ時間があれば、この先を一緒に考えたいところでしたが、残念ながら時間切れ。
解決サンプルを1つ紹介してこの日の授業は終わりとなりました。
終了後、子どもたちからは「またやりたい!」のリクエストをたくさんもらいました。
もちろん嬉しいのですが、何より、先生方がこの重要性に気づいて評価してくださることがそれ以上に嬉しいです。
あぁ、プログラミング学習っていうのは新しくて難しそうで自分には分からないと思っていたけど、それ私知ってるわ、という気付き。
子どもたちの問題なんだから、本当は子どもたちが自分で解決策を考えなきゃいけないのに、先生たちは忙しさを理由につい、答えを与えてしまう。
それでは考える力は育たない。
解決策を教えるのではなくアルゴリズムを教えてあげれば、自分で解決できるようなるのではないか?という気付き。
多様性というのは、答えは一つではないということ
だとすれば、3つめ、4つめの答えを自分の頭で考えられることが重要になる。
このときに、アルゴリズムをはじめとするプログラミングの考え方を知っていて
それを共通言語として使いこなすことができるとしたら、生産的な問題解決ができますね
という校長先生からのフィードバックはプログラミング学習をこれから取り入れていこうとする学校にとって、とても重要なポイントを含んでいると思います。
終了後、今回の学習を担任の先生がこんな形でまとめてくださいました。
「プログラミング」と聞くとすぐに「コンピュータ」という発想になりがちですが、そうではなく
『いろいろな学習場面や生活場面で問題点を見つけ、それを解決していくためにはどうしたらよいのか。
また、どんな順番でどんなルールをもって解決していくのが効率的かつ確実なのか。』
という思考過程であることを学びました。
探プロで伝えたいことを汲み取って見事にまとめて頂き、嬉しい限りです。
問題発見のところをもっと深掘りするのも面白そうですし、現代のポストを解決するところもやってみたいし、子どもたちが妙に関心をもっていた(笑)忘れ物を防ぐには?という問題にもチャレンジしてみたい。
今回の授業をきっかけに、さまざまな発展形を描くことができそうです。
頑張って機会を作りますね!
桐ヶ丘郷小学校の皆さま、ありがとうございました!
【ワークショップレポート】変身する公園をつくろう!
1/21(日)は久しぶりの探プロワークショップ(オープン)でした。
前回が11月の沼津での開催だったので、2ヶ月ぶりとなります。
そして気づかなかったのですが、ちょうど1年前はこんなワークショップをやっていたのでした。
一年前のこの日は初めての幼児向けプログラムを開催した日でしたね。
思いきってスタートしたこの「楽しい家をつくろう!」を皮切りに、2017年はたくさんの方々にお会いすることができました。
そして2018年。
公園をつくろう、のワークショップは実は1年半ぶりの開催でした。
他のプログラムと違って、このテーマは「ポリモフィズム」という少し変わったプログラミングの考え方を学ぶものになっています。
この考え方を活用することで、モノゴトを効率的に考える、創ることができるようになることを期待しています。
ポリモフィズムの考え方を取り入れている身近なものの例として、今回は「公園」をとりあげました。
ベンチとカマド、この2つの共通点はなんでしょう?
子どもたちからは、足がついている、上にモノを乗せる、などが出ました。
そして、その共通点を活かして別の用途にも使えるように造られたのが『かまどベンチ』です。
もう1つ。こちらはどうでしょう?
マンホールとトイレ。共通点は?
穴に流す、蓋がついている、などがでました。
このように、1つのものがいろんな用途に使えたら『効率が良い』ですよね。
簡単な言葉では一石二鳥、とも。
AとBの共通点は何か?
形を大きく変えずに変身させることはできないか?
そんなことを考えると、思いがけないアイデアが生まれることでしょうし、プログラミングの世界では
他の用途にも使いまわせるプログラムは効率的な設計ができている、と評価されます。
さて、そんなわけで今日のワークショップは「変身する公園をつくろう!」だったのですが、今回初めて和室会場での開催となりました。
雰囲気はこんな感じ。
小さなお子さんがヨチヨチと歩きまわったり、大人や子どもが自由に移動したりできる空間は和室ならでは、だと思います。
テーブルと椅子、のスペースではどうしても居場所が固定されてしまって、場合によっては保護者は遠巻きに見ているだけ、になることもあるのですよね。
今回は大人も子どもも、かなり熱中して取り組んでいたと思います。
和室開催良いですね!
最初はlittleBitsを使いこなすのに苦戦していた子どもたちでしたが、時間が経つにつれてどんどん使えるようになり、最終的には非常に興味深い作品をたくさん作ってくれました。
まずはこちら。
女の子2人組が作ったのはブランコと鉄棒。
littleBitsのモーターを使うことで、ちゃんと回転するんですよ。すごい。
続いてこちらは兄と弟で作った大作です。
向かって左端にあるのは風車、かと思いきや人が乗れるメリーゴーランドのようなアトラクション。
その回転を利用して発電し、真ん中にあるグローブ・ジャングルを猛スピードで回転させ、さらに隣にあるもう一つの風車(弟作)を回転させるという巨大装置でした。
他にも、遊びながら音楽を鳴らしたりライトアップしたりするシーソー(お母さん作)
遊び疲れたら泊まっていける公園(1階が宿泊スペース)。
光る噴水
はたまた、移動公園なんていうアイデアもありました。
今回面白い作品がたくさん生まれたのですが、「変身させる」ところまではなかなかいきませんでした。
これはコンテンツの方に問題があるなぁ、と反省です。
「変身」させるための共通機能の見つけ方、それを踏まえた設計、といったところを本当に理解し、使いこなすためにはまだまだステップが必要なんですよね。
いろんな要素を盛り込みすぎてしまったことを反省して、次回はまた違ったアプローチで臨みたいと思います。
今回は公園のプロである強力なパートナーと一緒に開催だったのですが
次回もしやるとしたら、「現在の公園が抱える問題をどうやって解決するか?」「社会の抱える問題を公園を使ってどう解決するか?」
なんてことができたら面白そうだねー、なんていう話を終了後にしていました。
また違った「公園をつくろう!」がお披露目できるように、引き続き頑張ろうと思います。
ご参加くださった皆様、ありがとうございました!
【コラム】未来を生きる子どもたちが身につけるべきこと
明けましておめでとうございます。
2018年も、探プロはプログラミングを学ぶ意味と価値の探究に励み
皆さんにとって有益な情報と学習の機会を届けられるようチャレンジを続けていきます。
さて、新年最初の投稿は朝日小学生新聞の1月1日号に掲載されていたこちらの記事からです。
東ロボくんで有名な新井先生のお話です。
プログラミング教育についても触れられていて、とても本質をついていると思いました。
プログラミング的思考で大事なのは再現性
まさに。
人間がやるとムリ・ムラ・ムダが発生してしまうけれど
コンピュータがやると、いつでも、最小限のコストで、間違いなく同じ結果を出すことができる。
なぜなら、必ず同じ動きをするようにアルゴリズムが組まれているから。
これがつまり再現性。
記事の中では、この再現性を文章力として身につけることの重要性が書かれています。
動いた!できた!
の体験から学べることも多いかもしれません。
でもやはり、なぜ動いたのか?なぜ実現できたのか?
を自分の言葉で説明できること、それを再現性のある文章として伝えられること
を目指してほしいと思います。
私は、子どもたちにはこのアルゴリズムの考え方を知り、使いこなせるようになってほしいと思っていますし
探プロではアルゴリズムだけでなく、様々なプログラミングの考え方を含めて伝えていきたいと考えています。
こうした考え方を使いこなせることでまず、問題、課題を解決するチカラが身につきます。
ここまでができてコンピュータと同等。
すなわち論理的思考力を身につけることのお話です。
しかしAIが進化するということは、人間はコンピュータとは違う能力を身につけなければいけない、ということです。
この記事にあるようにAIには困難な「意味」の解釈によってより難しい課題に取り組むことが求められます。
ここからが創造的思考力の話です。
最近、中学受験業界で話題の「思考コード」は思考力を評価するための新しい枠組みですが、これを見ると、論理的思考力と創造的思考力の関係性がとてもよく分かります。
(首都圏模試センターのサイトより)
創造的思考力は、論理的思考力を抜きにしては身につかないのですよね。
両者を別ものとして捉えるのではなく、関係性を意識しておくことはとても重要です。
「これからは自分で課題を見つけ、自分で解決する能力を育てなくてはいけない」とよく言われますが、比較的単純な問題が解決できないのに、いきなり複雑な問題を解決するのは無理です。
まず、課題はどうやって見つけるのかというところから、しっかり教育していく必要があると思います。
探プロは、プログラミングの考え方を使って問題を解決するところだけでなく、問題発見もコンセプトの中に取り込んでいます。
参考:探プロのコンセプト https://www.tanpro-lab.jp/concept
複雑化の進む社会を生きる
子どもたちに必要なのは
ICT技術者を育てるための教育ではなく
社会の構造と繋がりを読み解くことその中から解くべき問題を発見したり
新しいサービスを生み出す力を育むこと
だと考えています。
探究型プログラミング学習では社会を通じて
“プログラミングの考え方”を学び
実践を繰り返しながら
次世代の子どもたちに必須の未来を創る力を
総合的に身につけることを目指します。
これまでの活動で、問題解決にプログラミングの考え方を活用し、論理的思考力を修得するための手法はそれなりに形にできたように思います。
今年は次のステップとして、社会の構造化にプログラミングの考え方を活用し、創造的思考力を修得するところの可視化に取り組むつもりです。
これまで以上に難易度は高い…
のですがやりがいはそれ以上です。
今年も引き続き、よろしくお願いします!