【教育全般】プログラミング的思考って何?
最近ブーム?な「プログラミング的思考」
少し前、文部科学省が「プログラミング」を日本の教育に取り入れることを決定しました。
これをニュースで目にしたとき私は「小学生にプログラミングをやらせるのか?汗」と驚いたものですが、
当然Scratchやビスケットといったビジュアル型の言語を用いて行うようです。
私自身プログラミングを趣味としており、JavaやPHPを扱います。この記事には簡単なPHPコードが埋め込まれていますし、
Javaで作成したソフトを塾の運営に利用しています。大学ではC++やFortranを使っていました。
このサイトで数式の表示するのには$($多分厳密にはプログラミングではありませんが…$)$$\LaTeX$を使っています。
小学校プログラミング教育のねらいとして、文部科学省は
・知識及び技能
・思考力、判断力、表現力等
・学びに向かう力、人間性等
を挙げていますが、今回は
プログラミングは役に立つのか、
それを教育に取り入れる意味は何なのか
について、
お話ししたいと思います。
先に述べておきますが、私はプログラミング教育に「部分的に賛成」です。
主観的な意見や、個人的な見解が含まれてしまうかもしれませんが、参考程度に読んでくださいね。
プログラミングのありがたみ
インターネットがこれだけ普及した情報化社会で、プログラミングのありがたみを今更説く必要はないと思いますが・・・
一応例をあげますと、冷蔵庫や炊飯器等の製品にも、制御のために組み込まれているようですね。
一世を風靡したマインクラフトもJavaという言語で書かれています。
多くのゲームはC++で記述されているのではないでしょうか。
なので、誇張ではなく情報技術は今の社会にとってなくてはならないものですね。ホント、有難いです。
ですが、これだけの理由で小学校の教育にプログラミングを取り入れるのはいかがなものかと思ってしまいます。
数学にもいえることですが、社会で使われているからという理由のみで、生徒全員にそれを学ばせる、
というのは間違っていると私は考えます。
日本の約1.2億人のうち、一体何人が炊飯器の制御構文を理解しているのでしょうか。
プログラミングを書ける人の割合となると$1\%$にも満たないと思います。
ですから、
社会を動かすために全員がプログラミングを理解する必要はない
はずですね。
プログラミング的思考は色んなところで活用できる
では「プログラミング教育なんぞ無くしてしまえぇ!」と言いたいのかというと、そうではありません。
プログラミングの有用さは、炊飯器を動かすだけではないと思うのです。
プログラミングの経験がある方には実感してもらえると思うのですが、
コードを書く、あるいはScratch等で図形を書くには大きな目標を細かく分けていく必要があります。
例えばScratch等で「正三角形を書く」という大きな目的を達成しようと思えば、
・「進む」
・「120度向きを変える」
・「進む」
・「120度向きを変える」
・「進む」
と目的を5ステップに分解しなければならないでしょう。この「大きな課題を分解する」力は非常に強力です。
例えば炊飯器の会社に入社して「新規顧客をゲットする」営業の仕事を任せられたのなら、
・「製造部に連絡し商品のことを調べる」
・「いい感じの住宅地の場所を調べる」
・「訪問販売をする」
・「契約書を書いてもらう」
・「上司に報告する」
・$($もし目標に届かないなら$)$「電話で広告をする」
等と、
自分ができることに分解し、確実に仕事をこなす
ことができます。
「とりあえずゲットするぜぇ!」という脳筋プレイも時には必要かもしれませんが…
もし営業成績に問題があっても
「製品の情報を調べ切れてなかったな…」
「住宅地の候補がダメだったのか?」
「電話よりもチラシの方が有効?」
といった風に、
次に生かせる反省点も見えやすい
と思います。
ですので、
課題解決の力を培える
という意味で、プログラミング教育には大きなメリットがあると思います。
プログラミングである必要性
ここで、私がプログラミング教育に「
部分的に
賛成」と書いた理由を述べたいと思います。
理由を端的に言うと「別に小学校でやらなくても良くね?!」です。
例えばテストで結果を出すには
・「授業を聞く」
・「課題で練習をする」
・「テスト範囲を確認する」
・「前日しっかり休む」
・「テストの振り返りをする」
を繰り返さなければなりません。あるいは数学の文章題なら
・「問題を読む」
・「方程式を立てる」
・「計算する」
・「検算する」
「物事の順序を理解し、意図した動作や結果を効率よく導くための論理的思考力」
だとするなら、それを訓練する上記のような機会はいくらでもあるはずです。
個人的には、「順序立てて考える習慣」を身に付けるのはプログラミングでなければダメ!ということはないと思っています。
プログラミングや情報処理に興味があって学びたい子には大いに学んでほしいのですが、
まずはその礎となる国語力や計算力を身に着けるべきケースは少なくないと感じています。
百分率の計算ができなければ、消費税率の意味は分かりません。
割合の計算ができないと、時給の計算ができません。
ある程度の国語力がなければ、自分の思ったことを口にできず、上司に報告書を作ることでもできないでしょう。
計算力や国語力を身につけるのには普通長い時間が必要です。そして小学校教育は国民全員が受けるものですから、
プログラミングよりも基礎的なモノと位置付けられる、
計算力や国語力の錬成に力を入れるべきだという意見にも一理あると考えます。
まとめ
色々とお話ししてきましたが、プログラミングの全てを私が把握しているわけではないので、
手放しで肯定、ましてや全否定する気は毛頭ありません。
そしてなにより、
自分の作ったプログラムが動くのはシンプルに楽しい
です。
これは数学や国語といった座学では得難いものです。
マインクラフトのMod作成に何時間奪われたことか…。
私個人の経験として、プログラミングに触れてプラスになるタイミングは$($少なくとも国語や算数よりは$)$人によって幅があると感じています。
作品が出来ればそれだけで楽しいですし、算数の図形が苦手でも、プログラミングをきっかけに理解できる子もいるはずです。
一方でプログラミング自体に興味が沸かない子もいるはずなので、その辺りをどうするべきかは難しいところですね。
基礎学力がある程度ついた大学生の方などは、積極的に取り組んでみてはいいのではないでしょうか。
高校生は忙しいと思いますが、部活動などを通じてなら、多くのことを学ぶ機会を得られるはずです。
プログラミング的思考だけではなく、オブジェクト指向や読みやすいコーディングなど、
プログラミングにはいろんな場面で使えるスキルが満載です。
興味がおありでしたら、一度体験してみてはいかがでしょうか?