小学生が学ぶビジュアル言語ビスケットがすごい

情報処理10月号では、『特集 未来のコンピュータ好きを育てる』としてコンピュータに魅力を感じる人材を育成する試みを紹介している。とても面白い特集となっているので、送付されてきたまま袋から出さずに放置してある人は是非一読する事を薦めたい。

小中学校における情報科学教育は世界的に重要視されつつある。ACMのモデルカリキュラムでは、第8学年(中学2年生)までにコンピュータ操作、デジタル化、情報の表現、問題解決などを履修し、第9-10学年で、コンピュータの構成、アルゴリズム、抽象化、数学との関連などの情報科学を学ぶ事を提言している。

ところが、現在の日本の情報教育は文字入力やWeb情報探索など、コンピュータの利用法に関する教育に終始し、情報科学をはじめとする情報技術の原理・仕組みに関してはほとんど重要視されていない。一方、韓国の情報教育 ━初・中等学校情報通信技術(ICT)教育運営指針と改訂中・高等学校教育課程━を見てみると、日本よりもずっと低い学年でかなり高い水準が要求されていることが分かる。将来の日本の情報技術を担う人材を育成する観点から言えば、より本質的な情報科学教育が求められる。

この問題に対し、政府レベルでは学習指導要領の改訂などの対策がなされつつあるが、現場レベルでは、コンピュータサイエンス・アンプラグド*1を用いた学習や小学生を対象としたプログラミングワークショップの開催などが試行されている。小学生にプログラムを教えるにあたっては、変数、関数、制御構造、アルゴリズムといった高度な概念を使わず、より直観的にプログラムを学ぶ事ができる環境が求められる。ビスケットはこの目的に特化して設計されたビジュアル言語環境である。本エントリでは特集記事7『プログラミングが好きになる言語環境*2』に基づいて、このビスケットの魅力を紹介したい。

ビジュアル言語ビスケット

ビスケットはルールベースで絵を動かすビジュアルプログラミング言語だ。図1はビスケットのプログラムと実行例を示している。画面左のステージ上の絵が画面右の2つ円が並んだルールに従って動作する。このルールは「左の絵を右の絵に置き換える」と解釈される。この例ではぶひんの魚の位置が左側にずれるので、ステージ上に魚を配置すると魚は前方に進んでゆく(魚が回転していてもルールは発火する)。ルールの発火条件となる左側の絵のマッチングは柔軟に行われため、とにかくやってみればそれなりに動くという面白さがある。



図1: ビスケットのプログラムと実行例

図2は海草にあたったら避けるというルールを追加した例である(海草には固定オブジェクト属性を付与)。これだけで魚が方向を変えつつ泳いでいくという動きが実現できるのである。単純に魚が前方に進むだけだった図1と比べると、一気にステージが賑やかになる。同じ事を少しずつ変えて繰り返すだけで、いろいろな色や形の魚が、あちらこちらの方向に向かって泳ぐようなアニメーションが作れるのだ。



図2: 2つのルールによるアニメーション

尺取り虫が進むアニメーションは図3、図4のようなルールで表現される。図3のように描いても尺取り虫は同じ場所で伸び縮みを繰り返すだけで前に進まない(座標が横にずれていれば前には進むが自然な動きには見えない)。尺取り虫が自然に動くようにするには、図4のように縮むときには頭の位置が変わらず、伸びるときには尻尾がずれないようにルールを定義しなければならない。この場合自然観察が重要となるわけで、思った通りに動かないときにどうすれば思う動作が実現できるのか試行錯誤が必要になる。





図3: 同じ場所で伸び縮みする尺取り虫



図4: 自然に前に進む尺取り虫

図5は公式サイトにアップされている、実際に児童が作成したと思われるプログラム例*3である(GOOLやCREARなどの誤字が微笑ましい)。スタートからゴールまで踊りながら赤や緑の花を集めて進む。紫の花にあたるとゲームオーバーとなる。小学生の子供でもワークショップに参加してビスケットに習熟すれば、こうしたレベルのゲームを30分程度で作成できるようになるようだ。



図5: 上級作例

魚が前方に動くような単純なアニメーションから、尺取り虫が進むような2つのルールの繰り返しにより動作するアニメーションへと進む場合に、児童は繰り返しの概念について学ぶ事ができる。複数のルールから構成され実現される手続きはアルゴリズムに他ならない。ルールは条件判断であり、キー入力によるイベント制御などの概念も含まれる。正確に上下左右に動かしたい場合には座標入力を行う必要がある(ルール記述の下方にある小さな円をクリック)。子供たちは、ビスケットを通して、プログラムの基本的な概念を自然と学ぶのだ。

Flickrにはビスケットを用いたプログラミングワークショップの様子が公開されている。熱心にコンピュータに向かっている様子が見て取れる。ビスケットの理解の速度は、大人も子供もあまり変わらないようで、むしろプログラミングに先入観のある大人の方が理解が難しい場合もあるという。自分の思いのままに絵が動いたときの喜びは格別だろう(少なくとも"Hello, World!"よりは嬉しいに違いない)。子供たちがビスケットを使ってプログラムに触れ、その楽しさに目覚めてくれることを期待したい。

*1:コンピュータの電源を抜いて(アンプラグド)行うという意味のコンピュータを使わない情報科学のこと。

*2:兼宗進, 阿部和広, 原田康徳: "未来のコンピュータ好きを育てる: 7.プログラミングが好きになる言語環境", 情報処理, Vol.50, No.10, pp.986-995 (2009).

*3:上級にアップされているプログラムの中で、それなりに破綻無く動作し、かつ、最も可読性の高いものを抽出した。