子ども向け無料プログラミング道場『CoderDojo熊本』を立ち上げて以来、毎日新しい発見があり充実した毎日を過ごしています。
そういえば、以前から申請していたCoderDojoJapanの本サイトにも、CoderDojo熊本が登録されたようです。
日本全国の記念すべき150番目、かどうかはわかりませんが、(追記:150番目ではなく148番目だったようです。)掲載された以上全国・全世界の方から見られる機会も増えるだろうし、よりパワーアップしていかねばですね。
最近はCoderDojo熊本で取り上げられるネタを絶賛収集中でして、
先日、私物のパソコンにマインクラフト(minecraft)とスクラッチ(scratch)をインストールして、連携させてみたのですが、
参考記事
これが思いのほか面白く、そして子どもが『プログラミング思考』を鍛える素材としても素晴らしいゲームじゃないかということが日に日に実感できてきましたので、今回はその紹介をしてみたいと思います。
子どものプログラム練習にマインクラフトをおすすめする理由その1 論理的思考が身につく
文部科学省によると『プログラミング思考』という定義は下記になります。
「プログラミング教育とは、子供たちに、コンピュータに意図した処理を行うよう指示することができるということを体験させながら、将来どのような職業に就くとしても、時代を超えて普遍的に求められる力としての『プログラミング的思考』などを育むことであり、コーディングを覚えることが目的ではない。]
(引用元:文部科学省|小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ))
コンピューターに意図した処理を指示できる
とさらっと書かれています。
コンピューターというのは今のところ、指示した通りに動くようになっていますので、
コンピューターがわかるように正確に、正しい順番で指示する必要があります。
例えばマインクラフトとスクラッチ(コードを知らなくてもプログラムができる)をつないでテストをしてみたのですが、
ピンクの矢印の箇所が、スクラッチ(コードがいらない子ども向けプログラム言語)で指示した箇所になります。
上から順番に説明すると、
1.緑の旗がクリックされたら
2. mcpiX ・・X軸を0にする
3. mcpiY ・・Y軸を0にする
4. mcpiZ ・・Z軸を10にする
5. blockTypeId ・・ブロックタイプを1にする
6. blockData ・・ブロックデータを0に
7. setBlock ・・ブロックを置く
となり、詳細は後ほどご説明するのですが、
大事な事は、1つずつ、1行ずつ、やりたい事を切り分けて命令する必要があるということです。
この内容では7つ(7行)しか項目がありませんが、これが多くなればなるほど複雑になってくるので、その中でもしっかりと順番を考える必要があります。
こういった方法に慣れる事でひいては、
– 論理的な説明
– 物事の抽象化
– 物事の効率化
– 問題解決能力
あたりにつながってくると思います。
これらは『ロジカルシンキング』と言われたりしますが、『ロジカルシンキング』はとても『プログラミング的』だなと感じます。
子どものプログラム練習にマインクラフトをおすすめする理由その2 立体的に考えられる
立体的ってどういうこと?
と思われるかもしれませんので実際にマインクラフトの画面を表示しつつ説明していきます。
マインクラフトは、『ブロックで好きなものを作れるゲーム』がウリなので、
まずはブロックを1つ置いてみることにします。
こんな感じです。
ピンクの矢印の箇所が、スクラッチ(コードがいらない子ども向けプログラム言語)で指示した箇所になります。
上から順番に説明すると、
1.緑の旗がクリックされたら
2. mcpiX ・・X軸を0にする
3. mcpiY ・・Y軸を0にする
4. mcpiZ ・・Z軸を10にする
5. blockTypeId ・・ブロックタイプを1にする
6. blockData ・・ブロックデータを0に
7. setBlock ・・ブロックを置く
という内容になっています。
現実世界では、
で通じちゃうと思うんですが、プログラム的にはあそこでは通じなくて、しっかりと場所(座標)を特定する必要があります。
ブロック1つといっても、初めて取り組むと結構ややこしいと感じると思いますが、つくりながらまさにこれが、『プログラミング思考』だなと感じました。
マインクラフトのプログラミングの大きな2つの特徴
マインクラフトでのプログラミングの特徴は大きく2つあります。
1. ブロックのタイプを指定する
2. 立体的に3Dで考える
1番はマインクラフトの大きな特徴ですが、
– 1番は石
– 2番は草ブロック
– 3番は土
といったように、番号によってブロックのタイプが決められています。
ブロック番号
こちらは覚える必要はないと思うので、都度調べるでいいかなと思いますが、
重要なのは2番目の、立体的に3Dで考えるということ。
先ほどのプログラムの中にも、XとYとZという3つの値がでてきました。
– mcpiX ・・X軸を0にする
– mcpiY ・・Y軸を0にする
– mcpiZ ・・Z軸を10にする
ゲーム的にいうと、
– Xは左右
– Zは前後 (または奥行き)
– Yは高さ
になるかなと思います。
Xを1ずつ増やすと、横に一つずつブロックが置かれ、
Yを1ずつ増やすと、縦に一つずつブロックが置かれ、
Zを1ずつ増やすと、奥に一つずつブロックが置かれるという事になります。
また、言語に限らずプログラミングは『繰り返す』というのが得意技なので、
例えば、
Xを1増やしてブロックを置いて、
またXを1増やしてブロックを置いて、
またXを1増やしてブロックを置いて、
というのを10回繰り返すと、横に長いブロックができる事になります。
例えばこういった壁をつくろうとしたらどうすればいいかというと、
先ほどの要領で、Xを1増やしてブロックを置いてを10回繰り返した後に、
Yを1つ増やして(1段高くして)、
Xをいったん0に戻して、
そこからまたXを1つずつ増やしつつブロックを置いて、
10個置いたらYを1つ増やしてXを0にして・・・
というのを繰り返せばいい事になります。
さらに、奥行きをつくって箱の形にしようとすれば、
XとYを繰り返して壁を作った後に、
Z(奥行き)を1つ増やしつつ、
XとYを0にしてブロックを置くのを繰り返して、
Yが10までいったらZを1つ増やして、
またXとYを0にして・・
というのを繰り返せば、箱のような形を作る事ができます。
(マインクラフト界では豆腐というそうです、まさに豆腐のような形ですね)
つまり、新しい何かを考えるときに、縦と横だけではなく、奥行きも含めて考えられるようになるという事になります。
物事を抽象化して見たり、別の角度から物事を見たり、という事が当たり前にできるようになったら、素晴らしい教育の成果になると思いませんか。
子どものプログラム練習にマインクラフトをおすすめする理由その3 創造性が育まれる
マインクラフトを始めてからというもの、
日常のいろんなシーンがマインクラフトで作れないか、という事を考えるようになりました。
例えば家族でドライブに出かけて天草に行って、2018年に開通した『天城橋』を渡った時に、
これをマインクラフトでつくろうとしたらどうなるかな。
と思ったりします。
幅がこれくらいあって、柱の数がざっとこれくらいあって、
高さがあって、アーチ型をしていて・・・
実際にマインクラフトで橋を作った人がいるかなと思い調べると、やっぱりいますよね。
どちらも動画も1こずつブロックを積み上げて橋を作っていて、
それはそれで面白いとは思うんですが、せっかくプログラムを練習しているなら、できるだけプログラムで作り出したいですよね。
ほかにも雰囲気が良かったレストランとかホテルとかね、
現実世界で目に見えるいろんなものが題材になりえるので、日常的に頭の体操ができますよね。
子どものプログラム練習にマインクラフトをおすすめする理由その4 とにかく面白い!
最後にして一番大事な事だと思うんですが、マインクラフトはとにかく面白い。
2011年に販売開始されてから、全世界で1億4000万本以上売れているモンスターゲームです。
パソコンだけではなく、プレステ3や4でもニンテンドースイッチでもアイフォンでもアンドロイドでも販売されていて、
自分ですきなものを好きなように作れるということで、大人も子どももハマる人続出だと。
有名人もYoutubeで実況していたりします。
・よいこ
・ヒカキン
先ほどの橋の動画もたんたんとクリエイティブな事をやってますもんね。
プログラミングを考えるうちちょっとしんどくなったらゲームとして遊んでもよし、
なんならTNTという爆弾を集めてどかーんと気分転換をするもよし、
レッドストーンという回路を使って全自動農作物刈り取り機みたいなものをつくるもよし。
とにかく楽しみながら、いつのまにかプログラミングも覚えているというのが理想的な練習方法だなと思います。
さいごに
子どもがプログラムを練習するためにマインクラフトを活用すると、
本当に様々なものを自分で考えて作る事ができるようになります。
例えばお父さんの日曜大工を手伝うために、
マインクラフトで一度 デスクをつくってみるとか、本棚をつくってみるとか、
いろんな工作もできちゃいます。
で、順番を考えて、立体的に考えて、クリエイティブに考えていれば、
いつの間にかスーパーな子どもが勝手に育つかもしれません。
お勉強ではなく、あくまで楽しみながら、気づいたらプログラミング思考が身についている、というのが理想だなと思いますね。
アオキのツイッターアカウント。