CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
みなさん、こんにちは。
前回まで、Rubyの「モジュール」についての話題が続きましたが、今回は少しやわらかめのテーマとして「スモウルビー」についてご紹介します。
2020年から、小学校でも本格的なプログラミング教育が始まることは皆さんもご存知でしょう。その流れを受け、巷では、書店に行けばこども向けプログラミング書籍があふれ、またこども向けのプログラミングスクールも珍しくなくなってきました。
そんな中、こども向けのプログラミングツールとして注目を集めてきたのがマサチューセッツ工科大学(MITメディアラボ)で開発されたScratch(スクラッチ)です。Scratchはアイコンやブロックを使って直感的にプログラミングができ、プログラムコードをタイプすることなく、アプリケーションを作れてしまいます。
Scratchの公式サイト
https://scratch.mit.edu/
そんなScratchのプログラミング環境と、Rubyのプログラミング環境を融合したのが、「NPO法人 Rubyプログラミング少年団」が提供している「スモウルビー」です。
NPO法人 Rubyプログラミング少年団
https://smalruby.jp/
Scratchのプログラミング環境は確かに直感的でわかりやすいですが、徐々に本格的なプログラミングにステップアップしていく際、通常のプログラミング言語のソースコードと比較すると違いが大きいことも事実です。スモウルビーでは、Scratchの形式で書いたプログラムをRubyのソースコードに変更したり、あるいはRuby文法で書いたプログラムをScracthのプログラムと同期することもできるのです。
しかも、スモウルビーは、本家Scratchよろしく、ツール自体のインストールも不要になり、Webブラウザ上でプログラムの作成、実行が可能になったのです。
スモウルビー3の開発ツールのWebサイト
http://smalruby.jp/smalruby3-gui/
さっそく、サイトにアクセスして試してみましょう。
サイトにアクセスした様子です。Scratchベースのプログラミング環境が基本のため、コードはブロックで表現されたものが並んでいます。右側にキャラクターが配置されていますが、これをスプライトと呼び、コードのブロックを組み合わせてスプライトにいろいろな動作をさせることができるようになっています。中央がエディター部分で、ここにブロックを並べていきます。
プログラマの方なら、そんなに難しくは感じないと思いますが、試しに、このスプライトをぐるぐる回るようにしてみましょうか。
左のパレットの「動き」カテゴリにある「〇歩動かす」というブロックを中央のエディターに配置します。さらに、「〇度回す」というブロックを、「〇歩動かす」ブロックの下にくっつけるように配置してみてください。「〇歩動かす」の数字は「20」、「〇度回す」の数字は「15」にしてみます。そうすると、これらの動作が続けて行われるとスプライトが20歩動いたあとに、15度回転することになります。
しかし、上記の動作が1回しか行われないと、少し動いただけで終わりになってしまいますので、この動作をループにしてみましょう。「制御」カテゴリにある、「〇まで繰り返す」ブロックを配置して、その中に、上記2つの動作を入れてみてください。すると、繰り返し動くようにできますが、終了条件が必要です。「調べる」カテゴリにある「スペースキーが押された」を選んで、「〇まで繰り返す」の空欄のところに当てはめてください。これで、スペースキーを押すと動作が止まるようになり、それまでは繰り返し動き続けるようになります。
最後に、この動きを行うきっかけとなるイベントを設定します。「イベント」カテゴリにある「(緑の旗)がクリックされたとき」を選んで、ループのブロックの上にくっつけて配置します。
これで、緑の旗のマークをクリックすると猫のスプライトが回りだすと思います。スペースキーを押すと、動きが止まります。
さて、ここからが重要です。できあがったScratchベースのプログラムですが、画面左のペインに「ルビー」というタブがあるのがおわかりになるでしょうか。これをクリックしてみてください。
なんと!
Rubyのコードになっているではありませんか!
ということで、今回はいつものテイストとは少し違ってしまいましたが、ScratchとRubyを一緒に学べる楽しい環境「スモウルビー」についてご紹介しました。次回もお楽しみに。
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes