ビスケットのあれこれ

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

なぜプログラミング教育を必須にすべきか

2010-06-07 23:33:03 | 1
ビスケットを子どもや大人に教えてて,面白いのは,反応がほとんど同じだということ.この点を少し考察してみよう.

ビスケットをやっていて最初の壁は,相対座標の理解である.これは,ラジコンカーを操縦することと同じなのだが,絵が上に動くというプログラムがあったとき,その絵を逆さまに画面に置いたら下に動く.絵にとっての上,ということなのだが,これが一つの壁である.ここは理系の大人ならまあすんなり理解できるところだ.

ところが,2コマのアニメーションは理系であっても難しいようだ.

まず,A->Bというプログラムをつくって,画面上のAの絵がすべてBに書き換わるのを見せる.ここで「Bの絵をAに書き換えるにはどうしたらよいか」とたずねる.すると,多くの人は,いまのプログラムを壊して,AとBの位置を入れ替えたものを作る.B->Aが出来たので,画面上のBはすべてAに変わる.しかし,先ほどのA->Bを壊してしまっているので,Aのまま動かない.で,またAをBに変えるように言うと,いま作ったB->Aを壊して,A->Bを作るので,AはBに変わるけれど,Bのままだ.

つぎに,「くり返しA,B,A,B,A,Bと動かすようにするにはどうしたらよいか」をたずねる.ここでかなり頭をひねるみたいだ.いろんな試行錯誤をした後で,もう一つプログラムを作る,ということに気付く.つまり,A->Bを壊さずに,新たにB->Aを追加するという,ただこれだけである.

おもしろいことに,この一連の反応は子どもも大人もそんなに変わらない.

大人でもすぐに答えが出せる人がいるが,その人はコンピュータプログラムの本質を理解している人である.理系であっても単にプログラムを書けるだけでは見つけられない人がいる.

彼らは,どのように考えているのだろう.

最初のA->Bから,Aが全部Bに変わったことは,ビデオのリモコンのような遠隔操作という解釈をしているのだと思う.A->Bはリモコンのボタンを押したことに相当する.なので,A,B,A,B,..と続けて動かすには,リモコンのボタンを順番に押し続けなければならない.

ところが,A->B,B->Aという2つになったとき,これはボタンを押すのではなく,動作の規則を記述した,ということに変わる.これがプログラミングである.AのときにはBに変わる,BのときにはAに変わる,という規則があり,それにしたがってA,B,A,Bと連続して動き続けるのである.

実は記述によって動作の規則を決めている,というものは結構多い.
身近なものとしては,電子機器などの取扱説明書である.箱から出して,どのようにケーブルをつないで,どのスイッチを押して,XXしたいときにはこれをして.

記述によって動作の規則を決めることは,現代を普通に生きて行くためには非常に重要な能力なのである.

一方で,この一番基本の部分である理解が,子どもと大人とそれほど変わらないということは,人間が普通に生きていても,自動的に獲得できない能力である,ということを示している.

マニュアルが読めない人がいるから,分かりやすいマニュアルを作るべきだ,という議論がある.もちろん分かりやすいマニュアルを作るべきだけれど,その基礎能力である「プログラミング」を全員が身につけられるようにするという改革も重要であると考える.

ビスケットでいうと,最低でも30分あればそこは何とか伝えられる.ただし,さくっと答えを教えてしまうのではなくて,すこし頭をひねってもらって,自分で考える,ということをやって欲しい.その方がより深く頭の中に刻み込まれる.マニュアルの読み方だけじゃなく,いろんな装置たちともう少しうまく付き合えるような人生を送れるのではないか,と思ったりする.

そんなわけで,小学生だけじゃなくて,中高大学生はもちろん,大人もみんなビスケットをやるのがよいと思う.