小学生男子がKidsRubyを使ってみた
- 2013.12.12
- Ruby/Rails, 勉強会資料
こんにちは。小学生男子二児の母でRubyプログラマなkano-eです。
これまでScratchで遊んでいた我が家の小学生男子たちですが、最近KidsRubyも使い始めました。
KidsRubyというのは、Rubyを使った子供向けのプログラミング教育用アプリケーションで、子供のRubyプログラミングをサポートしてくれます。
子供たちが使うにあたって自分でも遊んでみたことなど、社内勉強会で共有した内容を紹介したいと思います。
KidsRubyとの出会い
きっかけは、先日のMaker Faire Tokyo 20131で見かけたKidsRubyを使った出展2でした。 Rubyでロボットの動作をプログラムして無線で動かすというもので、我が家の子供たちは人生初のRubyコーディングを体験してきました。
これまでScratch3でGUI操作でのプログラミング経験はあったものの、キーボード操作はほとんどできず、小文字のbとdの区別も曖昧な状態です。 正直、タイピングがメインのプログラムはまだ難しいと思っていたのですが、思いのほか楽しそうにRubyのコードを書いているのを見て、考えを改めることになりました。
KidsRubyをはじめる
KidsRubyはRuby環境の構築が簡単にできるようになっていて、 ダウンロードページからインストーラをダウンロードしてインストールするだけで準備は完了です。 インストーラはWindows、Mac OSX、Debian Linux、それからRaspberry Pi用のものが用意されているので、自分の環境に合ったものを選ぶことができます。
アプリケーションを起動すると、以下画像のように左右2ペインの画面が開きます。
画面の左側はエディタ、右側はタブ切り替えでヘルプ4や出力結果の表示です。
この画面構成のおかげで、
- ヘルプを読む
- コードを書く
- 実行結果を確認する
という学習サイクルが自然とできるようになっています。
ヘルプ、初めてのプログラミング
ヘルプの内容は「初めてのプログラミング」が意識されていて、「Rubyプログラミングの入門」というよりは「Rubyを使ったプログラミングの入門」になっています。
特に最初のチュートリアルはHacketyHack5をKidsRuby用に書き直したものになっており、「プログラミングって何?」とか「パソコンに上手に指示するには」といった内容から始まります。
普段からScratchを使い慣れている小学5年生男子は、一人でヘルプを読んで、勝手にコードを書いて、実行して、どんどんページを進めていました。 「これはScratchのこのブロックみたいな動きをする」というような理解の仕方をしているようで、「RubyもScratchと似ているところがあるね」6と言っていました。
小学3年生男子の方は、エラーになった時など大人のサポートがないと解決が難しそうでしたし、ヘルプも少し進めると疲れて飽きてしまった様子でした。 それでも、自分の書いたコードで画面の色が変わった時には「すげー!」と楽しそうでした。
HacketyHackの次
KidsRubyのヘルプはHacketyHackのほかに、RubyWarrior7というプログラムをゲームや、Gosu8というゲーム開発ライブラリのチュートリアル、それから無線操作できるボール型のロボット・Sphero9をRubyで操作するgemの紹介があります。
子供の興味次第ですが、そのままRubyプログラミングとの付き合いを続けることもできそうです。
Rubyは楽しい、プログラミングは楽しい
KidsRubyはRubyらしく「楽しい」ことを意識して作られているようです。 プログラミングも、本を読んだり絵を描いたりするのと同じように楽しいことだと、子供たちが少しでも感じてくれたら嬉しいなと思います。
-
Maker Faire Tokyo 2013は、オライリー・ジャパンが主催する主にDIYの展示発表会です。
今年(2013年)はお台場で2日間開催されましたが、会場が日本科学未来館とタイム24ビルと2カ所にわかれており、2日間あっても全部回り切るのは難しいくらいのブースが参加していました。 ↩ -
MONOXITさんのブースでした。
MONOXITさんは、 KidsRubyやRaspberry Piを使ったワークショップを行っているようです。 ↩ -
Scratchは、MITメディアラボが開発した子供向けのプログラミング教育環境です。GUIでブロックを組み立てるようにプログラミングできるので、タイピングができない子供でも、プログラミングを楽しむことができます。 ↩
-
KidsRubyのヘルプは多言語化されていて、日本語版も存在します。
漢字遣いなどは小学2年生から読むことができるように配慮されているようです。 ↩ -
HacketyHackは子供のためのプログラミング入門用アプリケーションです。
why the lucky stiffさんのインターネット活動引退前の最後の仕事だったそうです。 ↩ -
親心から補足すると、RubyとScratchが似ているというよりは、プログラミングの基本的な考え方は同じ、ということではないかと思います。
試しにKidsRubyのチュートリアルに出てきたコードをScratchのスクリプトにしてみました。
2枚とも、左がKidsRubyのチュートリアルのコード、右がScratchのスクリプトに移植したものです。 ↩ -
RubyWarriorは、Rubyでキャラクターの行動をプログラミングし、塔を登ってゆくゲームです。
KidsRubyでは多国語に対応した i18n-ed versionが使われています。
ほかにも、 ブラウザ上で遊べるようにしたものや、 JSバージョンなど、派生プロジェクトも多いです。 ↩ -
GosuはRubyとC++に対応したゲーム開発ライブラリです。
本家の チュートリアルが丁寧なので、一通り読み進めれば、簡単なゲームは作れてしまいます。
KidsRubyのGosuのチュートリアルは、本家のチュートリアルを簡単にしたものになっています。 ↩ -
Spheroは、iPhoneやAndoroidから公式アプリで動かすだけでなく、 各種言語のライブラリで操作ができる楽しいガジェットです。
社内勉強会ではちらっと「こういうものもあるらしいです」という紹介をしただけでしたが、その姿の可愛さと楽しそうなPVのインパクトが大きく、その後社内で増殖を続けています。 ↩