たかはしです。
子供向けプログラミングが人気を集めています。
手始めにビジュアルプログラミング言語「Scratch」にチャレンジするのが王道ですが、その後、どう進めていくのが良いのでしょう。多くの方が試行錯誤しています。
基本的には子供自身のモチベーションが向く方向に進むべきです。好きこそものの上手なれ、です。
例えば、プログラミングそのものをもっと深くやっていきたいのであれば、Javascriptに進んで行くのが良いでしょうし、スマホ等で動くゲーム製作にチャレンジしたいのであれば、swiftでiPhone用アプリを作ったり、Unityで2D/3Dのゲームを作るのも良いでしょう。HTMLを入り口としてWebプログラミングに入っていくのも良いでしょう。
今回、私がオススメするのは「Arduino(アルディーノ)」による電子工作です。
上記言語を使ってゲーム製作する場合、完成度の高いゲームを作ろうとすればするほど、グラフィックやBGMなどの素材(のオリジナリティ)が重要になります。これを一人でやろうとすれば、ゲームを作るなかでグラフィックやBGMに費やす時間が長くなっていってしまい、結果的にプログラミングで論理的解決を試みる時間が少なくなっていきます。うまく分業したり、フリーの素材集を活用すれば良いのですけどね。
Arduinoの場合、C言語で制御プログラムを記述し、Arduinoボードに書き込みます。Arduinoにはデジタル/アナログの入出力ピンがありますので、ここにLEDやスイッチ、各種センサを接続します。これらをうまく組み合わせて現実世界にオリジナルの作品を製作することができます。
そう、Arduinoを使えば、子供はダンボール等で工作するかのように自由に、電子工作とC言語プログラミングに親しむことができるのです。
また、オブジェクト指向による記述が前提のゲームプログラミングと違い、Arduinoの場合は手続き型で書いても十分事足ります。手続き型のプログラミングの中で、グローバル変数の使い方、関数の引数と戻り値、ループや条件分岐などの基本的な制御、配列の扱い方を覚えていく。その後、オブジェクト指向の考え方に慣れてきたらそういう記述に変えていってもよいし、他の言語を習得するときの基礎として大いに役立ちます。
Scratchでプログラミングの面白さに触れたら、次はArduinoによる電子工作へのステップアップをオススメします。