ビスケットのあれこれ

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

コンピュータサイエンス入門「シミュレーション」のやり方

2015-07-31 10:36:07 | 1
ビスケットを使ったコンピュータサイエンス入門の授業「シミュレーション」が出来たので,その原稿をここに載せます.小4くらいから大人までで,ビスケットを触ったことがない人を対象にしてます.45分です.親子で参加してもらうと,教え合ってくれて楽ですし,その後の家庭での発展も期待できます.作業自体は簡単なので,実際のイベントでは小1くらいの子どもから参加してました.本人がどれだけ分っているかは不明ですが,親が一緒であれば大人への啓蒙という意味で良いと思います.

ご自由に真似てご活用ください.
このリンクで制作すると同じ環境になります.



1. 鉛筆ボタンを押して棒人間を描いて下さい.描き終わったら丸ボタンを押します.


2.描いた絵は部品になります.棒人間を何人もステージ(四角いところ)に置いて下さい.


3.めがねをもって来て,2つのまるのなかにそれぞれ棒人間を入れます.すると,棒人間は動き出します.


4.めがねの中の絵がズレ方で絵の動く方向と速さが変わります.では,棒人間を横に動かして下さい.(めがねの右側の棒人間を右にズレるように置く)


5.また,鉛筆ボタンを押して,元気のない人を描いて下さい.


6.元気のない人をステージに一人だけ置いて,上に動くようにしてください.


7.問題を出します.最初に描いた棒人間は健康な人です.元気の無い棒人間は風邪をひいてます.では,健康な人と風邪をひいた人がぶつかると,風邪がうつる,というめがねを作って下さい.


8.ヒントはこれです.これで,健康な人と風邪をひいた人がぶつかると,という意味になります.このめがねの右側はどうすればよいでしょうか.


9.こういう間違えをする人がいます.これは健康な人と風邪をひいた人がぶつかると,一人の風邪をひいた人に変わるという意味なので,人が一人減ってしまいます(めがねに×がついているのは,絵の数が左右で違っているという意味です)


10.これも間違えです.これは健康な人と風邪をひいた人が一緒に動くという意味です.


11.正解はこれです.これで,健康な人と風邪をひいた人がぶつかると,二人とも風邪をひく,という意味になります.


12.このまま走らせると,このように風邪をひいた人が一カ所に固まってしまいます.


13.この「クルン」という引きずるボタンを押すと,絵の端をもって絵を引きずることができます.


14.風邪がうつるめがねの右側で,風邪をひいた人の足をもって少しずらして,絵が斜めを向くようにします.


15.そうすると,風邪をひいた人は広がって進むので,感染の威力が増します.健康な人の数をふやして実験してみましょう.


16.では,病院を建てて下さい.(最初はあえて,これ以上の説明はしません.少し間をおいて分らない人のために)
まずは,病院の絵を描いて,それを置いて,病院のめがねをつくればいいんだね.病院のめがねは,風邪の人の病気を治すってことだよ

17.これは良くある間違えですが,これだと病院が消えてしまいます.×がついてますね.


18.正しくはこれです.


19.走らせるとこのようになります(自由に実験をさせる,病気を撲滅させたり,一向に減らなかったり,などを体験させる).


20.(全員ができたところで)では,解説をします.この風邪がうつる,というめがねはコンピュータの中で置きていることです.モノというのは,相手にあげると自分のモノが無くなります.ところが情報は相手に伝えても自分の分は無くなりません.風邪は相手にうつしても,自分は治りません.情報というのはこのように移動ではなくて複製が基本的な性質です.情報は簡単に広がるけれど,それを消すのは非常に大変です.病院を沢山建ててもなかなか減らせられないというのはそういうことです.個人情報をネットに書き込むのは気をつけようといわれているのは,この風邪が広がるように,簡単に広がるけれども,一度広がってしまったものを消すのは非常にむずかしいからです.


21.こういう遊びを「シミュレーション」と言います.めがねを変えると感染の広がり方とか治りやすさを調整できます.いろいろな専門家がコンピュータでこのようなシミュレーションをしていろいろな役に立ててます.身近なものは天気予報とか大きな建物の設計などにも使われています.
(ここまでで開始から20分くらい)

22.今日はもう一つシミュレーションを作ってもらいます.今作ったのは一方的に風邪をひいた人が強いというものでした.今度は絵を3つ使って,対等なルールにします.3つで強さが対等になっている関係ってどんなものがあるでしょうか?ジャンケンです.みんなに,ジャンケンを作ってもらいます.

23.ジャンケンの作り方は.まず絵を3つ描きます.グーとチョキとパーですね.それから,それを動かすめがねを作ります.グーが動く,パーが動く,チョキが動く,とめがねが3ついります.ぶつかるめがねも作ります.グーとチョキがぶつかると,グーの勝ちなので2つともグーになるというものです.ぶつかるめがねも3つ必要です.合計6つのめがねですね.ステージにはグーとチョキとパーをそれぞれ5つくらい置きます.それで走らせてみて下さい.

24.(分らない子のために,作っている様子を見せる.ただし走らせない)


25.(走らせると,最初はバランスが取れているけれど,バランスが崩れると1種類の絵だけになってしまう.走らせるたびに結果が変わる)

26.解説します.最初に相手を滅ぼしてしまった手は必ず負けます.たとえばグーが頑張ってチョキを滅ぼしてしまったとすると,パーにとって天敵のチョキがいなくなるので,最後はグーが負けてしまいます.作っているうちはこんな結果になるとは想像できなかったですよね.だけど,このジャンケンのルールをよく見ると,当たり前のことです.本当は走らせる前に気付いていてもおかしくはなかったのですが,走らせて初めて気付きました.シミュレーションでは,こういった走らせて初めて気付くということが結構あるんですよ.人間の思考の補助としてのコンピュータの重要な役割です.もっとプログラミングができると,本格的なシミュレーションができるようになりますよ.

27.ではあと5分くらい残っているので,後は自由に遊んで下さい.どうもありがとうございました(ここで40分).




二進法を縦に書く

2015-07-03 08:05:45 | 1
二進法をビスケットで作ってもらうとき,こういう間違えをされる方がいらっしゃるんですよね.

下のめがねで1+1=10となる部分ですが,本当は1と1が重なっている場所に0が来るようにしないとダメです.
正解は

これです.

二進法がビスケットでこんなに簡単に表現できるのは,桁という発明のおかげです.桁は漢数字には無いですよね.0のおかげで書ける方法というか.桁をきちんと意識して作らないといけないわけです.

もう1つビスケットの欠点として,めがねは横に丸が並んでいるということもあります.めがねは変化を表現してますが,横に並んでいるために横方向の変化を意識しにくい書き方です.縦方向の変化はみて一発でわかるのですけれども.
たとえば,これだと

魚よりロケットの方が変化がわかりやすいですよね.

ということで,二進法も縦に書きます.

これだと桁を間違わないですよね.新しい1が次の桁に生成された感じがします.

パクパクも

になりますね.

ビットマップディスプレイの衝撃

2015-07-01 12:38:54 | 1
大人向けの講座が終わりまして,びっちりのお客さんに来ていただいたのと,その内1/3が女性だったということで,楽しく華やかな講座になりました.ネットが切れるてきなトラブルもなかったですし.途中で二人ペアになってとトランプで遊ぶワークを入れたのですが,うまい具合に男性と女性がペアになって楽しそうで羨ましかったですよ.

講座が終わって,昨日あたりから,こういう話もすれば良かったかな,というのがいろいろと浮かんできたので少しブログに書いていこうと思いますね.

一つはビットマップディスプレイは完璧なデバイスであるって話です.僕が最初に触ったコンピュータはマイコンと言ってましたが,テレビに繋がないで,数字が表示されるLEDが並んでいたやつですね.7本の棒が「日」の字に並んでいて,それをつけたり消したりして数字を表示します.

これは数字で45ですが,デジタル時計でも使われてますよね.これを頑張ってアルファベットを表示する方法を考えた人がいます.

ABCですけど,Bが8と区別がつかないので小文字にしてます.これくらいならいいですが

Sは5と区別できないので,点を光らせてます.すごい苦し紛れですね.こういうやりかたはどれくらい使われていたのでしょうね.

そのあと,テレビ画面に表示するようになって,ドット絵という表現になります.ドット絵もすごかったですね.四角い点で目を書いているだけなのに,楽しそうにも悲しそうにも見せられるんですからね.

で,色がもっと自由に使えるようになって,ドットも細くなってきて,とうとう写真が表示できるようになりました.

僕はビットマップディスプレイが出た時の衝撃,これさえあればデバイスはもう完璧じゃないか,と思ったのですが.

そのあとは,物凄い大きなサイズの写真データを1/10のサイズにするMacの専用ボードだったり.それからコンピュータはどんどん早くなって,ネットとwwwの発明もあって,画面の上で動画が表示されるようになるわけですが.ハードウェアは着々と進化して,動画もなんの問題もなくなりました.全編CGだけで映画が作れるようにもなりましたね.もう10年以上も前からですよね.

こんな進化の先どうなるのか,と考えると,あとは人間の発想が残された問題になります.ハードウェアではないです.

同じ話は,CDが出た時にも思いました.僕はその頃ブラスバンドでチューバを吹いてましたが,CDの話を聞いた時,もう楽器いらないんだ,と思いましたもの.数字をたくさん並べさえすればどんな音楽でも作れる時代になるんだと.

一休さんの虎退治じゃないですけれど,あなたの欲しい音楽を言ってくれれば,僕はそれを作れますよ,ってことなんです.ビットマップディスプレイがあるので,どんな映画だって作れますよ.0と1を並べさえすればいいんですから.

昔,山に10年こもって,石仏を彫ったお坊さんの話がありますが,それくらいの根気があれば0と1からなんでも作れそうですよね.

ここで一番重要なのは,自分が欲しい音楽とか映画とかを頭の中でイメージできるか,ということです.まずそれがあって.で,イメージできたとしてそれをどうやって0と1で表現するか.ここで実時間の領域に直接落としてしまうと,それこそ今のCGで作られた映画のように大勢の人間がすごいアプリを駆使して作ってゆくことになるのだと思いますが.

僕はここにまったく違う視点を入れられるんじゃないかと思っています.それがプログラミングということなんですが.プログラミングといってもCGソフトを自分で書けって話ではないですよ.ビスケットでメガネを2つ3つ作って動かしたら,いつまで見てても飽きない動きが得られるわけです.その動きを一コマ一コマ手で作ったらそれこそ大変ですが,動き全体の世界のルールを決めてあとはそれに従って動いてくれればよいということです.プログラミング言語のもっとすごい発展させた技術を使うと,ものづくりの視点の軸が全然違ってくるんですよ.

映画だったら登場人物の性格をあらかじめ入力しておいて,そこに起きる事件を入れると自動的にお話ができてゆくってことですかね.CGや音声合成だったら不自然さを消すのが大変かもしれませんが,小説くらいはなんとかなるかもしれませんし(実際,人工知能研究で最近挑戦されてますね).もっと制約して和歌だけの文通で表現するドラマとかだと全然ばれないかもしれないです.そういう生成を全自動でやるというのはコンピュータは得意ではないです.そうではなくて,やれることを全部単機能として外に見せて,それを人間が専用のプログラミング言語でプログラムして,動いた結果が小説ってことです.生合成をとったりとか,口調を整えたりとか,表現の面倒な部分は人工知能にやらせて,人間はプログラムで全体をコントロールする感じ.