Most Viewed Posts

Toggle

未分類

スポンサードリンク

「最強」のプログラミング教育ソフトとは?

:2017/07/19(水) 09:25:09.53 ID:
地方自治体の中でも積極的なIoT化の取り組みを見せる石川県加賀市。同市が設けたスマート加賀IoT推進協議会のアドバイザーを私は務めています。その関係で、加賀市内において小学生向けのIoT (Internet of Things)教育を実施しています。実は、小学生に限らず「プログラミングを知らない人にIoTを教えてほしい」という依頼が多く、困っていました。
 実習を行わずに座学だけの授業にするのは簡単です。しかし、IoT、すなわち「もののインターネット」に関する授業で、「もの」を見ずに授業を受けても、その場では分かったような気になるかもしれませんが、実際にはほとんどの人が理解できません。そこで、弊社の最高技術責任者(CTO)に相談したところ、「小学生に教育するなら『Minecraft(マインクラフト)』がいいですよ」と言われました。私とMinecraftの付き合いはここから始まりました。

多くの大人にとって謎のゲーム

 Minecraftはゲームです。マルクス・ペルソン(ペンネームはNotch)というゲームクリエイターが、同人(アマチュア)ゲームとして開発しました。世界中で爆発的な人気となり、現在はスウェーデンMojang社という、彼が創業した会社が開発しています。子供にも大人気のゲームで、パソコンの他、スマートフォンやゲーム機向けにもソフトウエアが販売されています。シリーズの累計販売本数は、なんと1億2200万本を超えています。
 加賀市で私の授業を受ける小学生や高校生に「Minecraftをやったことがありますか?」と質問すると、ほとんどの子供が手を挙げます。実は、私も数年前にMinecraftをスマートフォンのアプリ(アプリケーションソフトウエア)を購入してプレイしてみたのですが、最初の感想は「なんだこれは? 全然面白くないぞ!」というものでした。Minecraftは立方体のブロック(サンドボックス)だけで構成された世界で、プレーヤーは好きなブロックを積み上げて家を建てたり街を造ったりします。

Minecraftは基本的に2つのモードで楽しむゲームです。1つは「クリエイティブモード」で、ブロックを積み上げたり壊したりしながら建物や街を造るものです。しかし、これだけだと単なる「積み木」で、全く面白くありません(実はこれを楽しむプレーヤーも世界中に存在するのですが…)。もう1つのモードは「サバイバルモード」です。自分で造った建物や街にゾンビなどの敵が現れます。アイテムを拾い、複数のアイテムを道具で加工することで新たなアイテムを手に入れる。そして、その新たなアイテムで敵をやっつけて生き残っていきます。これが、やってみると結構面白いのです(あくまで個人の感想ですが)。

拡張機能とプログラミング

 Minecraftには、第三者が作成した拡張プログラム(MOD)を導入できる機能があります。さまざまなMODがインターネット上に公開されている中で、特に盛んなのがプログラミングを学習するためのMODです。これを導入すると、例えば「Lua」や「Python」などのプログラム言語でMinecraftの世界を操作することができます。また、MODの中には、プログラムコードを埋め込めるブロックを作ることができるものがあり、そのブロックを並べて連動させることで、プレーヤーが近づくと開く自動扉などの“ロジカル”な仕組みを有する構造物を造ることができます。

Minecraftの説明が続いてしまいましたが、これがIoTとどう関係しているのでしょうか。その鍵となるのが、IoTの世界でよく利用されている「Raspberry Pi(ラズベリーパイ)」というシングルボードコンピューターです。この標準OSである「Raspbian(ラズビアン)」をインストールすると、デフォルトで「Minecraft Pi(MinecraftのRaspberry Pi版)」がインストールされます。Minecraft Piは現時点ではクリエイティブモードでしか遊べませんが、これを使うと先ほど触れたPythonなどで記述したプログラムとMinecraftを連携させることが可能です。

例えば、プログラムでRaspberry Piが備えるGPIO(汎用入出力)端子を制御してMinecraftの仮想世界を発光ダイオード(LED)などの現実世界と連動させることができます。例えば、Minecraftの世界でダイヤモンドの鉱石を発見したら、GPIOとつながったLEDを光らせるのです。IoTに興味を持ってもらうには、ゲームを使ってプログラミングを学ぶことが最適だと私は考えています。しかも、子供にだけではなく、大人にも有効だと感じています。
以下ソース
http://techon.nikkeibp.co.jp/atcl/column/15/070800054/071900031/
:2017/07/19(水) 11:33:29.88 ID:
>>1
予備知識・基礎知識ゼロの奴を一線級にできてこそ最強の教育ソフトたりえるんだが?
:2017/07/19(水) 09:27:23.86 ID:
プログラミング言語を使うとまず
 英語の壁に当たる
わけで、遠回りだ。
:2017/07/19(水) 10:09:10.19 ID:
初心者がつまづくところが一通り載っている。
:2017/07/19(水) 10:10:27.73 ID:
頭がいい人も悪い人も、どんどんうぇるかむ。

基本的な知識を、気軽に手に入れることができるよ。
:2017/07/19(水) 10:51:06.53 ID:
プログラム初心者にハードウエアって無理ゲーだろ
2進法から教えないとな
:2017/07/19(水) 11:03:35.64 ID:
今は趣味でプログラミングしてるけどC#とRubyが好きだな
:2017/07/19(水) 12:50:02.09 ID:
若いうちはマシン語とかアセンブラとかが良い。
30歳過ぎると、アセンブラがめんどくさくなる
:2017/07/19(水) 12:54:33.59 ID:
>>38
おれは40台でリタイヤしたよ。デスマーチ徹夜体力の限界を知った
:2017/07/19(水) 12:50:45.03 ID:
強者はYacc/Lexで新言語を創る
:2017/07/20(木) 18:30:32.75 ID:
プログラムの様に1から10まで細かく指示しないと何も出来ない奴なら量産されとる。
:2017/07/20(木) 23:09:50.27 ID:
小学生にはスクリプト言語でええやろ
:2017/07/20(木) 23:11:26.20 ID:
そもそも、言語である必要性は無い。
図形を組み合わせてロジックを作るツールが良いんじゃないか。
:2017/07/21(金) 02:38:10.09 ID:
本屋に言ったら子供のプログラミング本山ほど置いてあった
scratchとpythonが主だったな
:2017/07/21(金) 10:59:49.49 ID:
小学生が成長する頃には、また別の言語が登場して
:2017/07/23(日) 07:25:54.15 ID:
Pythonは対話モードがあるので初心者にとってとっつきやすい
また、対話モードを利用することで電卓代わりに使える
import math
と入力してやれば対話モードでも数学関数が使えるからプログラム関数電卓としても使える
import math
for i in range(360 + 1):
print(“sin({0:d}) = {1:0.15f}”.format(i, math.sin(i * math.pi / 180.0)))
みたいなことが簡単にできる
:2017/07/23(日) 07:39:21.73 ID:
整数に関しては多倍長演算なので2の1乗から2の128乗まで表示するようなプログラムも簡単
for i in range(1,128 + 1):
print(“2**{0:d} = {1:d}”.format(i, 2**i))

ただし、python3では整数の割り算は//を使うこと
/を使うと浮動小数点数になってしまう
:2017/07/23(日) 19:58:30.44 ID:
2ちゃんねるにPythonのプログラムを書き込んでも
インデントの空白が消えてしまうので適宜つけてね


URL
TBURL
Return Top