こんにちは、本多です。
このブログでは、プログラミングや教育のことについて書いていきます。
さて今回は、マインクラフト(以下マイクラ)を用いたプログラミング教育の長所について書いていきます。
本校では、「メイクコードコース」というコース名で、マイクラを用いた授業を行っています。主に小学生を対象としたコースで、ひらがなが読めればできるくらいのレベルから、自分でテトリスを作成するくらいまでのレベルを学ぶことができます。
マイクラって何?
ではそもそも、このマイクラとは何なのでしょう。
マイクラは2009年にリリースされたゲームです。
サンドボックスと呼ばれるゲームジャンルで、プレイヤーがその世界に物を自由に配置することができるのが特徴です。
サンドボックスの機能を用いた建築だけでなく、RPGのようにボスを倒したり世界のいろいろな所を探検したりなど、人によって様々な遊び方で楽しむことができます。
現在ではほぼすべてのゲーム機や端末で遊ぶことができ、全世界での売り上げは3億本を突破しています。
このマイクラには様々なバージョンがあり、主にJava版・統合版・教育版の3種類があります。
このうち、教育版でのみ使用できるMakeCodeという拡張機能があります。
これは、マイクラ内でプログラムを作成し、それを実行することでマイクラ内に物を置いたりすることができます。
以下の画像のように、エージェントと呼ばれるロボットがプログラムを実行し、物を置いていることが分かります。
教育の長所を考える とは
さて今回の記事の主題は、このマインクラフトを用いたプログラミング教育の長所でした。
これは、プログラミング教育の目標を達成するにあたり、どういった教材が良いかについて考えることと同義です。
このことについては前回の記事である、プログラミング教育の目標から類推することで導き出すことができます。
プログラミング教育の目標の中でも中心となる「プログラミング的思考」は、以下のような活動ができるようになることであると説明を行いました。
①やりたいことがある。(問題と捉えてもよい)
②それを実現する、動きの組み合わせを考える。
③動き1つ1つを対応した記号に置き換え、組み合わせる。
④論理的に考え、意図する活動に近づくように②③を改善していく。
つまりは、この4項目を行えるかどうかが教材として重要であると考えられます。
マインクラフトがこれらを行うことができるかどうか、確認してみたいと思います。
4項目を使ってマイクラを確認する
「①やりたいことがある。(問題と捉えてもよい)」
文科省はプログラミング教育の手引きにおいて、プログラミングするにあたっては、どのような動きをさせたいかの意図を明確にすることが重要であるとしています。例えば、目に見えない動きや抽象的な動きなどはイメージがしづらく、それに伴って意図を明確にすることも難しくなってしまいます。
マインクラフトにおいては、置くブロックの場所が3D空間上で確認できたり、プログラムによって動くロボットがアニメーションで動いていたりと、課題の内容を明確に示すことができます。よって、生徒は意図を明確にしてプログラムを作成することができます。
「②それを実現する、動きの組み合わせを考える。」
これは、①のやりたいことを複数の動きの組み合わせに分解しやすいかが重要であると考えられます。例えばマリオみたいなアクションゲームを作りたいとします。しかし、マリオの動きだけでも、「左右移動,慣性,重力,頭の当たり判定,足の当たり判定,アニメーション,ジャンプ,ゲームオーバー」などなど、無数にプログラムを作成する必要があり、またこれらの動きは他の動きと複雑に絡み合っています。しかし、そういった問題をすべて解決することは難しく、初学者がプログラミングを学習していく上では不向きとなります。より明確に動きの組み合わせに分解しやすいことが必要です。
マインクラフトにおいては要因が複雑に絡むことが少なく、作成するパーツごとに動きを分解して考えやすいのが特徴です。
例えば以下の画像のようなものを作成するにあたっては、顔のパーツごとにプログラムを作成すれば良いことが容易に想像でき、もっと細かい単位で言えば、長さが2~4の棒を置き、次の場所へ移動するという動きを組み合わせれば良いことが分かります。
「③動き1つ1つを対応した記号に置き換え、組み合わせる。」
これは、動きと記号が1対1対応していることが重要です。先の例でいえば、マリオのジャンプという動きに対応した記号はないことがほとんどです。実際には上下に移動するという動作とその移動距離が高速で実行,変化することでジャンプという動きが行われています。
しかし、移動距離が高速で変化していることを、②の段階で1つの動きとして捉えることは困難であり、捉えることができなければ作ることができなくなってしまいます。
マインクラフトにおいては、そのゲーム内でできる動きはすべてプログラムで実現可能であるため、かならず1対1対応で記号に置き換えることができます。
また、記号の文言は日本語として自然に作られているため、容易に置き換えることができます。
「④論理的に考え、意図する活動に近づくように②③を改善していく。」
これは、実行した際に間違いであることや間違った場所が分かりやすいこと、そしてプログラムを変えると明確に動きが変わることが重要です。
実行した際に間違いであることが分かりやすいようにするには、間違った際にエラー表示が出たり、間違ったものが生成されることが必要です。マインクラフトにおいては、画面上にエラー表示が出るほか、当然違う場所でブロックを置けば、違った形でブロックを置くことになります。
また、プログラムを変えると明確に動きが変わることについてですが、「当たり前だろ」と思われる方もいるかと思います。しかし、種類によっては、内部では変化があっても見た目には現れないものも多く、そういった場合、プログラムを変えたのに見た目が変わっていないということも往々にしてあります。そうなると、プログラムを変えるという行為と出力が結びつかないため、論理的に改善していくことが不可能となってしまいます。マインクラフトにおいては、プログラムを変えると当然ブロックが置かれる場所が変化するため、明確に動きが変わっていることが分かります。
おわりに
以上のように、マインクラフトが①~④すべての項目を行うことができることがお分かりになられたかと思います。
カリキュラムを作成するにあたり、様々なプログラミング教育用アプリを試しましたが、これらを全て満たすアプリはマイクラの他にはないと考えています。
よって本校では、マインクラフトをメインの教材として用いており、実際にこの特徴によって多くの生徒がプログラミング的思考を会得してきました。
この記事は以上となります。
今回は、マインクラフトを用いたプログラミング教育の長所について解説しました。
授業において教材を使う際には、その有効性や必然性について議論が行われる必要があります。また、教材に振り回されて授業をするのではなく、その教材の長所・短所を理解し、長所のみが発揮できるような授業をつくらなければいけません。
マインクラフト以外の授業を作る際にも、それを守って作り続けていきたいと思います。
次回は、スクラッチを用いたプログラミング教育の長所と短所について解説していきます。
ここまでお読みいただきありがとうございました。
(文責 本多)
画像は、Minecraft:Education Editionを用いて撮影されています。