Scratch 1.4のスキンを変えよう計画発動

(関連記事「Scratch 1.4 スキン変更のための作業メモ」)

以下,長い前振り…

ブロックを組み合わせる操作でプログラミングできる「Scratch」というプログラミング環境が,プログラミング教育に対する興味関心と連動して,注目を集めています。昨今では参考図書も新たに刊行されて,夏休みには各地でプログラミングを活動に取り入れたワークショップが開催されました。

プログラミング言語というのは,コンピュータに対して命令するために使われるもので,それは英単語や記号を組み合わせたようなものが多いので,コンピュータの世界だけで使う特殊な「言語」と考えて,そう呼ばれるわけです。

ただ,Scratchでのプログラミングは,命令のための言葉を部品のようにブロックとして用意し,それを視覚的に組み立てることによってプログラムが書けるようにしたものです。なのでScratchをプログラミングの「言語」だと呼ぶのは少し足りなくて,言語をブロックのごとく扱える開発「環境」とか開発「ソフトウェア」だと考えた方がより実際に近いのではないかと思います。

というわけで,Scratchというプログラミングの環境が注目されている…というわけです。

Scratchも歴史を積み重ねてバージョンアップされてきました。

たとえば『小学生からはじめる わくわくプログラミング』(日経BP)の表紙を見てみると「Scratch 1.4 / 2.0 両対応」という文字が見えます。少なくともバージョン1.4と2.0の2つがあるということがわかります。

同じ著者の最新刊『Scratchではじめよう!プログラミング入門』(日経BP)の表紙には「Scratch 2.0対応」とあるので,「はは〜ん,もう新しいバージョンの時代だな」と想像してしまうかも知れません。

Scratchの「1.4」と「2.0」は見た目のデザインが変わりましたが,それ以上に,環境全体がパソコンで動くものからWebサイトで動くものへとお引っ越ししたので,土台部分が変わったという違いがあります。

1.4は,Scratchのソフトウェアをパソコンにダウンロードして使う形でした。わりといろんなパソコンに対応していたので困りはしませんでしたが,バージョンアップがあればいちいちダウンロードし直す必要もあったというのが弱点でしょうか。

2.0は,Webブラウザでインターネット上にあるScratch環境を利用できるように変わりました。Web上のゲームや動画で使われてきたFlash技術を利用して実現しています。これなら,いちいちダウンロードしなくてもWebブラウザでアクセスするだけで最新のScratchが使えますし,作品もその場でシェアできます。

こうしてみると1.4より2.0の新しい方が便利そうだと思うかも知れません。しかし,たとえがずれるかも知れませんが,田舎暮らしの善し悪し,都会暮らしの善し悪し,どちらも生活はできるけどそれぞれに長所短所があるのと似ていて,1.4と2.0にはそれぞれの長所短所があるのです。(参考リンク:What are the differences between Scratch 1.4 and 2.0?

Scratch 1.4はWebでは動かないけれど,パソコンなどで動かすためなら立派に現役です。

そして,1.4はソースコードが公開されているので,新たなパソコンに移植することもできます。その恩恵で実現したのがiPad用のプログラミングアプリ「ピョンキー」です。

ルール上,Scratchの名称やキャラクターをそのまま使えないので名前が変わっていますが,ピョンキーの中身は正真正銘 Scratch 1.4です。その証拠にパソコン用のScratch 1.4と画面デザインが同じです(多くの参考図書でも見ることができるおなじみのデザインです)。

NewImage

 というわけで,iPadでもScratch(ピョンキー)が使えるので,iPadファンとしてはめでたしめでたし。ということでもいいのですが,2.0の画面を見たことがある人たちからすれば,1.4の画面,…ちょっと古くさい感じがしなくないでしょうか。しかも他のiPadアプリと比べると,どうしても浮いちゃう感じがします(アイコンはフラットな感じでよいのにね)。

さて,いよいよ長い前振りが終わり,本題です。

iPadでもScratchを使いたい → Tickleなどの類似アプリ登場 → それはそれで楽しい…が,やはりScratchの財産を利用したいしコミュニティにも関わりたい → やった!(Scratch1.4ベースの)「ピョンキー」登場 → 結構しっかり動いていて,シェアされている作品(.sbファイル)も読み込める! → …が,う〜んiPadアプリにしては見た目がなぁ… → 「デザイン変えられないかな?」 → 「Scratch1.4のスキンファイルがあって見た目を変えられるよ」 → 「え?ほんと?」 → 「ファイルが300もあって大変だけどね」 → 「300頑張れば変わるならやるやる!」 → 関連するソースコードとスキンファイルをダウンロード → そして!…

というわけで,ピョンキーの見た目(スキン)を変えるには,もとになったScratch 1.4の見た目を変える必要があり,そのためのファイルが用意されているということをネットを通じて教えていただいたわけです。

もしも素敵なスキンができれば「次期ピョンキーに採用!」なんて夢も叶うかも知れません。

そうでなくても,つくり方がわかるようになれば,他の人たちがデザインしてくれるようになって,もっと素敵なデザインのスキンが出てくる可能性もあります。

その試行錯誤の記録を書き残していこうと思います。

(関連記事「Scratch 1.4 スキン変更のための作業メモ」)

Tickleが日本語対応

教育用プログラミング環境として注目を集める「Scratch」に触発されて生れたiPad・iPhone用プログラミング環境アプリ「Tickle」が2.0となり日本語にも対応しました。

Tickle – Sphero, Dash & Dot, Arduino, Drones, Ollie, Hue, Jumping Sumo, Robots, Smart Homes, Games, などプログラミングできる!

Scratchは,ブロック型プログラミング言語を使って画面中のキャラクターを簡単に動かしたり,環境を拡張することで電子部品の制御さえもできる幅広さを持っています。そのため,子供から大人までプログラミングに挑戦したい人たちの良い入門になっているようです。

もともとScratchは長らくパソコンの上で動かされてきました。昨今はWebベースになったりしていますが,タブレット端末向けとしての実績は始まったばかりです。そのため,なかなか登場しなかったScratchの代わりにScratchと似たような環境を作ろうという動きも出ていたのでした。

その一つが「Tickle」です。

“結果を楽しめる”プログラミング教育でないとだめ、Scratch由来のTickleがKickstarterに登場」(TechCrunch)

開発の経緯は上記のTechCrunch記事に詳しく書いてあります。この記事の当時はアプリ開発中で,現在のものとデザイン的に違っています(開発中は白基調だったものが,正式版は黒を基調としたデザインになっています)が,無事に完成してApp Storeで無償提供されています。

現在では,Scratchをタブレット向けに動作させた「ピョンキー」が登場し,従来のScratchで蓄積してきたノウハウや財産をiPadでも利用することができるようになっています。正統派のScratchをiPad上でも使用したい場合はピョンキーがお勧めです。

Tickleは初めからタブレット端末で使用することを前提として開発されたこともあり,操作性が良いことや,デザインがiPadアプリらしく奇麗であることなどが特徴です。そして,Bluetooth 4.0やWi-Fiなどの無線機能を使って,とても簡単にスマート玩具と接続して,それらを制御することができるというメリットがあります。

また,同じくワイヤレス(無線)で電子ボードArduinoの仲間である「LightBlue Bean」を制御する機能も搭載していますから,このボードが日本でも使えるようになれば電子工作の世界にもちょっとした新風が吹くかも知れません。

Tickle 2.0からは,日本語対応だけでなくiPhoneで動作するようにもなり,スマート玩具と手持ちのiPhoneをさっと繋げて遊んだりすることができます。まさにモバイル時代に合ったプログラミング環境としてこれから注目されそうです。

りん研究室は,Tickleの日本語対応について翻訳などお手伝いしました。

PaSoRiとOSXとRaspberry Pi

 ICカードリーダー/ライターは,名前の通りICカードの情報を読み取ったり,情報を書き込んだりする機器です。具体的には電子マネーカードや関東圏のSuicaカードのような交通系カードを読み取るもので,パソコンに接続する周辺機器として店頭でも売られています。ソニーのPaSoRiという商品はその中で最も手に入りやすいものとして有名です。

 最近では,iOS端末(iPhoneやiPad)にBluetooth無線接続するタイプのPaSoRiが登場し,電子マネーカードや交通系カードの残高確認がアプリからも可能になりました。

 斯様にソニーのPaSoRiというのは現在も販売されているのですが,結構なモデルチェンジを繰り返して現在に至っているものとしても有名なのです。

 もともとFelica方式(多くの電子マネーやおサイフケータイで採用された方式)のカードを読み書きできるように作られた製品RC-S310という機種から始まり,廉価で多く販売されたRC-S320,黒くなってe-Tax対応したRC-S330,改良版RC-S370,そしてNFC国際規格に対応を果たしたRC-S380と進化を続けてきました。

 Android端末もNFC規格に対応を始め,iPhone6も内部的にはNFC機能を持つようになってきたので,今後はRC-S380という機種である程度落ち着くのではないかと思いますが,技術は日進月歩ですのでPaSoRiは今後も変化していくのかも知れません。

 ところで,PaSoRiというのはWindowsパソコン用として販売されてきました(RC-S390は別枠なのでUSB接続できるPaSoRiはWindowsのみ対応というのが基本です)。あとは同じソニーということでPlayStationに接続できるという変わり種はあります。

 しかし,世の中にはMacもあるし,Linuxパソコンなどもあるし,そうしたWindows以外のコンピュータでもICカードを扱いたいというニーズはあったわけです。そうした声に対してソニー側も水面下ではいろいろ対応してきましたが,なかなか思うようには使えなかったというのが正直なところです。

 一方で,オープンソースの世界には,いろんなデバイスを自由に扱えるように,独自にドライバやプログラムを組んでいる人たちがいます。有り難いことに,そうした人たちの努力によってUSB機器が自由に扱えるようになったり,PaSoRiがLinux上で扱えるようになったりしています。

 ただ,そうした動きがあるにも関わらず,ネックなのがPaSoRiのような頻繁なモデルチェンジ。

 新しい型番のものは,たとえ見た目が似ていても中身ががらっと変わっていたりするため,今までの対応方法では動かなくなることも少なくないのです。

 PaSoRiもRC-S320(白PaSoRiと呼ばれています)とRC-S330(黒PaSoRi)との間に互換性がなくなり,作業のやり直しが必要になりました。同様なことがRC-S370とRC-S380の間でも起こり,いままで対応してきたものがまたリセットされたところでした。

 私自身,RC-S320を対象した残高ソフトをMac OS Xのネイティブアプリとしてリリースしたことがありますが,これも残念ながらRC-S330以降のPaSoRiには対応できていません。ハードウェアと直接やりとりするソフトウェアをメンテナンスするのは,結構大変です。

 現在販売されているRC-S380に対応したオープンソースの成果はないのではないかと思われていたのですが,実は「nfcpy」とよばれるPython言語で書かれたものが対応しているとわかり,しかもRaspberry Piで動かした報告などが紹介されていました。

Raspberry Pi 2 で NFC (FeliCa) を使えるようにする」(しばやん雑記)

 こうしたライブラリが使用できるのであれば,FelicaやNFCによるIDカード(社員証や学生証)を読み取って出勤/出欠管理システムをRaspberry Piで構築するというのも悪くないかも知れません。

 個人的にはMac OS XでRC-S380が動かせるようにしたいなと考えていますが,まずはRaspberry Piでメイカーズ的にシステムを作ってみるのも面白いかなと思いました。

「Scratch」に集まる注目と「Tickle」

文字によるプログラミングの敷居の高さを回避して,処理の命令をブロックのように描いたビジュアル・プログラミング言語(ブロック型プログラミング)というものがあります。

これが,子供たち向けにプログラミングを教えることの重要性を訴える昨今の声とともに注目を集めています。現在最も有名なのが「Scratch」というビジュアル・プログラミング言語です。

2006年にマサチューセッツ工科大学(MIT)のメディアラボで開発され,世界中の言葉に翻訳されて利用されています。2015年8月12日〜15日にアムステルダムでScratchコンファレンス2015が開催されています。

教育を考えて生み出されたプログラミング言語には,BASIC(1964)やLogo(1967)などがあり,その後のLogoBlocks(1996)というグラフィカル・プログラミング言語の試みや,プログラミング環境であるSqueak(1996)に含まれたEtoysの存在に影響を受ける形で,Scratchが開発されることになります。また,『作ることで学ぶ』(オライリー2015)には,この辺の教育向けプログラミング言語と絡む「メイカーズ」と呼ばれる動きに至るまでの歴史の概略が記載されていますので関心があればこの本を読んでみてはどうでしょうか。

こうした教育的な取り組みと,2008年に解禁されたiPhoneアプリ開発によるゴールドラッシュ,カードサイズの安価なワンボードコンピュータ「Raspberry Pi」やドローンと呼ばれるマルチ・コプターの登場,家電を始めとした日常生活の中の物がインターネットを介して繋がり合うことで可能性を広げるInternet of Things(IoT)の分野がビジネス的にも注目を集めていることが,昨今のプログラミング教育や電子工作への注目に繋がっていると考えられます。

Scratchは,自分で作ったキャラクターに命令ブロックなどを組み合わせて動きを付けることによって作品を作り上げていくプログラミング環境です。見た目ブロックで取っ付きやすそうですが,本格的なプログラミング言語と変わらないため複雑な作品を作ることもできます。そうした柔軟性が人気となって,この夏も様々なワークショップやイベントでScratchによる表現作品づくりが盛んです。

Scratchを使ったプログラミング教育への関心の高まりは,ご時世的に「IT人材の育成」といった課題から来ているものも少なくありませんが,文化的な観点からすれば,日常生活に深く入り込むに至った表現手段(コンピューティング)を使って自己表現や感情表現していくことを,ごくごく当り前にできる世界を目指したいという思いが大きくなっているからです。

Scratchというビジュアルプログラミング言語は,万能選手ではありませんが,そのひとつの有力なツールとして,普及し始めているということになります。

ところで,Scratchの周りには,ブロック型プログラミングという特徴が似ている別のプログラミング環境があります。思いつくものの名前を列挙すると,Snap!BlocklyHOPSCOTCHSctatchJrPyonkeeTickleプログラミン前田ブロックコロコロ工作ブロック)などです。Scratchと系統を同じにするものもありますし,かなり異なるものもあります。

Scratchは,現在の2.0はFlash技術を使って動いていたりするので,iPadでは,標準Webブラウザから直接利用することが出来ません。Flash対応ブラウザアプリを介して利用するか,Snap!を使うか,ScrachJSという実験的なサイトを利用するしかありません。あとはScratchの仲間として開発されたアプリを使う他ありません。

Scratchのバージョン1.4というものを移植したScratchアプリが「Pyonkee」ピョンキーです。名前こそ違いますが,中身は正真正銘のScratchなのです。iPadでビジュアルプログラミングする場合にはこれを活用する人が多いです。

最近,りん研究室が注目して関わっているのは,Scratchにインスパイアされて開発された「Tickle」というiPad向けのプログラミング環境アプリです。

こちらはScratchとは別に新たに作られたアプリで,キャラクターやデザインなどが違いますが,同じようにブロックプログラミングできるように進化中です。

なによりTickleが凄いのは,ドローンなどの実物の機器をプログラミングで動かせてしまうことです。ドローンといっても玩具サイズのミニドローンや,二輪ロボット,ボール型ロボットなど「スマート玩具」と呼ばれているものです。

こうしたものをBluetoothという通信で遠隔プログラミングして動かすことで,よりプログラミングという行為の醍醐味をスマート玩具などの動きという結果で味わうことが出来るというわけです。また同様に,Arduinoと呼ばれるマイコン回路をプログラミングしたり制御することが出来るので,電子工作の世界にも足を伸ばすことができそうです。

現時点では,日本で使える機器に制限があるため,謳われている全ての機器を入手して動かすことが出来ないというのが問題ですが,そうした課題を克服する中でScratchやTickleを使った実物プログラミング(フィジカル・プログラミング)の世界も拡がるかなと思います。

MetaMoJi Share for ClassRoom発表

 11月12日,MetaMoJi社の「MetaMoJi Share for ClassRoom」という授業支援システムの発表会が行なわれました。これは同社のMetaMoJi Note/Shareを基盤として開発された学校向け製品です。

 あらかじめサーバーあるいはクラウドに児童生徒用のアカウントIDを登録した上で,協働作業できるシェアノートを配布して授業に利用するというシステムです。

 授業支援システムと一口に言っても,具体的にどんな機能で支援をするのかは製品によって異なります。

 一般的には,ファイルの配付/回収,端末画面の転送,教師端末における生徒端末画面の一覧/選択表示,問題やアンケートの出題と回答/集計,同一制作物の同時編集,端末同士の呼び出し/メッセージ交換,端末ロック機能などがあります。すべてを備えているものもあれば,一部に特化したものもありますし,具体的な実現方法や操作方法が異なる場合もあります。

 いずれにしても情報端末が複数台ある環境で,授業における教授学習活動を支援してくれる機能を持ったシステムの事を「授業支援システム」と呼んでいます。

 知識伝達色の強い授業を支援する場合,教材の提示あるいは配布,提出物の回収といった機能による支援が期待されます。つまり先生と生徒の間のやり取りを効率化することです。(一斉学習の支援)

 もう少し発展した使い方として,提出物を回収後,大画面に比較表示する機能の活用が想定されます。いままで生徒を前に呼んで板書させていた活動を効率化するわけですが,全生徒のその時点の学習進捗や成果そのものを授業に生かすことでもあります。(個別学習と一斉学習の相乗支援)

 ここまでくれば,グループ活動における個々の生徒の記録を交換することも難しくありません。グループ内の協働学習活動を支援し,グループ間の学習成果の比較検討を通して,構築的な知識獲得の活動を支援することもできます。(協働学習の支援)

 授業支援システムは,かように様々な学習活動や場面において,学習記録や成果を伝えたり,比較したり,掛け合わせたり,残したりする事を助けてくれる道具なのです。

 さて,MetaMoJi社が提供を始める授業支援システムは,何か目新しい特徴を持つのでしょうか。

 既存の授業支援システムのほとんどが,授業支援システムのために開発された「特別仕様システム」のようなものであり,ユーザーは教材あるいは学習成果であるワープロファイルやら写真ファイルやらのデータをそのシステムに託して利用するといったものでした。

 MetaMoJi社のShare for ClassRoomは,市販のデジタルノートアプリとして評価の高いNote/Shareシリーズを基盤としてシステムが開発されているため,様々な教材や学習成果データをデジタルノートとして管理できるメリットがあります。

 特別仕様で作ったか,市販アプリをもとに作ったのか,この点が決定的な違いです。

 私は,授業で扱う教材や学習成果のデータをデジタルノートとして記録し管理する事がとても重要であると考えています。MetaMoJi社の授業支援システムは,一般にも使われているデジタルノートをベースにした基本的な設計とポジションにおいて,他の製品と一線を画しているといえます。

 既存の授業支援システムでデータを扱う際,2つの方法があります。1)汎用的なファイルを管理する方法と2)独自形式で記録して管理する方法です。MetaMoJi Share for ClassRoomの場合は,後者2)に当てはまります。

 

 1)の方法は,ワープロのWord形式や一太郎形式,スライドのPowePoint形式,文書のPDF形式,写真のJPEG形式,動画のwmv形式やmp4形式といった馴染みのファイルを整理しながら扱います。私たちが日頃パソコン操作でやっている作業です。

 通常のファイル管理と同じである点で敷居は低そうですが,授業や学習が進んで扱うファイルの数が増え続けていくと問題が起こります。分散しているファイル同士の関係を忘れたり見極める事が難しくなり,記録を見返す事が困難になるのです。

 つまり,分散するファイルの形で授業や学習の成果が記録されてしまうと,それらを整理した形で振り返ることが難しくなるということです。

 小中学校において学習ノートが重視される事の意味を問い直してみると,もちろん学習した内容を整理するためでもありますが,授業の内容と学習の成果がノートに順を追って記録され,必要に応じて遡って確認できる事に意味があるのです。

 私たちはノート記録という型のある学習形式の習得を経て,複雑な情報整理や記録へと駒を進めるのであり,最初から煩雑なファイル管理の世界で学習を積み重ねるのはあまり勧められません。それはアナログでもデジタルでも同じです。

 
 一方,2)の方法は,独自の形式で記録しファイルをやり取りすることになります。このやり方は,様々なデータを統合的に記録管理できる点でメリットがあります。

 学習ノートを再現するように授業内容や学習成果を蓄積できれば,学習の振り返りをする際にも記録を容易に遡る事ができます。

 MetaMoJi Share for ClassRoomの特徴は,「授業の記録」がデジタルノートと同じ形式(のシェアノート)でやり取りされて残るため,学習ノートにおける個人の「学習の記録」と容易に統合できる点にあります。

 このように「授業の記録」と「学習の記録」の対応を保って記録を残せるということが,学習を個に返す上で大変重要です。

 

 ただ,この方法では,特定製品にロックインされてしまう問題を孕んでおり,データの永続性という点で不安視されているのも確かです。

 私たちの学習成果を特定製品のデータ形式で蓄積したとして,その製品を使い続けなければならないのか。仮にその製品が開発中止になった場合にどう対処すればよいのか。こうした問題は常に意識しておくべきと思います。

 幸い,MetaMoJi社のNote/Shareアプリは認知度や評価も高く,ビジネスや日常生活でも多く使われています。「学校の中だけで使う独自アプリ」という枠に囚われていません。これが他の授業支援システムと異なるMetaMoJi Share for ClassRoomの優位なポジションです。授業や学習の記録を普段使っているデジタルノート形式で残せれば,学校に閉じてしまうことが少ないといえます。

 (※また当然の事ながら紙の学習ノートの併用も前提とした議論です。アナログとデジタルのノートの組み合わせ方は,それ自体が一つの研究対象になりえます。)

 辛口な事を書けば,MetaMoJi Share for ClassRoomは,まだ登場したばかりの後発製品です。先行製品を無批判に真似た部分は多いし,学校で使うためのツボを押さえた機能にはまだ乏しいといえます。

 たとえば,生徒端末の画面一覧機能は,授業支援システムの基本でありMetaMojI社の製品もそれを機能として実装していますが,それだけでは不十分なのです。一覧表示はモニタリング目的には合致しますが,それを児童生徒への提示目的に使おうとした途端,一覧表示や選択表示ではまったくニーズに応えられないのです。

 具体的には,比較表示の際に生徒の名前は消せなければなりません。モニタリングの際には表示する必要があるものも,児童生徒達に見せるとなれば,誰の画面かを伏せた方がよい場合もあるのです。(大きく表示した画面に「モニタリング」という文字が表示されるということにも本当なら抵抗感を感じなければなりません)

 さらに,比較表示される生徒端末の画面は,整列するだけではダメで,自由位置にも配置ができなければなりません。自在に動かしてグルーピングする必要があるからです。その上,その比較画面にかぶせるように自由に書き込みができなければなりません。

 モニタリングではなく,生徒の画面そのものが提示素材となって説明対象となっているのですから,そこに先生が自由に解説書き込みできなければ意味がないのです。

 こうした機能は,まだ多くの授業支援システムで実現には至っていません。画像保存などして似たような事を再現できますが,本来そうした手間を支援するのが授業支援システムの押さえるべきツボなのです。既存のシステムも含めて授業支援システムはまだまだ進化しなければなりませんし,現在の形を一度壊す必要があるのかも知れません。

 

 私は,こうした進化を実現できる一番近いところにいるのがMetaMoJi Share for ClassRoomだと考えています。それは同社のデジタルノートアプリNote/Shareのもつ実績や技術面からそう考えています。まだまだ備えて欲しいものが多いのも事実。しかし,今後着実に進化してくれることが期待できるのも確か。

 だから私は「本当の意味でデジタルノートを基盤とした授業支援システムが動き出します。今後の進化を刮目すべき製品です」とエンドース文を贈りました。

 理想的には,一般の私たちが日常や仕事で使用しているNote/Shareアプリが直接,必要に応じてMetaMoJi Share for ClassRoomシステムに接続する形がよいのです。今回発表された時点では,デジタルノートとシェアノートのデータ交換が可能であるといったところに留まっているのだと思いますが,それらがもっと融合する事になると思います。

 今後は個人のデジタルノートと授業のシェアノートの橋渡しがどれだけ柔軟に操作できるのかがこの手のシステムにとって大変重要な課題になると考えています。

 

 可能性を秘める技術が学校教育に生かされる事を心から願っていますし,それは今回の製品に限らず,他のどんな会社のどんな製品についても同様です。