我が家では、子どもが幼いころから、

プログラミングを遊びの中に導入することにつとめてきました。

しかし、いまいちどれも定着せず、

年齢が低いうちは、まだ「プログラミング的思考」をうけとめる脳内の容器が整っていない、というように感じています。

決して手ごたえゼロではなく、それなりに有意義ではあったのですが、

子ども自らが主体的に&独立的に、親の介助を必要とすることなく、

自分でオリジナルのプログラムを作成して楽しむ、という段階まではイマイチたどり着けませんでした。

 

 

<これまでに接したプログラミング遊びの例>

 

【Gakkenニューブロック プログラミング】

 

 

ニューブロックは、2歳ころから触れ、小1になってもいじってました。

あのサイズ感と、接続のしやすさ、本当によく研究されているなと改めて感じます。

同じ外観のものを作るにしても、中の「骨格部分のブロックの組み方」しだいで、

投げても蹴っても壊れない頑強な構造もできるなど、高深度の楽しみ方もできます。

プログラミングversionは、年長のクリスマスにばあばが買ってくれました。

アイデアは非常に良い商品で、一緒に楽しみましたが、まだ「自作プログラム」を作ろう、

というモチベーションは育っておらず、子ども自身が使いたおすまではできませんでした。

(ニューブロック自体は、使いたおすところまでいきました)

 

 

【Scratch】

小1の頃を中心に、家のMacで一緒に遊びました。

スプライトを動かすなどの初歩のコマンド・プログラムに関しては、

あまり興味を示さず、おもしろみはなかった印象。

なぜか、私がテキストを参考に作ったインベーダーゲームに、一時期、ハマりました。

SwitchのNintendo onlineで遊べるファミコンソフトにもハマったりするので、

そんな流れなのかと思います。子どもはレトロゲーム、結構好きですね。シンプルだからか。

 

で、インベーダーゲームの、パラメーターをいじって、インベーダーを滅茶滅茶速く動かしたり、

攻撃のビームを増やしたり、一番楽しんでいたのは、スプライトを「う〇こ」などの絵に描きなおして、

「う〇こ」でインベーダーをやっつける仕様に改造したり、です。

プログラムを楽しむ、というより、Scratch内のお絵描機能で「仕様をいじる」という遊び方です。

本当に目指していたのはプログラミング遊びなので、ちょっと脱線した遊び方になってしまいました。

 

 

【マインクラフト】

子どもがSwith版のマイクラをよくプレイしているので、BluetoothのキーボードをSwitchに接続して、チートコードを入力して遊ぶことをしました。tp、give、は、構文も理解し、入力は私(子どもはタッチタイプができないので)、コマンドの指示は息子、というようにして、ある程度、遊ぶことができました。コマンドブロックは、何となくわかったようで、スイッチを踏むとテレポートする、というような仕様は一緒に作ることができました。が、これは殆ど、ただの単発コマンドであり、「プログラム」ではありません。そういう意味で、コマンド遊びより先には進めなかった、と感じます。コマンド入力がテキストベースであること、これが子どもにとっては絶対的な障壁になる、ということを実感しました。(テキストベースだと、英語で入力する必要があるのと、タッチタイプが必要になるのと、あとは一文字も間違いなくキーを打つことは子どもには難しい、という理由)

 

 

そして、今回、はじめてマインクラフト Educationを試しました。

教育機関ライセンスになるので、扱いがあるかどうか、学校によって異なるようです。

息子の学校では、Microsoftのアカウントが賦与されていたようで、Macに無料インストール後、すぐにログインしてプレイすることができました。(個人でも契約できるように見えましたが、間違いだったらすみません)

 

 

【マインクラフト Education】

見た目は通常のマイクラと変わらないように見えますが、なんか見慣れないロボットのようなのがいます。

 

 

Agentというそうです。

Agent(代理人)、つまり、マイクラの世界の中で、プレイヤーになりかわって色々な仕事をしてくれる、相棒のようなやつです。

プログラミングを作って実行すれば、そのプログラムにしたがってagentが動いてくれる、という設定です。

小さなアイアンゴーレムみたいなので、かわいいです。

通常版マイクラだとArmor Stand(防具立て)エンティティにagent役(execute構文)をやらせていたので、

それよりだいぶ愛着がわきます。(アーマースタンドが歩くあのシュールさも、味わいがありましたが)

 

プログラミング画面をひらき、息子と一緒に、チュートリアルの最初の「agentを動かす」を試してみました。

プレイヤーのもとに呼んだり、

前に5歩動かしたり、右や左を向かせたり、など。

 

GUI(操作画面のレイアウト)は、Scratch、MakeCode、などなどと、ほぼ同一。

ビジュアル型の子ども用プログラミングソフトの万国共通デザインという感じ。

助かります。

function()を、青い箱として表現しているだけで、実際の構造はテキストベースのプログラムと何ら変わりはないのですが、英語・アルファベットを習っていない子どもにとっては、圧倒的にビジュアル型の方がわかりやすいです。

 

この画面で、応用で、上のようにいくつも「右を向く」を入れてみると、

 

グルグルagentがまわる、まるでダンスのような、プログラムになりました。

さらに、ここで、いよいよプログラミングっぽい設計、

「ループ」を導入して、10回の繰り返し処理。

グルグルをずっと続けるようになり、その様子をみてけっこう笑うことができました。

 

このビジュアル型のGUIだと、子どもが自分でプログラムをかけます。

例えば、階段を作らせるのも、

と、とてもシンプル。

これが通常版だと、

execute as@e[type=armor_stand] at @s run fill ~ ~ ~ ~ ~ ~1 gold_block

execute as@e[type=armor_stand] at @s run tp ~ ~1 ~1

などなど、子どもには暗号にしか見えないテキストとなります。

education版では、agentがすべてをシンプルにしてくれ、子どもには心強いです。

息子がagentに作らせた金ブロック階段

 

 

次のチュートリアル、「Build a Castle」

こんなコマンドまで用意されているんですね。

プログラムにはじめて触れる子どもでも、「お城を作る」という野心的なプロジェクトを完遂できる、

「プログラムってすごい!」その感動を味わってもらいたいという開発者の思いが伝わるコマンドです。

コマンドをワークエリアに置いたあと、コマンド名と、使用ブロックの種類を簡単にカスタマイズできます。

この子どもでもできる簡単な改造操作によって、子どもが、「自分で作った」という満足感を得られます。

 

息子に、コマンド名を「devilcastle」にしてくれと言われ、

また、ブロックはネザライトで、ということで、

息子オリジナルの天空城が完成しました。

 

使ってみて実感したのが、

この開発チームは、高度の専門性を備えたエンジニア集団、というだけではなく、

「子どもごごろ」という極めて人間的・情緒的・心理的なファクターを徹底して考えつくしている、

そう感じました。

子どもの教育というのは、やはり、子ども目線にならないと、成立しない、と改めて思いました。

偉そうに物申せば、世界的にみても素晴らしい日本の教育の中で、

もし問題になることがあるとしたら、それは、真面目になりすぎる、という点にあるように感じます。

子どもは「楽しい」ことだけやる能力の天才ですから、

どれだけ楽しい「遊び」を作るか、これが教育で忘れてはならない視点のように思います。

想像していた以上に、マイクラ、よく作られていると感じました。