もし小学生にプログラミング教えるとしたらどうするだろうか、、

blog.livedoor.jp

1は、C言語+DirectX 基本のアルゴリズムから、というわりと苦難の道を真面目に選んでてホントに大変そう。

よくゲームプログラマーの逸話で、「ゲームウォッチやファミコンは買ってもらえなくて、PCだったら勉強になるからOKだった。」というところから、BASICマガジンなどに載ってるプログラムを写経すればそのゲームが遊べたとか、そこからどんどん改良していったとかあるんですよね。

昔の子供が「Z80扱える小学生のオレかっこいい」と考えるのと
今の子供が「Unity扱える小学生のオレかっこいい」と考えるのがだいたい同じなんではと思います。

Cの文法やら、ソートアルゴリズムよりは、とりあえず画面で何か動かしたいでしょう。極端に言えば言語じゃなくてもパイプラインとしてのUnrealのブループリントのみでゲーム作ってもいいわけで。ここからでもプログラミングの概念を学べるかと。

docs.unrealengine.comUnrealもUnityも無料で始められるし、Unityにもサードパーティからブループリントライクなアドオン有りますね。

小学生にプログラミング興味もってもらおうとしたら、「マイクラやスプラトゥーン遊ぶより、プログラムいじってたほうが楽しい」という環境を作らないといけない。これが相当ハードル高い。それこそまず、ゲーム機やスマホ、ネット禁止にしたいぐらいw

昔の子供プログラマーは、「家に友達呼んで自分が改良したゲームを遊んでもらう」という動機があったかと思います。ファミコン買ってもらえない友達とか、ファミコンない時代ならなおさら。それで楽しんでもらえるという動機があれば充分だった。改造インベーダーで満足してた時代ですからね。

今の子供プログラマーだと、友達呼んで改造インベーダーでは楽しんでもらえない。としたら、最初にGooglePlay や AppStoreで公開することでしょうか。

マインクラフトへの道は遠いですが、ただブロックを指定の場所に置くだけのシンプルな30ステージのパズルゲームとかでもいいかと。例え10分で終わるゲームだったとしても、「プロと同じステージに立つ」ことが一番の動機づけになると思います。

「ステージに立って恥ずかしい演奏をさせる」ことで、それを修正しようという動機にもなるし、それを応援してくれる人もいるし、ステージに立っただけで凄いと言ってくれる友達も出ると思うんですよね。あんなゲーム何も面白くないよ、バグだらけじゃんという友達の嫉妬さえ動機になります。

そこで始めて、あれを治そう、これを追加しようという動機になり、データの扱い方、配列の整理の仕方が重要だと気づき、そのうちブループリントじゃもう処理が間に合わないからCで書かなければ、というように勝手に学習していくかと。

そしてひとつ学んでいくごとに、ゲームをアップデートして、また一つ学んでいくごとに新しいゲームを作る。売るのが目標じゃないので、グラフィックはシンプルで構わないし、なんだったら自分で書いた落書き絵でもいいんですよね。その方が味があって埋もれない説すらある。

教える側がUnityや、Unreal知らなくても、「一緒に学んでいく」でいいと思うんですよね。知らないことを学びながら最低限できることに近づいていく。教える側が課題を出すんじゃなくて、個別指導であればそのときそのとき小学生が、ここからどう改良したいかを一緒に考えていく。

確かHTML5出力もできるはずですが、webよりはストアの方がモチベーション維持にはいいかと。確か登録にAppStoreで1万、GooglePlayで2500円とか必要だったと思いますが、まあAndroidからでも。

、、という感じで自分なら下手くそなままでいいから、「いかにステージに立たせるか」という出力から先に考えるでしょうか。

学校の勉強も何の役に立つかさっぱりわからなかったけど、社会人になってだいぶたってから「何かを読み取ったり、推測したり、客観的な思考するのにこんなに大事なことだったのか」と気付くことが多々ありましたが、そんなの学生時代にわかるわけないんですよね。

だから「社会人を経験してから、中等教育や高等教育を学ぶ」という逆の順番の方が頭に入りやすくて、プログラムも先にステージにたってから、必要性がわかってから基礎を学ぶほうが、、、、あ、ここから先は何年か前、まだスマホアプリが金にならない時代に書いたわ。

teruyastar.hatenablog.com