kakakakakku blog

Weekly Tech Blog : Keep on Learning 👍

小学生も楽しめる!Minecraft Hour of Code でプログラミング的思考を学ぶ

今年8月頃から Minecraft に今さらドハマリをして平日深夜や週末に時間を捻出しつつプレイをしている.そして娘と一緒にやるようにもなった.ふと Minecraft をテーマにしたプログラミング的思考を学ぶコンテンツはあるのかな?と思って調べてみたら「Hour of Code」に出会った.プログラミングに限らずコンピュータサイエンスを学ぶコンテンツが多く公開されていて素晴らしかった💡

code.org

Minecraft Hour of Code

その中に Minecraft をテーマにした「Minecraft Hour of Code」がある.どれも Scratch のように「ブロック」を使ってプログラミング的思考を学ぶ仕組みになっていて,適材適所に「繰り返しブロック」「関数ブロック」などを使うことで楽しく学びを深められる.僕自身も全てクリアしたし,娘(小学校1年生)も楽しみながらすべてクリアしていた.「Hour of Code」の良さを紹介しようと思う👏

code.org

「Minecraft Hour of Code」には大きく以下の「4種類」のコンテンツがある.

  • マインクラフト: ボヤージュ アクアティック (Minecraft Voyage Aquatic)
  • マインクラフト: 主人公の旅 (Minecraft Hero’s Journey)
  • マインクラフト: アドベンチャー (Minecraft Adventurer)
  • マインクラフト: デザイナー (Minecraft Designer)

それぞれ独立したコンテンツになっているため,順番はなく,どれを選んでも良いようになっている.コンテンツの中に YouTube 動画が埋め込まれていたり,海外のマインクラフターのおもしろ動画が埋め込まれていたり,楽しめる要素が多くある.Minecraft 的にも,羊毛をハサミで刈ったり,トロッコに乗ったり,マグマを丸石で埋めたり,コンジットを作ったり,クリーパーから逃げたり,どれもワクワクする!

キャラクターを選択しよう!

どのコンテンツも最初はキャラクターを選択する.Steve と Alex!

f:id:kakku22:20211108142437p:plain

「ブロック」を使おう!

最初は「マインクラフト: ボヤージュ アクアティック」を例にする.基本的には Scratch のように「ブロック」を使ってゴールを目指すことになり,以下の例は「前にすすむ」を使って「チェスト」を目指す.結果的には2歩進めば OK!難易度や操作には多少の違いがある.

f:id:kakku22:20211108142606p:plain

「リピート」を使おう!

3問目と4問目に進むと「リピート : while」という概念の必要性を体験できるようになっている.3問目では「タラ」を目指して7歩進む.さすがに「7歩」だと多すぎるし,具体的な歩数を考えなくても良いような表現があると便利で,4問目では「イルカ」を目指して「ゴールまでリピート」を使う.このように最初から「リピート : while」を教えるのではなく,必要性を体験して「気付かせる」ストーリーになっている.

f:id:kakku22:20211108143114p:plain

f:id:kakku22:20211108143127p:plain

「リピート」と「条件」を組み合わせよう!

「マインクラフト: ボヤージュ アクアティック」の11問目まで進むと比較的複雑になってくるけど,Minecraft ではよく知られた「コンジット」を作る.ポイントは「シーランタン」の上で方向転換をするために「条件 : if」という概念を組み合わせるところ.ここまで理解できると複雑な動きも作れるようになる.

f:id:kakku22:20211108144113p:plain

「繰り返し」と「条件」を組み合わせよう!

今度は「マインクラフト: アドベンチャー」を例にする.他のコンテンツにも「繰り返し : for」という概念は出てくるけど,特に「アドベンチャー」では Minecraft でよくある操作を試せるので楽しめる.11問目は洞窟でブランチマイニングをしているときに「マグマダイブしないように丸石を置く」という操作で「繰り返し : for」「条件 : if」を組み合わせる.じっくり考えながらトライアンドエラーを楽しめる!

f:id:kakku22:20211108145118p:plain

「関数」を使おう!

「マインクラフト: 主人公の旅」の8問目からは「関数 : function」という概念が出てくる.以下はネザーに橋をかけて「本」を目指すために,関数として用意された「短い橋をかける」「長い橋をかける」ブロックを使う.このように再利用性という観点でも「気付かせる」ストーリーになっている.

f:id:kakku22:20211108145721p:plain

「イベント」を使おう!

「マインクラフト: デザイナー」は少し高度なトピックを学ぶコンテンツになり,途中から「イベント : event」という概念が出てくる.「夜になったらときにスポーンする」「ゾンビが出現したらプレイヤーをに向かって歩く」「牛を使用したらミルクを落とす」など,実際に Minecraft の中でも使われている操作となり,Minecraft で言う Mob の動きを実装するという点で「視野が広がる」ストーリーになっている.娘に聞いたところ「イベント」だけは少し難しかったと言っていた.

f:id:kakku22:20211108150742p:plain

以下は「マインクラフト: デザイナー」の途中で視聴する YouTube 動画で「イベント」が紹介されている.

youtu.be

まとめ

Minecraft をテーマにしたプログラミング的思考を学ぶコンテンツを調べてみたら「Hour of Code」に出会った.「Minecraft Hour of Code」は非常によく考えられたストーリーになっていて,誰でも楽しめるコンテンツだった.その中でも代表的な点を紹介したけど,是非「4種類」のコンテンツを全て試してみると良いと思う!

また娘などに Scratch を教える機会もあるけど,使えるブロックが多いため可能性が多すぎて逆に何も作れないということがある.「Minecraft Hour of Code」だと,最初から明確なゴールがあるため,与えられたブロックを使えばよく「パズル感覚」楽しめるのが良さそうだった.Scratch を試す前に試すとより効果的なのかもしれない!

「Hour of Code」には他にも多くコンテンツがあるので試していくぞー💪

code.org