具体化する能力と小学生にプログラミングを学ばせる意味
こんばんはExcelsiorです。
学問において具体化することは非常に重要です。
英作文でも日本語の抽象表現をいかに具体化するか
が重要です。
さて本日はプログラミングを小学生が学ぶ意味について考えたいと思います。
よく
論理的思考力を育成する
目的で導入されたなどと言われます。
確かに事実であると思います。
ですが私はまさに
具体化の能力の育成
という一役買う存在がプログラミングではないかと考えています。
高校レベル、大学レベルでは
ベクトルとスカラーの関係といってもいいではないでしょうか。
本日はもう少し簡単に説明いたします。
プログラミングとは
機械が理解できるように指示する作業です。
皆さんも映画の中などでこういった0と1の配列を見たことあるのではないでしょうか。
まさにこの0と1の配列こそが機械が理解できる形式です。
その機械を動かすために我々はプログラミングをするのです。
(本来はただコードを書けばいいわけでなく、機械が理解できるようにコンパイルしたりするのですがわかりやすく省略します)
しかしこの機械に指示を送るということが難しいのです。
例えば
"目の前にあるりんごをとって"と人に伝えたとしましょう。
人間なら問題なく伝わるでしょう。
しかし機械ならどうか
"前方10cmに腕を自身より見て90度の角度で伸ばし、物体に当たると同一直線上を1Nの力で挟み................"
わかりますでしょうか。
非常に具体的な作業数値を論理的に組み立てる必要性があるのです。
数学力の論理的な表現と数字への感度
国語力の具体的に意図を伝達する
作業がプログラミングには関係しているのです。
つまりプログラミングを小学生に学ばせる意味は
"論理的な思考の元、数値を用いて具体的に言語化し他者に客観的に伝える"
能力の育成と言えるのではないのでしょうか。
私の同僚の東京大学出身で数学オリンピックに出場していましたプログラマーは
"プログラミングが上手い人はコードが綺麗、数学ができる人はコードに論理性がある"
とよくいっています。
まさに勉強にも言えるのではないでしょうか。
数学ができる生徒は立式に一切の無駄はありませんし、論理的構造が成立しています。
論理的に思考する
数字を用いて表現する
状況を具体化し、言語処理する、伝達する
プログラミングは
算数と国語力の複合と言えるのではないでしょうか。
Excelsior
0コメント