
子供にプログラミングの勉強をさせるには何が良いのでしょうか?
こんな疑問にお答えします。

この機会にプログラミングの楽しさを多くの人に知ってもらいたいですね!

プログラミング教育って何?

2020年度からプログラミング教育が必修化になりましたね。
プログラミングを知らない人には何のことか分からず、混乱していることでしょう。
そんな僕もダンスが必修化となった時はどうしよう!?とパニックになってしまいました。
中学校はだいぶ前に卒業したので頭の中でそんな妄想をしただけですが…
さて、本題の「プログラミング教育とは」についてです。
文部科学省の資料によるとプログラミング教育の目的は「プログラミング的思考」を身に付けることにあります。
>>参考:小学校プログラミング教育の手引(第三版)
その「プログラミング的思考」を理解するためにはまず、プログラミングが何かを知らないといけません。
コンピュータに命令すること
コンピュータは命令した通りの動作しかしません。
Hey!Siriと呼びかけて、コンピュータが自分で考えて回答しているように見えたとしても、実は決まったパターンを返しているだけです。
違った答えが返ってきたりするのは、ランダムに応答を返すようにしたり、プログラム自体をアップデートしているからなのです。
つまり、プログラミング的思考とは、
自分が意図する一連の活動を実現するために、どのような動きの組み合わせが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組み合わせをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力。
引用:小学校プログラミング教育の手引(第三版)のP6より
記号とは最小限のモノや動作を意味します。
例えば、じゃんけんをする場合。
最終的な動作としてはグーと、チョキと、パーの3種類です。
グーの動作を分解すると、右手、握る、という2つの記号になります。
チョキはもっと複雑ですね。
そのように考えていくのがプログラミング的思考なのです。
プログラミング教材はどんなもの?

プログラミング教材は大きく2つに分かれます。
ロボットを使うか、使わないか、です。
どちらもPCやタブレットを使ってプログラミングを行います。
プログラミングは難しそうというイメージがありますが、小学校でやるものはパズル的な要素の方が強いです。
例えば、以下のカッコ内に当てはまるものを自分で選択し、目的の行動をとるようにするといったものです。
「誰が」+「何を」+「どうする」
このような手法をビジュアルプログラミングと呼びます。
ビジュアルプログラミングで代表的なサービスが「Scratch」です。
無料で利用することができるのでお試しにやってみるのもいいですね。
頑張ればこのようなゲームを作ることができるかも?
チャレンジやスマイルゼミなど、様々な通信教育がありますが、大抵はタブレットだけを使用したプログラミング教育がほとんどです。
その中でレゴを使ったプログラミング教育をしているのがZ会です。
現役エンジニアである僕もこれはやってみたいと思いました。
Z会プログラミング講座 with LEGO® Education

なぜ、レゴを使ったプログラミング教育をオススメするのか?
僕のこれまでのプログラミング経験に由来するのですが、システムを作った時の感動はリアルに体感できるものの方が大きいです。
例えば、お台場のガンダム。
これをプログラミングできるとしたら、あなたならどちらの方がワクワクしますか?
A.パソコンのガンダムが動く
B.お台場のガンダムが実際に動く

Aのパソコンのガンダムは仮想世界なので自分の好きなように世界を構築することが出来ます。
でも、どちらかしか選べないのであれば、僕ならBを選びます。
Bはリアルな世界なので仮想世界より刺激が大きいし、何より他の人とのコミュニケーションをとりやすい。
親と子のコミュニケーションをとるツールとしても有効だと思うのです。
タブレットで一緒に勉強するのと、レゴを使って勉強するの。
どちらが子供とのコミュニケーションが生まれるでしょうか?
原体験というのは結構記憶に残るものです。
せっかくの機会ですから、嫌々やるのではなく、楽しみながらやっていきたいですね。
まとめ
プログラミング教育とはプログラミング的思考を身に付けること。
プログラミング的思考とは論理的に考える力のこと。
プログラミング教材はロボットを使うものと使わないものの2種類。
どちらもパズルのように記号を組み合わせることでプログラミングする。
オススメする教材はリアルな体験ができ、コミュニケーションが生まれるもの。
