ビスケットのあれこれ

ビジュアル言語ビスケット(Viscuit)に関するあれこれを書いてゆきます.

プログラミングと年齢について

2014-10-16 18:36:30 | 1
ビスケットの話を色々な人にしているときに,良く聞くのが「ああ,私も子どもの頃にビスケットに出会いたかった」という大人の方の声です.そういって頂けるのは,嬉しいですけれども,でも,僕だって子どもの頃にビスケットは無かったですからね(笑)

別の話で,ある保護者の方に「子どもにコンピュータの道に進ませたいのだけれど,小さいときには何をさせればよいでしょうか」という質問もよく頂きます.それに対して,「ビスケットは専門家を目指さない人のためのものですが,もしコンピュータの専門家を目指すなら,体や指先を使った体験を沢山させた方がいいですよ」と言ってます.ビスケットをやっていて矛盾しているようですが,その理由は.

プログラムがバリバリ書けるという能力だけではその人の将来はあまり明るくありません.何かやりたいことがあって,その上でプログラムが自由に書けて,それを自分で作れる,というのが大事なのです.何かやりたいことがある人と,プログラムが書けるだけの人.やりたいことがある人が会社の経営者になって,プログラムが書けるだけの人はその人に使われることになります.最近はプログラマーのイメージが変わって来ているのかもしれませんが,昔,プログラマーといったらコンピュータには興味があるけれど,それ以外には何も興味がない,という印象がありましたよね.そういう人だとプログラマーの地位が低いままです.

地位の低いプログラマーにならないためには,もっと周りのいろんなことに興味を持つ必要があります.せっかくプログラミングというコンピュータで世の中を変えることができる能力をもっているのに,それを活かすことができないというのは勿体ない.そうさせないためにも,子どものうちはいろんな体験が大事なんだということです.

僕は子どもの頃はもの凄い田舎で,大自然に囲まれて育ったし,家の中では粘土でばかり遊んでましたし.コンピュータを初めて触ったのは16歳ですからね.遅いというか,それより前はそもそも個人で買えるようなコンピュータは無かったからですけれど.

で,最初の話に戻すと,「子どもの頃にビスケットが無かった」といった人たちは何も遅いことは無いとおもうのです.もし後悔するなら「子どもの頃にいろんな経験をしてこなかった」ということの方です.

それと,昔はプログラマー30歳定年説,というのがあったんですよね.若いときしかプログラムは書けない,という.いっぺんにいろんなことを記憶しておかなきゃ無いとか,そういうことです.古いプログラミングの技術のままだったらそうなのかもしれません.でも,プログラミングの技術は進歩してますからね.脳が忘れっぽくなっても,人間の記憶が弱くなる部分はコンピュータの得意分野です.

それよりも重要なのは,経験の豊富さによる,全体を見渡して考える力.こういうのは年を取ると,増して行くと思いますが,これこそコンピュータが弱い分野ですよね.だから年を取った方がいいプログラムが書けるようになるのです.

もうひとつ,年齢で弱ってくるのが瞬発力です.時間に関すること.たとえば,スポーツとか音楽の演奏といった時間が関係することは,年を取ると不利になります.反応が鈍ってきますし,年を取ってからトレーニングをしても中々若い人に追いつくようにはならない.

ところが,プログラミングは時間はまったく関係ないんですよね.自分が満足できるプログラムができるまではいくら時間をかけてもよいんです.どちらかというと小説を書くことに似ていると思います.

そんなわけで,いま,いろんな分野で活躍されている大人の方々にも,ぜひプログラミングをやって欲しい.そういう人たちの発想とか,作るプログラムとか,コンピュータの専門家では思いつかないようなものを期待したいですね.

プログラミング教育における面白いゲーム

2014-10-09 11:20:30 | 1
最近,続けて子どもたちにビスケットでゲームを作るワークショップを各地でやってきたので,その感想を少し書きます.

ビスケットは一般的なプログラミング言語から比べると色々な機能がありません.たとえば,数を数えることができません.なので,5匹の敵を倒したら「クリアー」というメッセージを画面に出す,といった普通のプログラミング言語では簡単にできちゃうことが,ビスケットではできません.

もちろん,ビスケットもコンピュータの上で動いていますから,数を数える機能を入れるのは非常に簡単です.1時間くらいのコーディングでできます.というか,実は隠し機能の一つとしてすでに入っています.しかし,あえて見せていません.

一方で「出来ない」ということを売りにするのはすごく難しいのですね.一般的には出来ないより出来た方がいいですから.でも,数を数えるといったことより,面白いゲームを作るということの方が大事な問題だと思うので,あえて入れていません.

面白いゲームとはどういうものか.僕は子どもたちに,「クソゲー」と「ムリゲー」はダメと説明しています.クソゲーというのは,簡単に達成できてしまうもの.逆にムリゲーというのは難しすぎて達成がほぼ無理なもの.その中間が面白いゲームだよ,という説明です.

そこで,バランスをとるとか,コンピュータの外側にルールを作るとかしだすのです.

バランスをとるというのは,ビスケットの場合は簡単で,たとえば弾が飛ぶ速さを速くしたり遅くしたりは,メガネのなかの弾の位置で変えられますが,それだけでちょうど良い難しさのゲームに調整できます.敵の数を増やしたり減らしたり.当ててはいけない障害物を適度に置いたり.この調整の時間がビスケットでのプログラミングの真骨頂ですね.

コンピュータの外側にルールを作るというのは,たとえばトランプのことです.トランプというハードウェアは数字とマークが書かれたカードです.その上で人間が遊ぶルールを決めていろんな遊び方がある.トランプは万能なゲーム装置ですね.ビスケットで作ったゲームも似たような遊びができます.たとえば,ストップウォッチを持って来て,クリアするまでの時間を測るとか,弾を発射した数は自分で数えて一番少ない弾数でクリアした人の勝ちとか.実は,この外側のルールを変えるだけで,クソゲーが面白いゲームになったりします.ルールが外側にあると,自由にハンディをつけられるので,小さい子どもと一緒に遊ぶこともできます.公園で異学年が鬼ごっこをやるときに高学年は片足だけとやるのと同じですね.ルールを全部プログラムで作ってしまったゲームはそうは行きません.

プログラミング教育の題材でゲームを使うという流派の人からすると,プログラミングの重要な概念の一つである数を数えるとか,数の大小の比較とかを教えるために,ゲームのスコアとかハイスコアのプログラムを例にしたくなると思います.そのやり方は否定しませんけど,そんなんで作られたゲームは面白くないでしょう.

そういう「プログラミング直結」な教育はちょっと脇においておいて.まずは,コンピュータで作るゲームの面白さ.プログラムを少し変えるだけでゲームが大きく変わるすごさ.アイデア次第でいくらでも答えてくれる世界の広さ.そんなことを伝えることの方が大事なのではないでしょうか.

あと,ちょっと心配だったのは,昔は放っておいても,子どもたちから面白いゲームが作られました.クソゲー,ムリゲーの説明も不要でした.ゲームに対するリテラシーがあったんだと思います.最近,そういうことが不得意な子どもを少し見かけるようになって来ました.塾で問題を解く勉強ばかりさせられていると,そんな子どもになってしまうかもしれません.時代の変化というより,そういうゲーム禁止の子どもも,プログラミングだから参加するようになってきたということなのかもしれません.そういう子どもたちを前提として,もう少し丁寧に面白いゲームの説明をして行かなきゃならないなと思いました.

ーーーーーーーー 追記
くそげーの定義が間違っているという指摘をいただきました.本文の使い方はヌルゲーと呼ぶべきものだそうです.僕は,子どもたちがそう使っているのを聞いた記憶でてっきり使ってましたが.たしかにクソゲーはもっと広い概念ですね.