僕は子供へのプログラミング教育を主張する前に,プログラミングが家庭に入るというストーリーを先に展開すべきだったのかもしれません.プログラミングが家庭に入って十分その魅力が浸透した後であれば,何の抵抗もなく教育にだって取り込まれるはずですから.
家庭に入るということは,たとえばよくある例はビデオの予約録画とか部屋の灯りを自動で付けたり消したりということを思い浮かべますけど.その程度じゃ誰もがプログラミングをやってみようかしら,とはならないですよね.今までになかったような面白い例をいろいろと思いつかないと,道のりは遠いです.
どうやって面白い例を考えてゆくか.その一つの作戦がプログラミングの粘土性をもっと引き出せるようなシステムを作って行くということになるかと思っています.
前もこの例をご紹介したかと思いますが,新しいビスケットからできるようになったランダムな動きを説明します.
このように二つのメガネを用意します.上のメガネはカニが横に進む,下のメガネはカニは止まる,です.このように同じ部品に対して複数のメガネがあって,それぞれのメガネの左側の部品が正確に同じ向きを向いている場合,メガネはランダムに選ばれて実行します.この場合「カニは進んだり,止まったりする」という読み方ができます.
どのように動いているか動画でご紹介しましょう.
このようにとてもカニらしい動き方をします.
このプログラムを,普段は僕は「動いているメガネと,止まっているメガネを作ると,カニっぽい動きになるよ」と教えていました.ところが,ある幼稚園の先生が年長さんに対して,教えずに「カニっぽい動きを作ってみて」と言っただけでやらせてみました.ちなみに,その時はお化けの絵で,メガネを複数つかうとお化けがユラユラ動く,というところは全員ができています.30名くらいの園児の大半は,右に進む,左に進む,上に進む,などを適当に組み合わせて楽しい作品を作ってくれてました.ところが,何人かがこの「止まる」というメガネいれて上のような動きを作っていたのです.それに対するこちらからの声掛けも「すごい,カニっぽいね」になります.
そもそも,カニらしい動きというのを作れと言われたときに,時々止まるということがカニらしさのポイントである,というのは自明ではありません.我々大人にとってもです.せいぜいカニは横に動く(幼稚園ではそれすらも知らない子もいます)というくらいです.ところがいろいろと試行錯誤してゆくと,偶然,カニっぽい動きが見つかります.そのときメガネをよく見てみると「止まる」というのがあったおかげだとわかり,そこからカニっぽくするには,時々止まるのが大事と知る,という流れなのではないでしょうか.
この作り方って色々な応用がありそうじゃないですか?
粘土で作品を作るときも,美大の先生は「形を手で作ろうとするな.粘土から形を探し出せ」とおっしゃってました.
ちょっとクリエイティブなプログラミングをする人たちは,普通の言語でも似たようなことをやっています.なので,前に書いた「論理的思考育成を目指さない」という部分に共感していただけたのだと思います.
一方で,非常につよい反論もいただいたわけですが,その方々には,プログラミングの枠組みを広げることの価値というのをお伝えしてゆけばよいのかと思います.