プログラミング教育とは?

 ここ近年、情報系人材不足ということもあり、プログラミング教育が取り沙汰されるようになってきました。

 今回は、そういったプログラミング教育についてまとめてみました。

プログラミング教育とは

 現在話題になっている、小中学生向けのプログラミング教育は、プログラミング言語を教えるわけではありません。

 IT業界は技術の革新が激しく、現在使われている言語が10年後も使われているとは限りません。小中学生が大人になった頃、現在のプログラミング言語が役に立つ訳ではないのです。

 しかし、プログラミングを学ぶ上で不変の概念があります。条件分岐や繰り返し、演算など、動作の根幹に関わる部分です。

 プログラミング言語は、その歴史で様々な変遷を経てきました。最初は極低級な言語だったものが、手続き型言語、オブジェクト指向言語、関数型言語などに派生しました。他にも様々な派生形があります。

 プログラミング教育とは、こういったプログラムの根幹に関わる部分を教えることによって、論理的思考力を育むことを目的としています。

論理的思考力

 物事には、必ず順序があります。プログラムも同様で、必ず定められた順序通りに動きます。

 単純な電卓では、以下のような動作を行います。

  1. 入力を待ち、入力されたのが数字なら2へ進む。
  2. 数字をメモリ1に追記する
  3. 入力を待ち、入力されたのが演算子なら4へ進む。そうでなければ1へ戻る
  4. 演算子をメモリ2に記憶する
  5. 入力を待ち、入力されたのが数字なら6へ進む。そうでなければ4へ戻る
  6. 数字をメモリ3に追記する。
  7. 入力を待ち、入力されたのが演算子なら、8へ進む。そうでなければ6へ戻る。
  8. メモリ1とメモリ3の内容を演算子メモリ2で演算し、その結果をメモリ1に代入する
  9. メモリ1の内容を表示し、7で入力された演算子の内容が=なら3に戻る。そうでなければ4へ戻る。

 分かりづらいですね。

 これを、プログラミング言語を学んだことがない人にも分かりやすくしたのが、以下に挙げる学習用ソフトです。

 プログラムに与える命令を、ブロックや日本語での記述で表現する事ができ、初めてでも、取っ付きやすいものとなっています。

 これらのソフトウェアは、無償で利用できますので、家庭のコミュニケーションツールとして使ったり、プログラミング教室で作ったものを親子で一緒に見たりもできます。プログラミング教室に行かずにプログラミングを教えることも可能です。

将来の進路

 子供の進路によっては、あまり役に立たないように見えるかもしれません。しかし、論理的思考力を育むという視点で見れば、さまざまな面で有利になることがわかります。

 具体例を挙げると、公務員試験における数的処理や、SPI試験の推論などの、論理力を問われる試験です。

 学校では、こういった論理力を育む科目は多くありません。将来の進路を情報系に限らなかったとしても、学ぶ価値はあるはずです。

政府の推進

 文科省では、教育の情報化の推進をテーマに、プログラミング教育ほか、情報系の積極的な学習を推し進めています。

 大学入試などの分野で、情報系科目が重要視されるのは、まだまだ先のことかもしれませんが、今後、徐々にその比率が高くなっていく可能性は高いように思います。

まとめ

 将来的には、自動車の自動運転をはじめ、様々な分野で自動化が進みます。ディープラーニングなどのAI学習技術も発達し、現在の職業の殆どが自動化出来るとまで噂されています。

 そうなったとき、必要とされるのはどういった人材なのでしょうか。

 案外、「ドラえもん」の世界はもうすぐそこまで来ているのかもしれません。