スポンサーリンク
1: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/

32:2017/07/19(水) 11:33:29.88 ID:

>>1
予備知識・基礎知識ゼロの奴を一線級にできてこそ最強の教育ソフトたりえるんだが?
2:2017/07/19(水) 09:27:23.86 ID:

プログラミング言語を使うとまず
英語の壁に当たる
わけで、遠回りだ。
18:2017/07/19(水) 10:11:54.74 ID:

>>2
そうか!ぴゅう太を使えばいいんだ!
68:2017/07/20(木) 01:54:54.66 ID:

>>2
そんなあなたに、日本語プログラミング言語「なでしこ」
3:2017/07/19(水) 09:29:54.43 ID:

育成を今から
4:2017/07/19(水) 09:40:59.12 ID:

IoTとなんの関係が?
9:2017/07/19(水) 09:53:18.17 ID:

インターネットで見る”もの”って人工衛星だろうけど
あれって日本にあるんだね
10:2017/07/19(水) 09:54:36.93 ID:

basicやろまい
11:2017/07/19(水) 09:59:38.32 ID:

AIが自動でプログラミングすればいい
職がなくなる、とかどうでもいい
22:2017/07/19(水) 10:48:12.20 ID:

>>11
現状のAIの理解から・・・
12:2017/07/19(水) 10:03:18.31 ID:

バカにエンジニアは無理。
13:2017/07/19(水) 10:06:27.05 ID:

マイクラのステマ記事だろ
プログラムを学ぶのは難しくないが都会で暮らすほど稼ぐのはまあまあきつい
15:2017/07/19(水) 10:09:10.19 ID:

初心者がつまづくところが一通り載っている。
16:2017/07/19(水) 10:10:13.81 ID:

子ども向けプログラミングは、初期型で行う

まず、先生が玩具をプログラムで動かし、子どもの前で披露する
その後、大画面でプログラムを組み、玩具へ入力 → 動かす
たった、これだけで子どもは虜になるw

40:2017/07/19(水) 12:53:31.63 ID:

>>16
この言語考えたやつはアホやw
普通のプログラミング言語に、GUIのカバー被せただけだろw

工夫の跡すら見られねえw

46:2017/07/19(水) 14:14:55.13 ID:

>>40
シンタックスエラーが出ないのは良いよ。
;と:を書き間違えてるような簡単なタイプミスでも
なれてないと見つけるまで1時間とかかかることあるから。
50:2017/07/19(水) 18:51:17.58 ID:

>>16
これ子供とサイエンススクールでやったわ。

こんなもんでプログラム出来るようにならねーから。

17:2017/07/19(水) 10:10:27.73 ID:

頭がいい人も悪い人も、どんどんうぇるかむ。

基本的な知識を、気軽に手に入れることができるよ。

19:2017/07/19(水) 10:17:59.17 ID:

何を言ってるのかさっぱりわからん。
おじさんにも解るように説明してくれ。
29:2017/07/19(水) 11:05:37.03 ID:

>>19
わからなくていいから思考停止してマイクラ買えってことよ。
21:2017/07/19(水) 10:37:33.50 ID:

プログラム初心者にラズベリーパイ与えても、100%持て余すだけだと思う。
23:2017/07/19(水) 10:49:49.00 ID:

hello !! world !!

この感動を小学校1年生から感じさせろ。

26:2017/07/19(水) 10:57:55.89 ID:

>>23
main() {
printf(“Hello World\n”);
}
C言語
35:2017/07/19(水) 11:55:54.53 ID:

>>23
今時そんなのじゃ感動しねぇぞ、動きが見えるやつがいい
24:2017/07/19(水) 10:51:06.53 ID:

プログラム初心者にハードウエアって無理ゲーだろ
2進法から教えないとな
25:2017/07/19(水) 10:51:27.92 ID:

スポンサーリンク
最初はScratchで次はMSのSmallBasic
27:2017/07/19(水) 11:01:52.55 ID:

俺の言語推移 大学fortran pascal C C++ C# Java PHP Python Ruby Go Electron
Groovy
28:2017/07/19(水) 11:03:35.64 ID:

今は趣味でプログラミングしてるけどC#とRubyが好きだな
30:2017/07/19(水) 11:18:04.49 ID:

IoT自体いまわしい代物としか思えない
トースターや電気釜まで持ち主を監視してデータを勝手にどっか送るんやで
リアルビッグブラザーの登場だ
31:2017/07/19(水) 11:32:08.08 ID:

perlもphytonもWindowsだとutf-8で悩まされる
それならC#で組んだほうがはやい
37:2017/07/19(水) 12:44:57.43 ID:

>>31
windows投げ捨てたほうが早いだろ
53:2017/07/19(水) 19:42:09.65 ID:

>>31
WindowsでもほとんどのエディタがUTF-8に対応しているから大丈夫
コマンドでテキスト処理したい場合はCygwinとか入れればいい
入門者にはTerapadはどうかな?
Terapadならメモ帳感覚で使えるから気楽に使えるぞ
34:2017/07/19(水) 11:46:48.88 ID:

基礎であるアセンブリからだろ。
36:2017/07/19(水) 12:13:46.85 ID:

マイクラより、撃てる掘れる建築できる
Ace of spadesでpythonを勉強しようw
38:2017/07/19(水) 12:50:02.09 ID:

若いうちはマシン語とかアセンブラとかが良い。
30歳過ぎると、アセンブラがめんどくさくなる
41:2017/07/19(水) 12:54:33.59 ID:

>>38
おれは40台でリタイヤしたよ。デスマーチ徹夜体力の限界を知った
39:2017/07/19(水) 12:50:45.03 ID:

強者はYacc/Lexで新言語を創る
42:2017/07/19(水) 12:57:28.80 ID:

今はPythonがいいのかな
43:2017/07/19(水) 13:02:56.11 ID:

>>42
Pythonもいいね。アメリカで教育に使われてるね。ほとんどC言語なんだけど
タブ送りで誰が書いても同じになる
44:2017/07/19(水) 13:09:04.55 ID:

日本語の教育用プログラミング言語とかないの?
45:2017/07/19(水) 14:11:22.87 ID:

マイクラでワープロなり電卓なりを作ってる人いるけど、
あれレッドストーンでフリップフロップ図で回路組んでるからね。
ああいうのを見ると、たしかに勉強にはもってこいかもしれん。

FF図のレッドストーン回路の実装例:
https://www26.atwiki.jp/minecraft/pages/26.html

47:2017/07/19(水) 14:18:42.67 ID:

import time

startTime = time.time()
n = 0
for i in range(1000000, 1005001):
for j in range(2, i):
if i % j == 0:
break
if j == i – 1:
n = n + 1

endTime = time.time()
elapsedTime = endTime – startTime
print(“elapsedTime:{0} 秒”.format(elapsedTime))
print(“{0}個”.format(n))

Python

48:2017/07/19(水) 15:42:54.50 ID:

RedStone回路を使ってバーチャル世界にマイコン(論理回路)を作る話かと思ったのに。
49:2017/07/19(水) 17:11:00.58 ID:

教えてください、などというひとはだめな人

自身で考えられる人
要件を取集できるなど

「IoTを教えて」www
くそだな

51:2017/07/19(水) 18:54:25.01 ID:

これもIoTというのか…..?
52:2017/07/19(水) 19:00:01.96 ID:

ファミリーベーシックだろ
55:2017/07/19(水) 21:36:13.16 ID:

確かにプログラミング、ではないが
デジタルなモノづくり哲学の基本、としてマイクラは大いにアリだ

俺も最初ただの積み木ゲーだし、グラしょぼくね?と小馬鹿にしてたが
資材の生産設備を作り、さらにその効率化をした辺りから脳内評価が一変した

56:2017/07/19(水) 21:37:06.28 ID:

はっきり言って、そろそろ日本語のプログラミング言語が現れても良いんじゃないのか。
いつまで英語でやってんだよ。
57:2017/07/19(水) 21:53:43.66 ID:

Forthとか簡単に日本語化できそうなものだ
58:2017/07/19(水) 22:19:45.08 ID:

Mindとかひまわりとかなでしことか
昔からあるだろ。
59:2017/07/20(木) 00:24:54.27 ID:

ヒューマンリソースマシーンとかやらせればいいよ
それで大体適正わかる
適正ないのは苦痛でしかないし興味も持てないしで酷いことになるからやらせない方がいい
60:2017/07/20(木) 00:50:21.87 ID:

LOGOに決まってるだろ
61:2017/07/20(木) 00:44:05.10 ID:

プログラマを増やすんじゃなくて
論理性を育むんだろ。
抽象的なことやらせないで身の回りの家事や学習の手順をフローチャートで書けるようになるだけで充分でないの。
63:2017/07/20(木) 00:50:00.66 ID:

>>61
お前はセンスないから黙っとけ
62:2017/07/20(木) 00:46:41.25 ID:

普通に頭良くてプログラム出来る奴は、勝手に独立していく、
社畜ちゃんが欲しいならばそれなりの待遇が必要だブーw
64:2017/07/20(木) 01:24:21.87 ID:

C/C++を覚えときゃ潰しが効く
65:2017/07/20(木) 01:28:54.85 ID:

>>64
それは機械語覚えときゃなんでもできる、と同レベルの話だぞ
登山入門者にいきなりロッククライミングから教えるレベル
66:2017/07/20(木) 01:45:37.73 ID:

文科省が用意した無料のプログラミング教材のプログラミンは、scratchに似てるけど
処理が下から行われるので個人的に嫌悪感が凄い
こんなのは、理論だけでも教えたくねぇ
67:2017/07/20(木) 01:48:41.29 ID:

構造を学ぶならレゴとかでもいいと思うんだが
もちろん厳密な構造化手法だとかオブジェクト指向だとかは無視してると思うが、入り口でいいんだろ?
69:2017/07/20(木) 02:00:15.63 ID:

マインクラフトってことはつまりJavaってことかい?
70:2017/07/20(木) 02:04:39.62 ID:

教育目的ならcpmがいいだろ
71:2017/07/20(木) 02:15:27.36 ID:

マインスウィーパーと勘違いして読んでた…
72:2017/07/20(木) 02:28:15.56 ID:

エクセルVBAじゃないの?
73:2017/07/20(木) 04:19:12.56 ID:

なんとかならないの!

 

引用元:

  • http://anago.2ch.sc/test/read.cgi/bizplus/1500423909
スポンサーリンク