• X
  • Facebook
  • RSS

子供が独学で学べる最新プログラミング教材(後編) 学習ゲームやブロックロボット教材で本格的なプログラミングを学ぼう

小学校でのプログラミング教育必修化に向けて、プログラミング教材への注目が集まっています。小学校中学年~中学生を対象にした教材を実際に試してみました!


f:id:hatenanews:20171101154101j:plain


小学生の息子と中学生の娘を持つ親として、筆者は子供のプログラミング教育やSTEM教育に関心があり、プログラミング教育に力を入れている学校や教室、関連イベントの取材、プログラミング教材のレビューなどを行ってきました。また、2016年夏からは、地元の子供を対象としたプログラミング道場「CoderDojo守谷」のメンターとして、子供たちにプログラミングを教えるお手伝いをしています。

そこで、子供へのプログラミング教育に関心がある方や、小中学生のお子さんをお持ちの方のために、最新の子供向けプログラミング事情を紹介したいと思います。

今回は後編として、主に小学校中学年以上を対象としたプログラミング教材を取り上げます。

目次

■ ビジュアルプログラミングからスクリプト言語へ

「論理的な思考能力を身に付けることができる」のが、プログラミングを学ぶことの最大の利点です。4、5歳児や小学校低学年なら、前編で紹介したようなアルゴリズムを学べるパズルゲームから始めることをおすすめしますが、小学校高学年なら、学校でアルファベットやローマ字の読み書きを習っていますので、ScratchMOONBlockなどのビジュアルプログラミング言語にチャレンジできます。

ビジュアルプログラミング言語をマスターしたら、JavaScriptやPythonなどのスクリプト言語へステップアップするのもよいでしょう。スクリプト言語では、キーボードを使ってプログラムを入力することになりますが、命令は英単語が基本となっていますので、英語の勉強にもなります。

■ ビジュアルプログラミング言語の代表「Scratch」(対象年齢8歳~)

まずは、ビジュアルプログラミング言語の代表である「Scratch」を紹介します。マサチューセッツ工科大学(MIT)のメディアラボによって開発された子供向けビジュアルプログラミング言語です。

scratch.mit.edu

無料で利用できるScratchは、世界中で広く使われています。特徴は、ブロックを並べていくだけで高度なプログラミングができることです。Webブラウザ上で動作するため、インストール作業などが不要で、すぐにプログラミングを始められることも魅力。また、アカウントを作成すれば、プログラムの保存や公開を行えますし、他の人が作成したプログラムで遊んだり、その中身に自分のアイデアを加えて改造したりすることもできます(リミックスと呼びます)。Scratchは人気が高く、いろいろなプログラミング教室で採用されているほか、子供向けの書籍も多数出版されていますので、独学にも向いています。

Scratchのプログラム作成画面は、4つのエリアに分かれています。左上の猫のイラストが表示されているエリアが「ステージ」、その下のエリアが「スプライトリスト」、中央の細長いエリアが「ブロックパレット」、右側の広いエリアが「スクリプトエリア」と呼ばれます。Scratchでは、ブロックパレットに並んでいるブロックをドラッグ&ドロップでスクリプトエリアに並べていくことで、プログラミングを行います。ブロックパレットのブロックは、「動き」「見た目」「制御」などのジャンルによって色分けされています。ブロックパレット上部のメニューをクリックすることで、表示されるブロックが変わります。ステージに表示されている猫のイラストは、スプライトと呼ばれています。


f:id:hatenanews:20171101154107p:plain
Scratchのプログラム作成画面は、4つのエリアに分かれている

Scratchでは、それぞれのスプライトごとに、そのスプライトの動きを制御するスクリプトを記述していきます。例えば、最初に表示されている猫のスプライトを移動させるには、「旗がクリックされたとき」ブロックの下に「10歩動かす」ブロックを追加するだけです。ステージの右上にある緑の旗をクリックすれば、そのスクリプトが実行され、猫のスプライトが少し移動します。連続して動かしたい場合は、繰り返しを行う「ずっと」ブロックの中に「10歩動かす」ブロックと「もし端に着いたら、跳ね返る」ブロックを入れれば、左右に動き続けるようになります。数多くのスプライトがライブラリーとして用意されているほか、自分で自由にスプライトを描くこともできます。


f:id:hatenanews:20171101154113p:plain
スプライトライブラリーには、多くのスプライトがジャンル別に整理されている

Scratchは高機能で奥が深いため、マスターすればかなり複雑なゲームや動く絵本などを作れるようになります。本格的なプログラミングへの入門にはぴったりの言語だといえるでしょう。

■ 本格的なスクリプト言語「CoffeeScript」を学べるCodeMonkey(対象年齢9歳~)

Scratchなどのビジュアルプログラミング言語が一通り使えるようになり、次はJavaScriptやPythonなどのスクリプト言語に挑戦したいという子供におすすめしたいのが、「CodeMonkey」です。CodeMonkeyは、イスラエルのCodeMonkey Studiosが開発したプログラミング学習ゲームで、日本ではジャパン・トゥエンティワンから販売されています。

codemonkey.jp

CodeMonkeyの特徴は、JavaScriptに似たスクリプト言語「CoffeeScript」を利用していることです。CoffeeScriptはJavaScriptへの変換も可能。JavaScriptよりも構文がシンプルで分かりやすいため、初めてスクリプト言語を習う人にぴったりです。

また、Webブラウザ上で動作するため、インストール作業は不要です。製品版は有料のライセンス制(1年間6,480円、2年目以降は4,320円)となっていますが、最初の30ステージ分を遊べる無料体験版が用意されていますので、まずは体験版で試してみて、気に入ったら有料版への移行を検討するとよいでしょう。


f:id:hatenanews:20171101154122p:plain
無料で30ステージ分を遊べる体験版が用意されている

CodeMonkeyの画面は左右2つに分かれていて、左側が実行エリア、右側がコードエリアと呼ばれます。ゲームの目的はシンプルで、サルのモンタを操って、画面内にあるバナナをすべて食べさせてあげることです。モンタを前に進めるには「Step」という命令を使い、Stepの後ろに数字を書くことで、その数だけモンタが前に進みます。また、「Turn」という命令を使えば、モンタの向きを変えることができます。ステージが進めば、敵のキャラクターやモンタを助けてくれる仲間のカメも登場し、繰り返し命令や条件分岐などより高度な命令を利用できるようになります。有料版では、全部で400ものステージが用意されていますので、かなり高度なプログラミングを学ぶことができます。


f:id:hatenanews:20171101154130p:plain
コードエリアにプログラムを書いてサルのモンタを操る


f:id:hatenanews:20171101154138p:plain
右下のRUNボタンを押すと、プログラム通りにモンタが動く

■ プログラムをハックしてクリアを目指すRPG「HackforPlay」(小中学生対象)

スクリプト言語の入門には、ハックフォープレイ代表の寺本大輝氏が開発した「HackforPlay」もおすすめです。HackforPlayは、子供たちがゲーム感覚で楽しみながらプログラミングを学べる新しい形のオンライン教材で、RPG仕立てになっています。その名の通り、ゲームのプログラムを自分で書き換える(ハックする)ことで、そのままでは倒せない強大な敵を倒すことができます。つまり、ゲームを攻略していく過程で、子供たちが自然にプログラミングを学習していけるのです。

hackforplay.xyz



f:id:hatenanews:20171101154146p:plain
HackforPlayのスタート画面。まずは、RPGステージを選ぶ

攻略の方法が幅広く用意されていることもHackforPlayの特徴です。例えば、ラスボスのドラゴンはそのままでは勝てませんが、プレイヤーのHPを思いっきり増やせば勝てるようになります。それ以外にも、ドラゴンのHPを1にしたり、プレイヤーの位置座標を変更したりして、ドラゴンの無防備な背中側に回り込んで倒すこともできます。



f:id:hatenanews:20171101154154p:plain
スライムやイモムシのHPが高すぎて、このままでは倒せない


f:id:hatenanews:20171101154159p:plain
そこで、スライムのHPの数値を9999から9に書き換えれば、スライムが弱くなる


また、ステージを自由に作り替えることや、自分で一から新しいゲームを作ることもできるようになっています。Scratchと同じように、作成したステージやゲームは広く公開できる仕組みになっています。HackforPlayで学ぶプログラミング言語は広く使われているJavaScriptですので、子供はもちろん、プログラミングを学びたいと考えている大人にも適しています。HackforPlayも、Webブラウザ上で動作するためインストール作業は不要で、無料で利用できます。

■ ロボットを組み立ててプログラミングを学べる「KOOV」(対象年齢8歳~)

最後に、ソニー・グローバルエデュケーションのロボット・プログラミング学習キット「KOOV」を紹介します。KOOVは、ブロックと電子パーツを組み合わせてロボットを製作し、そのロボットを動かすためのプログラムを作成することで、楽しみながらロボットの構造やプログラミングを学べる学習キットです。ブロックは全部で7種類。それぞれカラーバリエーションが用意されていますので、自分の思い通りのロボットを作ることができます。

www.koov.io

KOOVは、スターターキット(EKV-120S/36,880円)と拡張パーツセット(EKV-080E/21,880円)、スターターキットと拡張パーツセットが一緒になったアドバンスキット(KV-200A/49,880円)の3製品が用意されています。なお、拡張パーツセットはスターターキットに追加して利用する製品なので、拡張パーツセットのみで利用することはできません。

電子パーツとしては、Arduino互換マイコンボードを搭載したコアやサーボモーターやDCモーター、各色LED、ブザー、プッシュスイッチ、光センサー、赤外線フォトリフレクタ、加速度センサーなどが用意されています。


f:id:hatenanews:20171101154209j:plain
スターターキットに含まれるパーツ類


f:id:hatenanews:20171101154213j:plain
アドバンスキットに含まれるパーツ類


KOOVの対象年齢は8歳以上とされていますが、専用アプリがとてもよくできています。子供がひとりでロボット・プログラミングを段階的に学習していけます。アプリの利用にはインターネット接続が必須で、専用サイトからダウンロードして利用します。アプリの動作環境は、Windows 7 64bit以降またはmacOS 10.9以降、iPad iOS 9以降とされています。専用アプリには、「ロボットレシピ」と「学習コース」という2つのメニューが用意されています。

ロボットレシピは、すぐにロボットを作りたい人のためのメニュー。レシピ通りにブロックを組み合わせていくだけで、さまざまなロボットを作ることができます。また、ロボットレシピでは、作ったロボットを動かすためのプログラムがあらかじめ用意されているため、完成したロボットに転送するだけですぐに動かすことができます。ワニやトランペット、カニ、消防車などさまざまなレシピが用意されています。2017年11月の時点で利用できるレシピの数は、スターターキットが14、アドバンスキットが23ですが、アプリのアップデートによって順次追加される予定です。組み立て説明図は3D CG動画になっていて、自由に拡大/縮小や回転ができるので、とても分かりやすくなっています。



f:id:hatenanews:20171101154217p:plain
さまざまなロボットレシピが用意されている


f:id:hatenanews:20171101154221p:plain
ブロックの組み合わせ方が3D CG動画で説明されるので分かりやすい


f:id:hatenanews:20171101154226j:plain
3D CG動画を見ながら、ブロックを組み合わせていく


f:id:hatenanews:20171101154231p:plain
ロボットが完成したらプログラムをPCからコアに転送する


学習コースは、プログラミングやブロックの組み方などを学ぶためのメニューで、「はじめてのロボットプログラミング」「ブロックアーティストになろう」「ロボットのしくみをまなぼう」「ロボットのしくみをまなぼう」(アドバンスキットのみ)「プログラミングスキルをみがこう」の4種類のコースが用意されています。ステージごとに与えられるミッションをクリアしていくことで、初心者でもプログラミングやロボットの構造を一から学ぶことができます。KOOVでは、Scratchなどに似た独自のビジュアルプログラミング言語を採用し、ブロックをドラッグ&ドロップで並べていくだけでプログラミングができるため、キーボードに慣れていない子供でも心配はありません。コースを一通りを学び終えたら、自分のアイデアで自由にロボットを作る、作ったロボットの写真などを公開するなどできます。



f:id:hatenanews:20171101154237p:plain
学習コースには、全部で4種類のコースが用意されている


f:id:hatenanews:20171101154241p:plain
はじめてのロボットプログラミングコースでは、センサーやモーターなどの使い方を学ぶことができる

文:石井英男

関連エントリー