こどもとIT
「マイクラ大好き小・中学校教員のためのプログラミング学習のはじめ方」研修レポート
2017年9月8日 06:00
2017年8月26日(土)に、日本マイクロソフト品川本社セミナールームにて、教職員を対象に「マイクラ大好き小・中学校教員のためのプログラミング学習のはじめ方」という研修会が行われた。実際にこの研修に参加してきたので、レポートしよう。
マインクラフトは、オープンワールドのサンドボックスゲームで、さまざまなブロックを自由な配置して世界を作ったり、自動生成される世界を探検するものだ。特に決められたゴールや目標はなく、自由に好きなことができることから、小学生や中学生を中心に流行している。マインクラフトは、パソコンやタブレットだけではなくゲームコンソールにも移植されていて、すべてのプラットフォームの販売累計が1億本を超えているというビッグタイトル。実際にプレイしている人や、子どもにせがまれて一緒にプレイしたことがある人、また、プレイしたことはなくても名前だけは知っているという人も多いハズだ。
既報の通り、2020年から小学校でプログラミング的思考を取り入れた授業が始まる。それを受けてさまざまな試みが始まっているが、マインクラフトを教育のためのツールとして使おうという動きも、海外を中心に日本国内でも広まりつつある。
今回の研修は、マイクロソフトの原田氏を講師に、教育用に特化した「マインクラフト Education Edition」と管理用の「Classroom mode」、マインクラフトの世界でプログラミングを実現できる「Code Connection for Minecraft」の紹介。さらには、実際に先生たちがマインクラフトを操作してみるハンズオンとで構成された。
今回参加された先生は8名。全員マインクラフトの経験があるとのことだった。原田氏によると、マイクロソフト主催で30人程度の規模の研修も行っているが、マインクラフトを知っている先生がだいたい8割程度、実際にプレイした経験がある先生は1割程度であるという。研修名の「マイクラ大好き…」はダテじゃなかったというわけだ。
まずは、原田氏よりマインクラフトの基本と、なぜマインクラフトを教育で活かせるのかということや、実際に日本の教育現場で活用されている実例が紹介された。本来であれば「マインクラフトでの1日の過ごし方」を操作しながらレクチャーするセッションもあるということだったが、全員が経験者ということで、そこは割愛された。
なぜマインクラフトを教育に活かせるのか?
どうやったらマインクラフトを教育に活かすことができるのだろうか。原田氏は、マインクラフトは共同作業を行うために最適なツールだと説明する。マインクラフトを通じて子どもにさまざまな課題や目標を設定させて指導し、実現させる。通常の授業であれば、子どもが行った共同作業の成果は、模造紙などで発表させることになるだろう。しかし、マインクラフトは、仮想世界であるがゆえに具体的な形にしやすい。マインクラフトで作ったものはみんなに伝わりやすい、という側面も持っていることなどが強調された。
ちなみに、研修が始まる前に特別養護学校に勤務する先生のお話を伺う機会があったが、マインクラフトを「先生と生徒がコミュニケーションをするためのツール」として活用されているとのことだった。
さらに、原田氏からはマイクラを使ったさまざまな取り組みなどが紹介された。昨年スウェーデン大使館で開催された「つくろうみんなの未来都市コンペティションin Minecraft」では、人にも地球にもやさしい持続可能(サステナブル)な「未来都市」を作ること。マインクラフトを使って、「2030年にどんな街に住んでいたいか」「人にも地球にもやさしい街にするにはどうしたらいいか」というテーマで進められたそうだ。たとえば、「山を作り植林をしたあとで、木や山をいかに壊さずに家を建てるか」のような環境にやさしい作品などが応募されたそうだ。
その後、マインクラフト Education Edition、管理のためのClassroom mode for Minecraft、プログラム作成のためのCode Connectionの簡単な説明があり、実際にそれぞれの課題を先生たちが体験するハンズオンが行われた。
マインクラフト Education Editionの特徴と活かし方
全員がマインクラフト Education Editionにあらかじめ準備されたワールドにサインインし終わると、原田氏より制限されたワールドについての説明がなされた。マインクラフトEducation Editionは、教育用に特化したブロックがあり、そのほかにもさまざまな制限をかけることができる。詳しくは後述するが、ハンズオンで使われたワールドはTNTを使った爆発祭りや、他人にダメージを与える行為ができないように作成されたとのことだ。
なお、マインクラフトに子どもがログインして行う挙動には共通点があるそうだ。ワールド内のキャラクターには名前がついていないため「お前は誰だ?」とキャラクターと本人を特定する作業から始まり、続いてキャラクター同士の叩きあいとおじぎ合戦(スニークの動作をするとおじぎに見える)。さらには、ブロックを壊しまくったり、TNT(爆薬)を使っての爆発祭り、外に出ようと頑張るなどの挙動をするそうだ。いったん爆発祭りなどが始まると収拾を付けるのが大変で、本来の学びの方向に戻すにはすごく時間がかかる。そのため、マインクラフトで授業や学習を行う際は、ワールドに入ってから15分から20分くらいの自由時間をとっておいた方がよいとのことだった。こうした行為をすべて禁止して、子どもフラストレーションがたまった状態では、爆発させたい欲求が収まらずに授業にならないこともあるらしい。
実際の授業では、子どもたちの状況を見て課題を与えることになる。中でも子ども受けがいいのが「カメラ」を使った課題とのことだ。カメラはマインクラフト Education Editionで新設されたブロック。手持ちで自分のキャラクターが見ている風景を写真に撮ることができるほか、カメラを地面に置いて自撮りや集合写真を撮影することができる。カメラで撮影された写真は、ゲーム内の「ポートフォリオ」と呼ばれるアルバムに保存される。マインクラフト内で写真を見ることができるほか、画像ファイルとしてエクスポートすることも可能だ。
授業では、子どもたちに「カメラ」を渡した瞬間にカメラ鬼ごっこが始まるそうだ。全員でカメラを持ってたくさん撮られた方が負けなのだとか。対象が女の子のときは、そういったバトル系ではなく、みんなで集まってインスタ映えする集合写真を撮るといった課題も良いそうだ。こうした課題は、一見ただの遊びのように見えるが、被写体を収めるためには視点の移動、追われたり逃げたりするためにはキャラクターの移動をスムーズに行わなければいけない。そのため、マインクラフトの操作に慣れた子どもと、そうではない子どもの差を縮めることができるとのことだった。
続いてマインクラフト Education Edition特有の教育用途のブロック、「許可ブロック」、「拒否ブロック」、「ボーダーブロック」の3つの制限ブロックについての説明がされる。
許可ブロックは、許可ブロックそのものは破壊できないが、許可ブロックの上下左右にブロックを置くことができるというもの。子どもたちがワールドを下に掘りすぎて奈落に落ちないようにあらかじめ配置しておくことや、課題を制作させたいエリアを明示するといった使い方ができるという。
拒否ブロックは、許可ブロックと同様に拒否ブロックそのものを破壊できないが、拒否ブロック上方のエリアに対しての構築、破壊が一切できなくなる。たとえば、「あらかじめ用意されている物体とまったく同じ物体を作成するプログラムを作りましょう」といった課題を出したとしよう。普通の状態では、課題として用意された物体を手作業やプログラムで簡単に壊せてしまう。こうなると課題そのものが成り立たなくなる可能性がある。しかし、拒否ブロック上に物体を作成しておけば、子どもは物体の破壊や改変ができなくなるため、スムーズに授業を進めることができるのである。
ボーダーブロックは、そのブロックの上下に見えない壁を作るというもの。授業のエリアから逃げられてしまうと困るときや、授業のエリアを制限するときに使えばよいだろう。また、子どもたちのマインクラフト内での動線を制限したいときに使うこともできる。
このほかにも、マインクラフト Education Editionでは「スレート」、「ポスター」、「ボード」といったメッセージを表示させるためのブロック。「案内係(NPC)ブロック」などを使うことができる。
ちなみに、実際に授業で使う際には先生が制限ブロックを使ったワールドを作成して、そのワールドを公開して子どもたちが使うことになる。マインクラフト Education Editionは、学校内での展開もやりやすいように考えられているのが特徴である。マインクラフトのクライアント自体は子どもも先生もまったく同じものを使うため管理が簡単だ。マインクラフトを起動する際にはOffice 365 Education Editionのアカウントでサインインする必要があるが、誰がクライアントを使っているのかはアカウントの権限で区別している。そのため、先生の権限を持つアカウントでマインクラフトにサインインすると、制限なくすべての機能を使うことができ、先生の権限を持たないアカウントのときは、ワールド内の制限が有効になるという仕組みになっている。
授業進行支援のためのClassroom mode for Minecraft
Classroom modeを利用すると、ワールドに制限をかけたり、参加している子どもの挙動を見守るなどの支援機能を使うことができる。
Classroom modeウィンドウの左側のスライダーでは、参加している子どもやワールドに対してのさまざまな制限や制限の解除を設定できる。ここでできるのは、すべての子どもの一時停止、チャットを許可するかどうか、モブ(動物やモンスターなど)を許可するかどうか、TNTなどの破壊的アイテムを許可するかどうか、落下や水中ダメージや子ども同士のダメージを許可するかどうか、などさまざまな設定ができる。たとえば、破壊的アイテムを不許可にすれば、TNTなどの爆発物がワールドに存在できなくなるので、爆発祭りで子どもが遊んでしまうことがなくなる。また、プレイヤー間のダメージを無効にすれば、子ども同士の殴り合いが始まってゲームオーバーになってしまう、といったことも防げるというわけだ。
またClassroom modeでは、マルチプレイで参加している子どもを視覚的に把握することも可能。右側のプレイヤー一覧ウィンドウには、すべての子どもが一覧表示されるとともに、マップ上でも子どもの位置を把握することができる。また、プレイヤー名をドラッグして左側のマップにドロップすれば、マップの任意の位置に子どもをワープさせることができる。さらには、参加している子どもたち全員を任意の地点に集合させたり、参加している全員に対してメッセージを送ったり、全員に同じアイテムを同じ量だけ配ることもできるようになっている。
Code Connectionとマインクラフトを使ったプログラミング学習
続いてCode Connectionとマインクラフト Education Editionを利用したプログラミング学習の紹介とハンズオンが行われた。ハンズオンの冒頭で原田氏は、マルチプレイとマインクラフトによるプログラミングと、Scratchプログラミングのようなデジタルコンピューティング、ロボットプログラミングのようなフィジカルコンピューティングを比較。マインクラフトを使ったプログラミング学習の有用性を説いた。
デジタルコンピューティングは論理を学ぶのには向いていて、自然現象の影響を受けにくい。ただし、自分の世界に入り込みやすいという欠点を持つ。ロボットのようなフィジカルコンピューティングでは、デジタルコンピューティングのように論理では表現できない部分もあり、自然現象の影響を受けやすいという欠点がある。マインクラフトはデジタルコンピューティングで学習する論理と、ロボットを使って建築をさせるようなフィジカルコンピューティングの両方のメリットを活かせるとのことだ。また、マルチプレイがプログラミング学習に効果があることについても言及していた。学校の教材としてみたときに、一人でコツコツと課題をこなすよりも、同世代の友達と一緒にできるマルチプレイの要素が備わっているのがマインクラフトの最大のメリットだと話した。
マインクラフトのプログラミング環境は、MakeCode、Scratch、Tynkerを使うことができる。いずれも教育用に開発されたビジュアルプログラミング言語だ。今回のハンズオンでは、マイクロソフトが開発したJavaScriptベースのビジュアルプログラミング言語MakeCodeを使って行われた。原田氏によると、MakeCodeの環境は一部英文の表現が残っているが、先生の意見を取り入れつつ日本語化の作業を進めているとのことだ。また、表現についても配慮が必要だという。たとえば、現在は「何かが殺されたとき」の条件判断ブロックや、「何かを殺す」というコマンドブロックがある。小中学生向けのプログラミング環境で「殺す」という表現はまずいだろうということで、日本語の表現についても細かく配慮していくそうだ。
さて、Code Connectionでプログラミング環境を起動すると、「エージェント」と呼ばれるロボットがマインクラフトの世界に登場する。マインクラフトのプログラミングでは基本的にこのロボットに対してさまざまな命令を与えることでプログラミングを行うようになっている。
MakeCodeのプログラミングは、Scratchのようにブロックを組み合わせることで行う。ブロックには、一連のシーケンスのトリガーとなるブロック、繰り返しのためのブロック、条件判断のブロック、ブロックを置いたり、エージェントを移動させるなどの処理を行うブロックなどさまざまなものが用意されている。さらに、エージェントは移動だけではなく、ブロックの配置、ブロックの検出、アイテムやブロックの回収などプレイヤーができる操作を肩代わりすることができるようになっているため、簡単なプログラミングから大規模な建築や自動採掘を行うといった複雑なプログラミングまで、非常に多岐にわたったプログラムの作成が可能だ。
ハンズオンでは、チャットコマンドで「go」と入力したらエージェントを前に1歩すすめるという基本的なコード、繰り返しのブロックを使った階段の作り方、パラメータ、変数、繰り返しを使った任意の段数の作り方がレクチャーされ、参加した先生たちは、真剣にマインクラフトと向き合いつつ、おのおののペースでプログラミングを行っていた。
最後に、実際に授業に使われることを想定したワールドを先生全員で体験した。ワールドそのものや資料をお見せすることができないのが残念だが、マインクラフトの座標系を理解して、エージェントを思い通りに動かすプログラミング手法を教えるためのカリキュラムだ。一つの問題をプログラミングで解決すると次の問題へのドアが自動的に開くというマインクラフトらしい内容で、中にはグループ全員が協力しないと問題解決できない課題もあるとのことだ。
課題の中には同じ処理を何回か繰り返すプログラムを作らなければならないものもあるが、繰り返しのブロックを使わずに、命令のブロックをその回数分だけ並べる子どもも多いという。そんなときは、「命令の数が一番少ない人が偉い」といった指導をすると効果があるそうだ。こうしたことはマルチプレイの大きなメリットだといえるだろう。一人でコツコツとプログラミングをするだけでは気づけない問題解決方法も、子どもが集まってみんなで考えれば解決できるという好例である。
なお、マインクラフト Education Editionは、Office 365 Education Edition評価版アカウントがあれば使うことができる(ただし、起動回数の制限があるほか、マイクロソフトが認める教育関係者のみ利用可能)。
余談ではあるが、筆者には小学1年生の娘がいる。マインクラフト Education EditionとCode Connectionを使って一緒にプログラムを考えてみた。算数が苦手なのでネタは算数のプログラムに決定。
ランダムに足し算と引き算の問題が出題され、結果を入力させるというもの。最初は普通のレンガブロックで文字を書いていたのだが、娘の「正しかったら爆発させたいっ!!」と言うリクエストでTNTに改良(?)。出題と結果はTNTで数字を表示させ、正解したら大爆発、不正解の時はなにも起きないというコード作ったところ、大ウケだった。結果、ずーっと爆発させて楽しんでいる。しかし、男の子も女の子もマインクラフトの爆発は大好きなんだなあ。