子供にとってのプログラミング

 習い事でプログラミングが流行っている。近所に教室も増えてきた。単なるプログラミングではなくロボット工作との組み合わせが目立つ。息子も小学校からChromebookが貸し出されて授業で少ない時間だけどScratchというビジュアルな言語で短い時間だがプログラミングを体験したようだ。


私自身がソフトウェアエンジニアなので日常的にプログラミングをしている。初めてプログラミングに触れたのは大学に入ってからでこの分野に関わって20年近くになる。なのでプログラミングその周辺はよくわかっているつもり。


プログラミングとはPCを使ってキーボードを使ってコーディングすることだと思っていたけど、最近はピタゴラスイッチみたいに、パーツを組み合わせて仕掛けを作るおもちゃもプログラミングを謳っている。明らかにブームに便乗だけど本来のProgrammingの意味からするとこれも間違いではない。


いつ頃から何がきっかけなのか正確にはわからないが、おそらくアメリカ発のSTEMやSTEAM教育(Science, Technology, Engineering, Art, Mathematics)が言われだし、その後にAIブームになってIT・AI人材が不足と騒がれはじめたあたりだろうか。


プログラミングをする効果を大きく3つあると思う。


1つ目の論理的思考。プログラミングは曖昧さが許されない。完全に言語のルールの則って記述しないとエラーになる。そこが数学に通じるところになる。考えてコーディングしていくことは論理的思考そのものだ。


2つ目はソフトウェア、IT分野の知見。もしもこの分野で仕事をするなら覚えるべきことがたくさんある。理想的にはプログラミングだけでなく、OSの深い部分、さらにはハードウェアの知識も必要になってくる。例え技術者にならなくてもこれだけ周りに囲まれているものについてある程度は知っておいて損はない。


3つ目が試行錯誤と創作の体験。プログラミングが組み立て工作や電子工作などと比べての利点はすぐやり直しがきくところ。基本的にものが壊れるということがない。いくらでも試行錯誤を繰り返すことができる。私としてはこのことがとても大きい。そして作ろうと思えばお金もかからずアプリ、ゲームなどを無制限で作ることができる。


小学校で習うプログラミングは時間が短すぎて何かを身につけるという効果はほほないと思う。でも学校の授業をきっかけにプログラミングというものの存在を知って、できたら自分で目覚めてね、という効果はある。


プログラミングを始めるにしてもどんなに早くとも中学生以降でよいと思う。学校にもしパソコン部とかあれば入ればいい。これらの部活がアプリを使うだけでプログラミングをしているかどうかは知らないが。


キーボードを使ったコーディングをしないビジュアルなプログラミングはやっぱりおもちゃ。どうせやるなら少なくともPython以上を使ったほうがいい。個人的にはやっぱりC言語がいい。そうなると関数の意味を理解するために英語が少しはできないといけない。ある程度のアルゴリズムを理解して記述するためには小学校卒業レベルの算数は最低限必要になる。やっぱりプログラムを小学校から始めるのは非効率と言える。


論理的思考の基礎は普段触れている国語からだと思う。日本語の読み書き、読解、会話を鍛えることで論理的思考になっていく。小学生のうちはそちらを意識するほうがいい。