Scratchのプログラミングモデル

長男が最近ゲームがうまくなってきていろんなゲームがあそべるようになってきたのと、先日Pyonkyでゲームっぽいものを作れるのを見せてあげたせいか、かなりモチベーションが上がったらしく自分でゲームが作りたいとしきりに言いだした(プログラム授業の学生とモチベーションの上がりかたが似ているのがおもしろい)。もともと小学生になってから家の近くで開講したIT塾的なのにロボット作りコース(LEGO WeDoを使う低学年向けの入門コース)に通わせていたので、おなじく低学年むけのゲームプログラミングコースに切り替えてみようかと、その体験授業を受けてきた。

Scratchを使ってプログラムを覚える授業。作る題材はゲームプログラミングとしているけど個人の興味やレベルに応じてさまざまになるとのことで、コース変えを相談したロボットコースの先生とは絵が描くのが好きだから最初はアニメーションが動くようなのがいいんじゃないか…と話していたんだけど、当人はゲーム作る気まんまんでキャラや背景の絵をたくさん描いて臨んでいた。小2にScratchを初めて触ってプログラムさせる授業でどこまでできるのかな…と不安に思っていたところ、意外と当人の思い通りにことが進んだらしく、持ち込んだ紙に描いたキャラクターと背景を読み込んでカーソルで動かす、というところまででいて大満足のようだった。コースは来月から変更ということに。

子供が教わって作ったScratchのプログラムをあとで見せてもらったら、イベントドリブンなプログラムモデル(「もし←キーが押されたら〜」「もし→キーが押されたら〜」などのイベントにひもづくプログラムのブロックが並列した書きかた)になってた。僕が試しに書いたものはプログラムスタート(緑の旗が押されたとき)からループでキャラの移動やフラグの処理をしていくコードにしていて、これだと機能を増やすたびにフラグを新設しないといけないから教えるの大変だな…と思っていたので眼からウロコだった(Scratch知らないだけなので実際は教科書的な組み方なんだろうけど)。