システムエンジニアとして働く傍、IT業務支援や教育事業を手がける「Colibbon」の代表として活動する趙成哲さんが、昨今ブームとなっているプログラミング教育についてわかりやすく解説してくれます。
プログラミングが私たちの生活、そして子供たちの将来や同胞社会の未来にどのように影響を与えるのか。
そして私たちにどんな可能性をもたらしてくれるのでしょうか。
第4回:プログラミング教育は効率よく学習できる
連載コラム「プログラミング教育を語る!」の第4回目です。前回、勉強力の向上には学ぶ姿勢が重要であり、特に「好奇心」をもつことが脳を育ているにおいて大切であるとお話しました。
実際にプログラミング教育でなくても「好奇心」を持たせることは工夫次第でどんな教科で可能です。今回は、プログラミング教育だからこそ他の教科に比べて効率よく勉強力を育てていける点をお話したいと思います
学びのサイクルとは?
この世の中で、自分が知っていることと知らないこと、明らかになっているものと明らかになったないものがありますが、量として比べた時どちらが多いでしょうか?
当然、自分が知っていることよりも知らないことの方が多いですし、明らかになったものよりも明らかになっていないものの方が多いでしょう。
人はいくら知識や技術を習得しても死ぬまで世の中のすべてを理解・解明することはできません。また、私たちが一日を通して体験する出来事は想定内の出来事よりも想定外の出来事が多いです。
人と会話するときも相手の言葉一言一言が常に予想外の発言だったりします。
こういった事象に私たちはある程度うまく対応・対処している思いますが、それは「学びを活かしている」からこそできることなのです。
学びを活かすためには「学びのサイクル」が大切です。(ただ答えを覚えるような勉強ではテストでいい点を取れたとしても、未知のものが多い社会、生活に対応することはできません。答えを覚えるのではなく「学びのサイクル」を回すことによって学びを活かすことができるのです。)
学びのサイクルは以下の図の通りで
①具体:物事の事象について具体的な体験したり情報を収集する。
②抽象:複数の具体的事象から共通のパターンを見出す。
③応用:他の事象にも通用するか仮説を立てて実践・検証する。
①~③を繰り返す学びによって物事を理解し、未知のものに対しても対応するための手立てを考えることができるのです。
プログラミング教育の場合、学びのサイクルをどう回されるのでしょうか。
比較的人気言語であるPython(パイソン)を例にして紹介します。
まずは、下の画像を見てください。
入力[1]と入力[2]に書かれたプログラムを実行すると、それぞれコンピュータから反応が返ってきました。(①具体的な事象について確認する。)
では入力[3]を実行するとどういった反応が期待されますでしょうか?
皆さんが今想像した通り、「プログラミング教育」と返ってきます。(②共通のパターンを見出す。)
つまり、print(“ここに書いた文章が返される”)を実行すると「ここに書いた文章が返される」が返ってくるのです。(③他の事象にも通用するか仮説を立てて実践・検証する。)
では、””は必要でしょうか?
入力[4]のように数字については””がなくても返ってきましたが、入力[5]のようなかな文字ではうまく返ってきませんでした。(③から①へ)
入力[5]はプログラミングとしては構文エラーですが、学びとしては失敗ではありません。
新しい具体的事象を発見したことになります。
プログラミングは決まったルールにそって記述することが約束となっています。
決まったルールを具体的な事象から見つけてパターン化し違うもの応用していき通用するものもあれば通用しないものも出てくる。
こういうサイクルを通して未知のものにも対応できる頑健な理解と思考法を構築していくのです。
失敗は成功のもと
学びのサイクルの中でも実践・実技を伴うものに関しては試しては成功・失敗を繰り返す言わば「試行錯誤」の繰り返しでもあります。 プログラミングの作成にももちろん試行錯誤が常に働きます。
プログラミングの試行錯誤は他の物質的な試行錯誤くらべで回転が速く、低コストです。デジタルデータは物質的なものよりも試行錯誤を圧倒的に早く回せますし、追加コストも生じません。(例えば、DIYで椅子をつくる場合、一つでも足を短く切ってしまうともう一度はじめから作り直し・または購入する必要があるかもしれません。しかし、デジタルデータの椅子の場合は行った処理を一つずつ戻すことが可能です。)
そのため子供たちは、プログラミング教育を通して試行錯誤をいつも以上に速く繰り返し、学びのサイクルを回していくことができるのです。
重要なことは子供たち自身が試行錯誤して学びのサイクルを回すことです。
プログラミング教育がいくら試行錯誤ツールとして素晴らしいものだとしても答えをただ教えるだけの教育になってしまえば、このメリットを生かすことにならずただの座学となってしまいます。
子供たちが共通パターンを見だせるように、自然と実践・検証できるように教育する側はうまく授業を進めていかなければなりません。
子供たちがうまく学びのサイクルを回せるようになったときは、第2回でお話した「見通す力」と「やり抜く力」も自然と身についていくのではないかと考えております。
第4回のまとめ・世の中には自分が想定できない未知なものが常にあり、それに対応・対処できるように「学びのサイクル」をしっかり回していくことが大切である。・「学びのサイクル」は「①具体的な体験・情報の収集」、「②共通のパターンを見出す」、「③仮説を立てて検証する」ことを繰り返すことである。・プログラミングの作成はデジタルデータのため、物質的な試行錯誤よりも時間が速くコストも安い。
次回は、プログラミング教育の二つ目のメリット、”情報リテラシーを身に着けられる”についてお話ししましょ
- 世の中には自分が想定できない未知なものが常にあり、それに対応・対処できるように「学びのサイクル」をしっかり回していくことが大切である。
- 「学びのサイクル」は「①具体的な体験・情報の収集」、「②共通のパターンを見出す」、「③仮説を立てて検証する」ことを繰り返すことである。
- プログラミングの作成はデジタルデータのため、物質的な試行錯誤よりも時間が速くコストも安い。
次回は、プログラミング教育の二つ目のメリット、”情報リテラシーを身に着けられる”についてお話ししましょう
(次回へ続く)