2018年ももうすぐ終わり・・・いよいよ2020年まであと1年ほど。
2020年はオリンピックよりももっともっと重要な教育改革元年!
このサイトでも、2020年の教育改革に盛り込まれた「プログラミング教育」について、文科省の資料および未来の学びコンソーシアムのサイトの情報をまとめてわかりやすく解説していこうと思いま・・・・す(←ちょっと弱気)。
本日のテーマは「プログラミング的思考より大事な『コンピュテーショナル・シンキング』」です。
プログラミング教育の目的はプログラミング的思考を育てること、となっていますが・・・さて肝心の「プログラミング的思考」とは一体なんなのでしょうか?
今回は、「プログラミング的思考」の定義と、その言葉の語源(?)と、子供達にとって本当に大切な力は何かを考えてみたいと思います。
1. プログラミング思考とは
まずは文科省の定義からおさらいしていきましょう。プログラミング教育の目的、プログラミング思考については次の資料から確認できます。
▼プログラミング教育の目的についてはこちら
プログラミング教育とは、子供たちに、コンピュータに意図した処理を行うよう指示することができるということを体験させながら、将来どのような職業に就くとしても、時代を超えて普遍的に求められる力としての「プログラミング的思考」などを育むことであり、コーディングを覚えることが目的ではない。
小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ) 前文より
この文章によれば、プログラミング教育の目的は、「プログラミング的思考」を育むこと、ということになります。
▼プログラミング思考の定義はこちら
小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)
3.学校教育におけるプログラミング教育の在り方とは (2)より
「プログラミング的思考」はどうやら「コンピュテーショナル・シンキング」と「論理的思考」という言葉を元に作られた言葉だということがわかりました。
2. コンピュテーショナル・シンキングとは
では、コンピュテーショナル・シンキングとはどのような思考法なのでしょうか?コンピューテショナル・シンキングについて調べてみると、この言葉が有名になったきっかけとされる論文があり、日本語訳が公開されていました。
※少々、難しい内容の論文なのでp.586「したがって計算論的思考は以下の特徴を持つ:」以降だけ読まれてもいいでしょう。
この論文によれば、「コンピューター科学者のように考える方法」がコンピュテーショナル・シンキングだそうです。そして、コンピューテショナル・シンキングは「一見難しそうな問題を我々がすでに解き方を知っている問題に変換する」ことを可能にしてくれるということがわかりました。
なるほど。コンピューテショナルシンキングがものすごく重要で、この思考法ができるようになれば様々な問題解決に役立つだということがわかりました。
であるならば、現代人にとって大事なのは
・プログラミングができるようになることではなく、コンピューター科学者のように考えること。
・そのためにコンピューターとその周辺のシステムの仕組みを知ること。
・そして、そのコンピューターを使った問題解決方法を、現実に応用する力を身に付けること。
ということになるのではないでしょうか?
3. 本当に必要な力はプログラミングじゃ身につかない
ここから先は論文を読んだ、私の感想になります。
プログラミング的思考は、コンピューテショナル・シンキングよりかなり矮小化された概念である、という印象を持ちました。
図にするとこんな感じです。
おそらく「コンピューテショナル・シンキング」を教えるのは現実的ではないだろう・・・と文科省は判断し、「プログラミング的思考」というかなり範囲を限定した言葉を定義したのかもしれません。2020年は改革内容が盛りだくさんなので、現場からの反発を考えてちょっと弱気になったのでしょうか?
親として考えること
子供達に身につけてもらいたい能力を「プログラミング的思考」に限定してしまうのは、非常にもったいないと思いました。まずは、子供に関わる大人たちがコンピューテショナル・シンキングを身につけるのが第一歩でしょう。
以前、「スティーブ・ジョブズ、ホリエモンはプログラミングができるから、すごいんだ。プログラミングを学ばせれば、彼らのようになれる」と言っている人がいました。しかし、それはかなり違うということもわかりました。
GAFAを始めとする現代の有力企業の成長は、プログラミングによるものではなく「コンピューテショナル・シンキング」によるものでしょう。プログラミングはあくまで部分でしかないのです。「部分」をさも「全体」かのように言うのは、正確ではないですよね。
・コンピューターとその周辺分野の仕組みを理解すること
・その仕組みを抽象化して思考し、現実世界にも応用できること
これこそが子供に身につけさせたい能力であり、21世紀を生き延びるために必要な力だと思います。
プログラミングももちろん楽しんでもらいたいと思います。ですが、プログラミングは通過点でありゴールではないということを、指導する側の大人は認識しておくべきだと思いました。コンピューテショナル・シンキングを身に付ける方法を、私もこれから試行錯誤していこうと思った2018年末でした。