いよいよ2020年から小学校でのプログラミング教育が始まりますね。
子どもよりも学校の先生が大変だなと思います。いろいろ悩みの多いこのご時世に、また新たなスキルを身につけなければならないのですから。
そしてこれまでITスキルを習得する機会がなかった親御さんにおかれましても、いったいどんなことを教えてもらうのか不安でたまらないでしょう。
そこで、誰にでもわかるプログラミングの解説記事を私なりに書いていこうと思います。この記事がめざすところは、これまでIT関連の教育や実務に携わらなかった30代、40代の親御さんでもプログラミングがどのようなものか理解できるようになるということです。
国が学校教育で実施しようとしているのは、
児童がプログラミングを体験しながら,コンピュータに意図した処理を行わせるために必要な論理的思考力を身に付けるための学習活動
文部科学省 新学習指導要領
だそうです。
「なんだか難しそうなプログラミングとやらにうちの子どもは挑むことになりそうだけど、いったい何を習うのかさっぱりわからん!」という方のために、プログラミング学習の大事なことと面白さをお伝えできればと思います。
とりあえず今回は、「プログラミングとは何か」、「プログラミング教育で身につけたい能力とは」ということを個人的な考えを踏まえて解説したいと思います。

プログラミングとは
世の中には至る所にコンピュータがあります。スマホやパソコン、ゲーム機はもちろん、車や家電もコンピュータ制御ですし、もちろん今流行のAIやロボットもそうです。今や、
世の中の便利なこと全てコンピュータでできている
と言っても過言ではありません。
世の中に溢れかえるコンピュータに命令し制御するのは人間です。簡単に言ってしまうと、コンピュータを動かす指示をすること、それがプログラミングです。「メールが来たら通知して教えて」「7時になったらご飯を炊いて」「前方に車を察知したら減速して」など、あらかじめ人の手によってプログラム(指示)されていないと、その指示通りには動けません。プログラムされていないコンピュータは何も働かないのです。
将来的には、コンピュータは自分の意思でプログラムを変更するかも知れません。そうなったらスカイネットとターミネーター時代の幕開けですね(すいません、どうでもいい話です)。
でも今はまだ人間の指示通りにコンピュータが動くのです。
あらかじめ動作の指示をしておくための”指示書を作成する”ことがプログラミングという作業です。この辺はなんとなく分かっていらっしゃる方が多いのではないでしょうか。
そしてそのプログラム(指示書)は、指示をする人間にも、指示されたコンピュータにも理解できなければなりません。人間とコンピュータの共通言語、それが「プログラミング言語」ということになります。
先ほどの新学習指導要領抜粋にある「児童がプログラミングを体験」というのは、実際にプログラミング言語などを使用して動くものを作る体験をすることだと思われます。
そして、「コンピュータに意図した処理を行わせるために必要な論理的思考力を身に付ける」というのは、あらゆるプログラミング言語で通用する「指示書を書くための考え方」の習得になります。
正直なところプログラミングの論理的思考を学ぶのなら言語など何でもよいですが、実際に動くものをなるべく簡単に作れる方が 楽しいですしスキルアップは速いです。

”プログラミング的な”考え方(論理的思考)
プログラミング言語には様々なものがあります。例えばWEBサイトを構築する際によく使われるPHPやRuby、iPhoneアプリを開発するためのswift、Androidアプリ開発のKotlin、ブラウザで動作するjavascript、マイクロソフト.NETのC++、C#、WordやExcelのVBA…などなど。
私は、それらの言語構造を覚えて書けるようになることがプログラミング学習ではないと考えています。プログラミング学習で大事なのは、論理的思考ができるようになることです。
論理的思考と言われてもぴんと来ないかもしれません。しかし、いざプログラミングを始めてみると、
思考が論理的じゃないと、コンピュータは意図通りに動いてくれない
ということが分かります。
そして論理的な思考ができるようになると、プログラミング以外の様々な場面で合理的な考えができるようになります。これは、やってみないとなかなか理解しづらいのですが、プログラミングを生業としない人にとっても大きなメリットです。プログラミングを学ぶ意味はここにあるのです。
とは言ってもやはり「将来プログラマーやエンジニアになるわけでもないのになぜ小学生のうちからそんな専門的な知識を学ばなければいけないの?」と思われるかもしれません。
もはやプログラミングは世界を動かす仕組みそのものになっていきます。決してプログラマーやエンジニアだけの専門的な知識ではなく、これからの世の中を生きるための基礎知識なのです。実際にコンピュータを動かさなくても、プログラミングの知識と論理的思考は必要なスキルなのです。読み書きそろばんプログラミングです。
論理的思考はあらゆる問題解決の場面で役に立つ
ということを覚えておいてください。
今回はプログラミングの必要性と論理的思考の大切さについて書きましたが、次はもう少し実践的なところに入っていきたいと思います。
それではまた。