ホチキス先生の「プログラマーと呼ばれたい」

InfoPath & SQL Server !

Archive for the ‘Minecaft’ Category

マインクラフトのコマンドブロックを使ったプログラミング学習の可能性

leave a comment »

コマンドブロックはユーザーがコマンドを入力し、レッドストーンの信号などによってコードを実行できるブロックだ。コマンドブロックを手に入れるには、コマンド入力で /give を使う。

Minecraft_Education_Edition_039_mid_640

コマンドブロックはワールドに配置して内部にコードを書くことができる。しかし、いわゆる PC 版ではコマンドブロックに書くことができるコードは複数行にわたるものを書けるようだが、現時点ではエデュケーション版で一つのブロックに書くことができるコードは一行だけだ。

Minecraft_Education_Edition_036_mid_640

複数のコードを連続して稼働させるには、必要なコード行数のコマンドブロックを用意し、レッドストーンでつなぐ方法がある。またこのとき、コードによっては実行に時間がかかるものもあるので、実行の順番を考えたいときはレッドストーンの間に反復装置を置いて信号を遅らせると確実だ。

Minecraft_Education_Edition_035_mid_640

ここでは「マインクラフトとプログラミング教育」の課題として設定した「レッドストーンのチャレンジ」をコマンドブロックで作っている。一定のエリアに拒否ブロックを敷き詰め、周囲をボーダーブロックで囲い、そのエリアの内部に端にレバーを立てた許可ブロックの列を24列作る一連のコマンドだ。

ボタンを押せばコマンドブロックが連続的に動作し、課題ワールドを自動的に作る。この一連の挙動は、プログラミング教育においては流れ図の「順次構造」のエクササイズでもある。

Minecraft_Education_Edition_037_mid_640

上から見るとこんな感じだ。

Minecraft_Education_Edition_038_mid_640

新しいマインクラフトのエデュケーション版でプログラミング学習環境となる「コードビルダー」を管理する「Code Connection for Minecraft」に接続するには /code コマンドでもいい。

leave a comment »

2017年5月2日に行われた「Learn what’s next.」で発表された新しいマインクラフトのエデュケーション版にはプログラミング教育のツールとなる機能が盛り込まれている。そのひとつが、プログラミングによって学習環境を整えることと学習者を管理することなどができる「コードビルダー」だ。そして「Code Connection for Minecraft」、日本語で「コードコネクション」と呼ばれるものは「コードビルダー」を管理するサービスだ。

コードビルダーを起動すると、次の画面になりクライアントからのアクセスをリッスンする状態になる。このとき、接続コマンドとして表示される文字列のうち、IP アドレスは「Code Connection for Minecraft」を起動したコンピュータの IP アドレスになっており、ポートはサービスが指定する。クライアントはこの IP アドレスとポート番号で接続する。

Minecraft_Education_Edition_028_mid_640

ちなみにこれと似たサービスに、前のエデュケーション版からあった「Classroom Mode for Minecraft」がある。これは「クラスルームモード」という学習環境を管理するサービスで、ネットワーク上のコンピュータで起動し、クライアントから IP アドレスで接続する形だ。この「Classroom Mode for Minecraft」ではリッスンするポート番号をランダムに生成し、起動するたびに違うポートになった。またサービスを起動したコンピュータ上でクライアントのマインクラフトを起動しても接続できない場合が多かった。しかし新しい「Code Connection for Minecraft」ではリッスンするポート番号は変わらないようだ。また同じコンピュータでクライアントを起動して接続することもできるように改善されている。

クライアントのマインクラフトから接続する場合は、コマンド入力ラインを表示して「Code Connection for Minecraft」で指定されたアドレスに /connect コマンドを入力する。このとき、「Code Connection for Minecraft」にはコマンドをコピーするボタンがあり、これをクリックしてもクリップボードにコマンドがコピーされるのだが、次のように /code コマンドを使うこともできる。

Minecraft_Education_Edition_029_mid_640

/code コマンドを使うときは IP アドレスもポート番号も指定する必要はない。このとき、あらかじめ「Code Connection for Minecraft」を起動していなくても、コンピュータに「Code Connection for Minecraft」がインストールされていれば自動的に起動される。また、事前に「Code Connection for Minecraft」を起動していれば、クライアントのマインクラフトでは「コード接続の起動を試みています」となり「接続しました」のメッセージが出ないこともあるが、この時点ですでに「Code Connection for Minecraft」と接続ができている。

Minecraft_Education_Edition_030_mid_640

「Code Connection for Minecraft」を見ると次のようにあっており「MakeCode」や「Scratch」、「Tynker」のメニューが出ている。ところでここで、接続したクライアントの IP アドレスを見ると、対象のコンピュータではなくて 127.0.0.1 になっていることがわかる。これはループバックアドレスで接続されているということだ。

Minecraft_Education_Edition_031_mid_640

試しに簡単なコードを「MakeCode」で書き、実行してみる。

Minecraft_Education_Edition_034_mid_640

10 × 10 × 10 のブロックが生成した。

Minecraft_Education_Edition_032_mid_640

マインクラフトのエデュケーション版に実装されたプログラミング学習環境「コードビルダー」を制御する「コードコネクション」の概要

leave a comment »

2017年5月2日に行われた「Learn what’s next.」で、マインクラフトのエデュケーション版に「コードビルダー」が実装されることが発表された。この「コードビルダー」を制御するものが「コードコネクション」だ。「コードコネクション」は、マインクラフトのエデュケーション版サイトから「CODE BUILDER BETA」をダウンロードすると得ることができる。

Minecraft_Education_Edition_002

「CODE BUILDER BETA」をダウンロードして Zip ファイルを解凍すると、フォルダの中に「codeconnection.msi」のファイルがある。これをインストールする。

Minecraft_Education_Edition_020

「codeconnection.msi」をインストールして起動すると、次のような画面が表示される。この状態で、「codeconnection.msi」を実行しているコンピュータがコードコネクションのサーバーとしての役割を担うようになった。

Minecraft_Education_Edition_004_mid_640

この状態でマインクラフトのエデュケーション版を実行する。実行したら新しい世界を作り、まずゲームの世界に入ってから「Enter」キーを押してコマンド入力をする。コマンドは、Code Connection で表示されたものを入力するが、Code Connection の画面のコマンド右にあるアイコンをクリックするとコマンド列がコピーされるので、その場合はペーストするだけでよい。

Minecraft_Education_Edition_021_mid_640

サーバーに接続できると「サーバーの接続を確立しました」のメッセージが表示される。

Minecraft_Education_Edition_022_mid_640

このとき、Code Connection は次のようになっている。

Minecraft_Education_Edition_011_mid_640

「MakeCode」と「Scratch」そして「Tynker」のメニューがある。まず「MakeCode」をやってみよう。MakeCode」はマイクロソフトの学習環境だ。「MakeCode」のボタンを押すと、次のように MakeCode のモジュールがロードされる。

Minecraft_Education_Edition_013_mid_640

MakeCode が呼び出されると次のような画面になる。ブロック型のプログラミング環境だ。

Minecraft_Education_Edition_014_mid_640

このとき、Minecraft 側では次のようになっている。このとき、ユーザーが「エージェント」になったのだと思ったがそうではなく、ユーザーとエージェントが重なっているからこう見えた。

Minecraft_Education_Edition_023_mid_640

実際はこのように、ユーザー自身とは別のエージェントが出現している。

Minecraft_Education_Edition_027_mid_640

動作を確認するために、次のような簡単なコードを書く。ブロックなので「書く」というより「組み立てる」というかんじだろう。

Minecraft_Education_Edition_024_mid_640

このコードは、コマンドで「run」と入力されたときに動くものであり、「~0」というのはプレイヤーからみた相対的な位置を示している。プレイヤーの位置から、X、Y、Z軸に対して 100 × 100 × 100 の位置まで、ブロックで埋めるというコードだ。

Minecraft 側で実行しよう。

Minecraft_Education_Edition_026_mid_640

すると、プレイヤーの位置から巨大なブロックが積み上げられることがわかる。

Minecraft_Education_Edition_025_mid_640

これまででも Minecraft はコマンドの利用によりブロックを配置しユーザーをコントロールすることもできたが、あくまでも一行単位のコマンドしか実行できなかった。しかし新しいマインクラフトのエデュケーション版では、このようにプログラミングができる環境が整った。

これによりマインクラフトは本格的なプログラミング教育のプラットフォームになったといえる。

追記1:ユーザー自身がエージェントになったかのような勘違いをしていましたが、ご指摘により書き直しました。ご指摘ありがとうございます。
追記2:相対的な位置の指定について、ユーザーエージェントからではなくプレイヤーからの相対的な位置、に書き直しました。こちらも記事を読まれた方の指摘によるものです。ありがとうございます。

マインクラフトのエデュケーション版にプログラミング機能「コードビルダー」が実装された。マインクラフトは本格的なプログラミング教育のプラットフォームになった。

leave a comment »

2017年5月2日にニューヨークで行われたマイクロソフトの教育イベント「Learn what’s next.」でマインクラフトの新しいバージョンと新機能の概要が発表された。マインクラフトには「コードビルダー」が実装され、マインクラフトは本格的なプログラミング教育のプラットフォームになった。

Minecraft_Education_Edition_008

Microsoft Learn what’s next.
https://blogs.microsoft.com/blog/2017/04/12/save-date-learn-whats-next/#sm.001lojei91eiodt7v6o2qn6lbsw18

この新しいマインクラフトのエデュケーション版の大きな特徴は「コードビルダー」と呼ばれるプログラミング機能が実装されたことだ。

マインクラフトのエデュケーション版では、コマンドによって学習者を操作し、ブロックを世界に配置して環境を整えることができた。しかしそれは、コマンドウィンドウからの直接入力であり、1行ずつ実行することしかできなかった。しかし新しいマインクラフトのエデュケーション版では、プログラミングによってプレイヤーを動かし、世界を作っていくことができるようになる。

詳細は Minecraft Education Edition の Web ページでわかる。

Minecraft Education Edition
https://education.minecraft.net/

Minecraft_Education_Edition_009

新しいバージョンを利用するには、Code Builder Beta をダウンロードする。ダウンロードの直リンクは次のページだ。

Minecraft Education Edition
https://education.minecraft.net/get-started/download/

Minecraft_Education_Edition_002

「コードビルダー」の機能によってマインクラフトは本格的なプログラミング教育のプラットフォームになった、と、まずは言うことができるが、もしかしたらこれは初めの一歩であり、この先に壮大なプログラミング世界の大革命がやってくる予感がする。体が震えるほどの期待に満ちている。マインクラフトには学校教育者だけでなく、職業プログラマーも要注目だ。

マインクラフトはオブジェクト指向プログラミングだ。小学6年生の息子が作るマシンを見て思う。

leave a comment »

わが子は「マインクラフトエバンジェリスト」と言っていいほどマインクラフトを熟視している。今日は新宿で「こどもの日プログラミング無料体験会 ~マインクラフトで身につく3つの力~(小学3年生~中学生対象)」というイベントをやるために新宿に来ているのだが、早めに着いた新宿でマクドナルドに入り、マインクラフトをしているわが子を横目で見ながら、いったい何を作っているのか質問をした。

P1490790_mid_640_480_edit

一心不乱に何やら大きな仕掛けを作っているのだが、かなり複雑な仕組みだということが想像できる。いったい何を作っているのか、と聞くと「自動アイテム仕け機」だという。これは、チェストというアイテムを収める箱を 22 列に 2 つずつ、計 44 個並べ、その上や横にホッパーというアイテムを移動させる仕組みを配置する。さらに信号を制御するコンパレータ―やリピーター、信号を発生するトーチを配置する。これらをうまく考えて組み立てると、一番端のホッパーにアイテムを投げ入れると、自動的にアイテムがホッパーの中を送られていき、それぞれ分別されてチェストに入れられるのだ。

個々のブロックには基本的な仕組み、動作が組み込まれている。それらを組み合わせて一連の働きをする仕掛けを作る。これは、まさに、イベントドリブン型のオブジェクト指向プログラミングの思考力を要する作業だ。

こうしたレッドストーンの信号を応用した仕組みを組み立てる作業は、間違いなく論理思考、とりわけ現代的プログラミングの思考力に重なり合っている。「マインクラフトとプログラミング教育」というものが俺のテーマの一つだったが、わが子の姿を見ていて気付かされたことは、大人があれこれ理屈をつけて「教育」に結びつけなくても、子供は自然に価値のあることを見つけ、遊び感覚で論理的思考を養っているということだ。

Written by Yoshio Matsumoto

2017年5月5日 at 8:40 AM

マインクラフトのエデュケーション版を使った問題解決の授業案を考えています。たとえば小学校四年生の「植木算」の考え方。

leave a comment »

マインクラフトをプログラミング教育に使うことを考えて勉強会をしています。

勉強会「マインクラフトとプログラミング教育」を開催します。
アドミンティーチャーズ
https://adminteachers.wordpress.com/2017/03/08/%e5%8b%89%e5%bc%b7%e4%bc%9a%e3%80%8c%e3%83%9e%e3%82%a4%e3%83%b3%e3%82%af%e3%83%a9%e3%83%95%e3%83%88%e3%81%a8%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e6%95%99%e8%82%b2%e3%80%8d/

マインクラフトにはエデュケーション版があり、エデュケーション版には一般のコンシューマー向けのマインクラフトにはない特殊パーツや「Classroom」という授業をするためのモードが用意されています。これらの機能を使えば、効果的に授業でマインクラフトを運用することができます。

マインクラフトは自由度が高く、無限の可能性がありますが、たとえば小学校の算数をテーマに取ると、このような問題解決型の授業案が考えられると思います。

テーマ:レッドストーンで「植木算」を理解しよう
概要:「植木算」は、おおむね小学校四年生の算数で取り上げられる課題で、割り算を習った後に、割り算を現実世界にあてはめて使うことを学ぶ目的で使われます。たとえば「10メートルの道路にそって1メートルおきに木を植えるとしたら、何本の木が必要ですか。」といった問題です。割り算を習った子供は、10メートル割る1メートルで10本、という答えを出せるとして、しかし実際は1mごとの「間」を数えるので9本でよい、ということに気付かせる問題です。これをレッドストーンの働きにおきかえて、15ブロックしか信号が伝わらないレッドストーンを150個使い、全部使ってできるだけ長く信号をつなぐために、何個の反復装置が必要かを考えさせ、実際にマインクラフトの世界でやってみて体験します。

授業案を Docs.com でも公開しています。
https://docs.com/user775272/8741/minecraft-small-challenge-no-2-planting-tree

Minecraft_Small_Change_002_001_mid_640

Minecraft_Small_Change_002_002_mid_640

Minecraft_Small_Change_002_003_mid_640

Minecraft_Small_Change_002_004_mid_640

Minecraft_Small_Change_002_005_mid_640

小学生マインクラフト エバンジェリスト、あくひろくんがマインクラフト Windows 10 Edition のサバイバルモードを動画で解説します。第一回は木を切って木材を作るところから。

leave a comment »

マインクラフトはプログラミング教育や問題解決、コラボレーション教育に利用できるのではないかと期待されている。そこで、まずマインクラフトの基本について、いちばんよく知っている小学生に解説してもらうことにした。いわば「小学生マインクラフト エバンジェリスト」みたいなかんじだ。

説明が長いとわかりにくいので、短く 5分で解説するようにしている。第一回は、まず木を切って木材を作るところから始めている。マインクラフトの初心者向けに作っているので、ぜひご覧いただきたい。

https://www.youtube.com/watch?v=irP1tyWXWzE
minecraft_001_mid_640