特集

小学6年生がJavaScriptでRPGをハック? ~小金井市立前原小学校での特別授業をレポート

小学3年生は「Scratch」でマイクラをハック

前原小学校の6年生の卒業記念授業として、未踏スーパークリエータ認定の寺本大輝氏の講演が行われた。左が前原小学校の松田孝校長、右が寺本大輝氏である
最初に6年生全員がホールに集まり、寺本氏の講演をきいた

 2017年3月10日、東京都小金井市立前原小学校で、6年生を対象にした寺本大輝氏の講演とプログラミング体験授業が開催された。寺本大輝氏は、2015年度未踏スーパークリエータに認定された、いわゆる天才プログラマの一人で、ハックフォープレイ(株)の代表でもある。

 前原小学校は、2016年に赴任してきた松田校長の肝いりにより、1年生から6年生までの各学年に応じた、PCやプログラミングに関する授業を積極的に導入していることで有名であり、今回の授業はこれまで6年生が総合的な学習の時間を使って学習してきた、キャリアに関する授業のまとめとして行われたものだ。

RPGをハックしてクリアしていくだけで自然にJavaScriptを学べる「HackforPlay」

寺本氏は高専に進学した16歳の時に初めてプログラミングに触れ、とても楽しかったという。そのプログラミングの楽しさをゲームにしたいと思い、「HackforPlay」を作った

 寺本氏が開発した「HackforPlay」は、子ども達がゲーム感覚で楽しみながらプログラミングを学習するためのプラットフォームであり、RPG仕立てになっていることが特徴だ。「HackforPlay」では、その名前の通り、ゲームのプログラムを自分で書き換える(ハックする)ことで、そのままでは倒せない強大な敵を倒すことができる。ゲームを攻略していく過程で、子ども達は自然にプログラミングを学習できるのだ。

 寺本氏は、高専に進学して、初めてプログラミングに出会い、その楽しさに夢中になったという。そのプログラミングの楽しさをゲームにすることで、すべての人々がプログラミングを楽しんでもらいたいという思いで、「HackforPlay」を作ったのだ。

 「HackforPlay」は、攻略の仕方が1種類ではなく、さまざまな方法で攻略できることも特徴だ。たとえば、ラスボスのドラゴンはそのままでは太刀打ちできないが、プレイヤーのHPを思いっきり増やせば勝てるようになる。それ以外にも、ドラゴンのHPを最低にしたり、ドラゴンの背中側に回り込んでも、ドラゴンを倒せるのだ。

 ラスボスを倒した後は、ステージを自由に作り替えることや、一から新しいゲームを作ることが可能であり、できたステージやゲームは広く公開できる仕組みになっている。すでに600以上のステージが公開されているが、そのほとんどは小学生が作成したものだという。「HackforPlay」で学ぶプログラミング言語は、言語体系がわかりやすく実用性も高いJavaScriptなので、子どもだけでなく、プログラミングを学びたいと考えている大人にも適している。

 通常、JavaScriptでプログラミングを行う場合は、プログラムコードを手で一から書いていく必要があるが、「HackforPlay」では、ゲームでよく使われるアイテムや敵などのアイコン(アセット)が並んでおり、アイコンをクリックするだけで、そのプログラムコードがプログラムエリアに取り込まれることが特徴だ。アセットを組み合わせることで、オリジナルゲームも、比較的簡単に作成できるのだ。

 また、「HackforPlay」はWebブラウザー上で動作するため、インストールの必要なく、無料で誰でも使えることも魅力だ。こうした特徴により、「HackforPlay」の利用者数は右肩上がりに増えており、ワークショップなども各地で開催されている。

「HackforPlay」の解説を行っている寺本氏。画面はオーソドックスなRPGのようだが、ダンジョンの中に落ちている魔道書を拾うことで、ゲームのプログラムをハックできる
ラスボスのドラゴン。ドラゴンのHPは上の赤いバーで、プレイヤーのHPは下の青いバー。ドラゴンは攻撃力も高いので、そのままでは瞬殺されてしまう
そこで先ほど拾った魔道書を使って、プログラムの中身を書き換える(ハックする)。たとえば、プレイヤーのHPを書き換えて999999999にする
プレイヤーのHPを999999999にすれば、さっき瞬殺されたドラゴンも倒せるようになる
ドラゴンを倒す方法は他にもある。ドラゴンのHPを書き換えて1にし、プレイヤーの初期位置をドラゴンの後ろ側にしてやる
そうすると、ドラゴンは前方にしか炎を出せないので、無傷でドラゴンを倒すことができる
ゲームをクリアすると、自由にゲームのステージを作ることができるようになる。右側に用意されている階段やハート、爆弾などのアセットをクリックするだけで、そのコードが左側のプログラム画面に読み込まれる
自分で作成したステージは、公開することができる。現在、600を超えるステージが公開されているが、そのほとんどは小学生が作成したものだ

10分程度でラスボスを撃破する生徒も

ホールでの講演のあと、6年生はそれぞれの教室に戻って、1人1台ずつ与えられているPCを使って、「HackforPlay」の実習を開始した。最初に寺本氏が始め方だけを解説した

 今回の授業は2部構成となっており、前半が寺本氏による講演、後半が実際に「HackforPlay」を利用したプログラミング体験学習となっていた。「HackforPlay」は、独学で進められるように設計されており、前原小学校の体験学習でも、最初に寺本氏がゲームの始め方だけを解説し、あとは生徒が各自のペースで攻略を進めていく形となった。

前原小の生徒はPCの操作にも慣れており、次々と「HackforPlay」のステージをクリアしていた

 前原小学校の生徒達はPCの操作に慣れており、「Scratch」や「Code Monkey」などに触れた経験があるためか、あっという間にステージをクリアしていき、開始から10分程度でラスボスのドラゴンを撃破する生徒もいた。この速さには寺本氏も驚いたようで、『宇宙で一番速いクリアだよ』と賞賛していた。

 生徒はみな集中して「HackforPlay」に取り組んでおり、どうしてもわからないことやトラブルが起きた時のみ、寺本氏のサポートを受けていた。また、クリアした生徒が、まだクリアしていない生徒を教えたり、友達同士で相談しながら、クリアしていく生徒もいた。松田校長も、『まさにアダプティブラーニングですね』と、そうした様子を満足げに見ていた。

松田校長と6年生の各担任が見守る中、生徒は集中して「HackforPlay」に取り組んでいた
寺本氏や松田校長が各クラスを回って、生徒をサポート

 実習時間は1時間程度であったが、半数以上の生徒がラスボスを撃破し、その後のステップである、オリジナルステージやオリジナルゲームの作成にチャレンジしており、オリジナルステージを完成させ、公開している生徒も何人かいた。

 最後に、寺本氏が各教室を周り、『みなさん、とても進めるのが速くて素晴らしいです』との講評を述べて、今回の特別授業は終了したが、生徒たちに感想を聴いたところ、とても楽しかったというコメントをもらった。

開始から10分程度で、ゲームをクリアする生徒が登場。そこで、クリア後の課題の進め方について、寺本氏が解説した
生徒同士で相談したり、教えあったりしながら、実習は進められた

小学3年生は「Scratch」でマインクラフトの世界をハック

前原小学校では、1年生から6年生までPCやプログラミングの授業を取り入れており、取材日にも、3年生を対象にしたマインクラフトの世界を「Scratch」によるプログラミングで操る授業が行われていた

 また、特別授業とは別に、取材日には通常の授業として3年生を対象にした「Scratch」の実習が行われていたので、そちらも簡単にレポートする。これは、Raspberry Pi 3で動作する「Minecraft Pi」と「Scratch2MCPI」を利用することで、「Scratch」とマインクラフトを連携させ、マインクラフトの世界を「Scratch」によるプログラミングで自由に操るというものだ。ブロックを1つ置くコマンドを2重ループの中に入れて、X座標とY座標を変えながら実行させることで壁を作るというのが、今回の授業の目的だ。

 こちらも、すいすいと課題をクリアする生徒が多く、前原小学校の生徒のプログラミングスキルの高さに驚かされた。

「Scratch2MCPI」というプログラムを利用することで、「Scratch」とマインクラフトを連携させることができる
課題とそのヒントが黒板に書かれていた。生徒たちはそれを見ながら、「Scratch」によるプログラミングに取り組んでいた
二重ループで座標を変えながら、ブロックを並べていくことで、壁を作るプログラムの例
この授業では、PCではなく、Raspberry Pi 3を使っている