Google社員が世に問う、子供にプログラミングの基礎を体感させるためのボードゲーム

子供たちにプログラミングを教えようとするオンラインリソースは数多く見つけることができる。ここで紹介するのは、そうしたものとはちょっと違って、言わば「昔ふう」に家族ゲーム(1980年代には、家族で遊ぶといえばボードゲームが多かった)を楽しみながら、プログラミングの基礎を身につけさせようとするものだ。名前はRobot Turtlesで、ゲームの作者は、アントレプレナーであり、かつGoogle ComparisonのCEOを務めるDan Shapiroだ。現在は日々の業務からは距離をおいていて、こうして自分の気に入ったプロジェクトに時間を割くことができるようだ。

プレイヤーは自分の駒(亀)を、何種類かの命令カードを使って動かす。この「命令」に従った動作を行わせることで、プログラミングの基礎を学ばせようとするわけだ。ゲームの観点からするボード上を動き回る目的は、迷路を抜けて宝石をゲットすることだ。しかし真の目的は、プログラムとは何なのかを感じさせることなのだ。たとえば命令カードの種類は限られていて、そのカードを使って思ったとおりに動かそうとすれば、各命令をうまく組み合わせる必要がある。動作の順序にも気を配る必要がある。また失敗に気づいた時には命令を組み替えるという動作を通じて、デバッグ能力も身につけさせようとする。これもまた、プログラミングにはなくてはならないスキルだ。

ゲームに慣れてくれば、一度に1枚の命令カードを使うのではなく、3枚のカードを適切に組み合わせて一回の指示とするといった使い方もできる。最終的には目的達成のための手順をすべてまとめて「プログラム」として提示するレベルまでいけば素晴らしい。もちろん(必ず発生する)バグを潰す練習も将来に向けて重要なものとなる。ゲームに慣れてくれば、「Function Frog」というカードを使えるようにする。このカードはプログラムにおける「関数」のように使い、あわせてなるべく少ないカード枚数で迷路を抜け出せるようにする。

「プログラミングというのは、子供に身につけさせてあげることのできる素晴らしい能力のひとつだと思うのです。将来的に経験するさまざまなイノベーションにも対応する力を身に付けることになるでしょう」とShapiroは言っている。Shapiroは、自身の4歳になる双子の子供にコーディングの楽しさを伝えようと、このゲームを発案したのだそうだ。

ところでShapiroは本プレジェクトをKickstarterプロジェクトとして登録した。そこでRobot Turtlesを世に出す資金を集めようとしたわけだ。資金はすぐに集まり、登録後わずか一日で、目標としていた2万5000ドルのほぼ倍額が集まることとなった。そこで彼は面白いことを言っている。「Kickstarterは本当に面白い仕組みだと思います。『プロジェクト』を外部の人々が支えてくれることというのは、これまでに経験したことのない体験でした。私は人生のほとんどを企業人として活動してきました。OntelaではVCから3000万ドルの資金を預かっていました。Sparkbuyは、最終的にGoogleによって買収されました。そうした中で私は、日々戦略やビジョン、今後の進むべき方法などに頭を悩まし続けてきたのでした。当時は世の中に出すべきものは『プロダクト』であり、『プロジェクト』は自らの力のみで実行すべきものでした」とのこと。

Robot Turtlesは3歳から8歳を対象とするもので、Kickstarterでの支援者は29ドルで入手できる。支援者に対する商品の発想は12月を予定している。すなわちホリデーにはゲームを楽しめるというわけだ。

原文へ

(翻訳:Maeda, H)


コードを読めない/書けない人でもプログラミングの理解と参加ができるヴィジュアルツールNoFlo

NoFloという会社が、1970年代にIBMが提唱した“フローベースのプログラミング”*というコンセプトに基づく、オープンソースのヴィジュアルプログラミングツールを作り、多くのプログラミング言語に対応する本格的な開発環境に仕上げるための資金10万ドルを、Kickstarterで募金している。〔*: flow-based programming, プログラムの構造を処理の流れ(flow)で表す(下図)。〕

一見するとNoFloは、簡単なWeb開発ではなくもっと高度なプログラミングのためのWYSIWYGエディタみたいだ。いろんな部位をドラッグ&ドロップで並べて、求める計算処理を完成させる。しかし実際にはそれは、コードを書いたり読んだりした経験のない人たちでもプログラム/プログラミングを理解できるための、ヴィジュアルな仕掛けだ。今では企業の役員でも管理職でも一般社員でも、プログラミングの経験や知識があることが求められる。これからは誰もが、デベロッパたちがやってることを見て何をしているのか理解でき、プログラミングや開発の過程に何らかの形で関われなければならない。NoFloは、そういう時代要請に即したツールだ。

同社によれば、“それは新しいタイプのフローベース開発環境であり、中でもとくに、どこを新しくしたいかというと、もっとコラボレーション型の環境にしたいのだ”、という。つまり、“企業やチームの人たちに、彼らのソフトウェアがどのように動くのかを示すマップを提供したい。たとえばそのソフトウェアがインターネットに接続されたら、いろんなものが流れて(flowして)いく。プログラムを流れ(flow)でとらえて表現する方法は70年代に発明されたが、うちはそれを、インターネットやクラウドAPIなんかがある現代の環境向けにリニューアルしたいのだ”、ということ。

これと似たプロプライエタリなツール*は前からすでに、大型のプログラミングプロジェクトで使われていたし、映画Lord of the Ringsなど大衆的なメディアに登場したことがある。それらではこのソフトウェア開発プラットホームが、特殊効果のデザインや開発フロー用に使われていた。NoFloはそれらと同じツールを、一般的なオープンソースコミュニティに初めて持ち込むことになる。Kickstarterで資金募集に成功したら。〔*: もしかして、フローチャート(flow chart)のことか?〕

Kickstarterに出た目的は、関心を集めることと、今JavaScriptしかサポートしていないこのツールを、さらにJavaやObjective C対応にするための資金集めだ。つまり、iOSアプリやAndroidアプリを作れるようにしたいのだ。同社によるとそれはScrabbleをLegoに変えるようなもので、基本的に、一般の人には全然分からないもの(プログラム/プログラミング)を、誰にでも分かり会話にも参加できるものに変えるのだ。

NoFloがKickstarterのページで述べているように、Webサイトの場合は、デザイナーがヴィジュアルの仕事をしたら、あとは完全にプログラマの仕事になり、言語を理解できない者には口出しすらできないものになってしまう。NoFloが望むのは、デザイナーが全工程に参加して、本格的なプログラミング教育を受けなくてもプログラミングに参加できることだ。肩越しからプログラマの仕事をちょっと覗くのではなく、正規にチームの一員として会話に参加できること。

出資約束95ドル以上で、プライベートなプロジェクトライセンスが得られる。つまり、コミュニティでオープンに共有されるプロジェクトにはこのツールが提供される。金額が多いとライセンスの期間が長くなり、特典も増える。ソフトウェアでしかも消費者製品でないものに、目標額10万ドルは厳しいが、NoFloのねらい自体はきわめて社会的に重要であり、とくに、技術部門と管理部門とクリエイティブ部門、この三者のコミュニケーションを建設的に円滑にしたいと願っているデザインスタジオやデベロッパショップからは、支持を得られそうだ。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))


コードを読めない/書けない人でもプログラミングの理解と参加ができるヴィジュアルツールNoFlo

NoFloという会社が、1970年代にIBMが提唱した“フローベースのプログラミング”*というコンセプトに基づく、オープンソースのヴィジュアルプログラミングツールを作り、多くのプログラミング言語に対応する本格的な開発環境に仕上げるための資金10万ドルを、Kickstarterで募金している。〔*: flow-based programming, プログラムの構造を処理の流れ(flow)で表す(下図)。〕

一見するとNoFloは、簡単なWeb開発ではなくもっと高度なプログラミングのためのWYSIWYGエディタみたいだ。いろんな部位をドラッグ&ドロップで並べて、求める計算処理を完成させる。しかし実際にはそれは、コードを書いたり読んだりした経験のない人たちでもプログラム/プログラミングを理解できるための、ヴィジュアルな仕掛けだ。今では企業の役員でも管理職でも一般社員でも、プログラミングの経験や知識があることが求められる。これからは誰もが、デベロッパたちがやってることを見て何をしているのか理解でき、プログラミングや開発の過程に何らかの形で関われなければならない。NoFloは、そういう時代要請に即したツールだ。

同社によれば、“それは新しいタイプのフローベース開発環境であり、中でもとくに、どこを新しくしたいかというと、もっとコラボレーション型の環境にしたいのだ”、という。つまり、“企業やチームの人たちに、彼らのソフトウェアがどのように動くのかを示すマップを提供したい。たとえばそのソフトウェアがインターネットに接続されたら、いろんなものが流れて(flowして)いく。プログラムを流れ(flow)でとらえて表現する方法は70年代に発明されたが、うちはそれを、インターネットやクラウドAPIなんかがある現代の環境向けにリニューアルしたいのだ”、ということ。

これと似たプロプライエタリなツール*は前からすでに、大型のプログラミングプロジェクトで使われていたし、映画Lord of the Ringsなど大衆的なメディアに登場したことがある。それらではこのソフトウェア開発プラットホームが、特殊効果のデザインや開発フロー用に使われていた。NoFloはそれらと同じツールを、一般的なオープンソースコミュニティに初めて持ち込むことになる。Kickstarterで資金募集に成功したら。〔*: もしかして、フローチャート(flow chart)のことか?〕

Kickstarterに出た目的は、関心を集めることと、今JavaScriptしかサポートしていないこのツールを、さらにJavaやObjective C対応にするための資金集めだ。つまり、iOSアプリやAndroidアプリを作れるようにしたいのだ。同社によるとそれはScrabbleをLegoに変えるようなもので、基本的に、一般の人には全然分からないもの(プログラム/プログラミング)を、誰にでも分かり会話にも参加できるものに変えるのだ。

NoFloがKickstarterのページで述べているように、Webサイトの場合は、デザイナーがヴィジュアルの仕事をしたら、あとは完全にプログラマの仕事になり、言語を理解できない者には口出しすらできないものになってしまう。NoFloが望むのは、デザイナーが全工程に参加して、本格的なプログラミング教育を受けなくてもプログラミングに参加できることだ。肩越しからプログラマの仕事をちょっと覗くのではなく、正規にチームの一員として会話に参加できること。

出資約束95ドル以上で、プライベートなプロジェクトライセンスが得られる。つまり、コミュニティでオープンに共有されるプロジェクトにはこのツールが提供される。金額が多いとライセンスの期間が長くなり、特典も増える。ソフトウェアでしかも消費者製品でないものに、目標額10万ドルは厳しいが、NoFloのねらい自体はきわめて社会的に重要であり、とくに、技術部門と管理部門とクリエイティブ部門、この三者のコミュニケーションを建設的に円滑にしたいと願っているデザインスタジオやデベロッパショップからは、支持を得られそうだ。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))


iPad上で描いたアプリケーションワイヤフレームから、操作可能モックアップを生成するPentotype

開発者の方ならきっと興味を持つのではなかろうか。実際のコーディングを開始する前に、プログラムのワイヤフレームを共有して、ユーザーエクスペリエンスなどの視点から意見を募りたいと考える人は多いのではないかと思う。まさにそうした目的のためにリリースされたのが、PentotypeというiPad向け(HTML5に対応したデバイス上でなら使うことができる)アプリケーションだ。開発予定アプリケーションの外観を作成して、操作性などをテストすることができるのだ。

Pentotypeを使えば、iPad用のモバイルアプリケーションのワイヤフレームを作成することができる。HTML5で書かれているものだが、ネイティブアプリケーションのように動作する。利用者はアプリケーションのUI要素を配置して、そして実際のアプリケーションのように動作させることができるのだ。アプリケーションで提供する機能のシミュレーションを用意して、他の人に見てもらうことができるようになっているわけだ。評価やコラボレーション目的で利用することができる。

但し、これは実際のプログラミングを支援するツールではないことには注意が必要だ。即ち、コード生成機能などは用意されていない。コーディングを開始する前に、ユーザーエクスペリエンス面での評価を行うことが目的のツールなのだ。Pentotypeの共同ファウンダーであるThomas Wanschikは、「PaperとPOPの組み合わせに、画面上のスケッチ認識機能を付けたようなもの」と表現している。

Pentotypeはフリーミアムモデルにより提供される。無料モデルでは2つのプロジェクトを編集することができ、ここで自分にとって役立つものなのかを確認することができる。より多くのプロジェクトを作成したり、あるいは作業者を増やしたい場合などは有料版に移行する必要がある。有料版の代金については今のところ考慮中らしい。但しメールによって個別に対応してもらうことは可能なようだ。

サービスを設立したのはJohannes Dörr、Thomas Wanschik、そしてWaldemar Kornewaldという3人のドイツ人アントレプレナーで、一緒に開発を行なっている。設立から1年半ほど自己資金にて運営してきたが、この度ドイツ/EUのEXIST Gründerstipendiumというプログラムから少額(約12万ドル)の資金を調達することとなった。またドイツのPFH Göttingenという学生インキュベーションプログラムの対象でもあり、無料のオフィスおよびスタートアップ向けサービスを提供してもらっている。

原文へ

(翻訳:Maeda, H)


Light-Botはプログラミングの概念(if-thenなど)を使ってプレイするゲーム

Light-Botは2008年に登場したFlashゲームだが、今回iOSとAndroid向けに作り直されたバージョンは、子どもたちに、ループやif-then節などプログラミングの概念を実際にコードを書かずに学ばせる。

作者のDaniel Yaroslavskiは7年前からゲームを作り始め、今ではカナダのウォータールー大学の学部学生だ。彼はこのゲームを、学校〔高校時代?〕でもらった4000ドルの賞金を使って作った。

Light Botのこれまでのバージョンは700万回プレイされ、iTunesとGoogle Playのストアで五つ星を獲得している。しかしYaroslavskiが言うには、“合衆国やロシアの教師たちは初期のLight-Botゲームを教室で使ってプログラミングの概念の初歩を教えていた”。

“プログラミング教育の分野でサービスやプロダクトを制作提供している人たちの多くは、実際にコードや言葉を使ってプログラミングを教えている。でもLight-Botはビデオゲームだから、より参加性があり、しかも、これからコンピュータ科学を教えるぞ!、という緊張した感じにならない。コンセプトをゲームがマスクして、コードそのものよりもプログラミングのロジックに集中する”、とYaroslavskiは言う。ゲームの最初はQ-Bertに似ていて、小さなロボットにブロックの上を歩かせる。そして徐々に、問題を解決するためにはプログラミングの概念を使わなければならないように、なっていく。

“子どもたちがテキストの壁の前に座らなくてもプログラミングを体験できる、しかも完璧にね”、とYaroslavskiは語る。

ゲームを利用してプログラミング生活技術などを教えるサービス/プロダクトはいろいろある。しかしYaroslavskiがユニークなのは、学生が作ったこと、そしてFlashゲームとしてすでにファンが多いことだ。プログラミングを学ぶ方法としても楽しいし、子どものためのプログラミング言語LOGOに似た面もある。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))


子どものためのプログラミング言語Scratchがブラウザから使えるようになった

うちの3人の子はみな技術に強い方だが、でも残念なことにまだScratchを経験していない。Scratchとは、MIT Media Lab(メディアラボ)のLifelong Kindergarten Group(生涯幼稚園グループ)が作った、オブジェクト指向のすばらしいプログラミング言語だ。でもプログラミング入門のためのこの優れた言語がこれからは、完全にブラウザ上で使えるようになったから、うちの子たちの初体験も近いかもしれない。

Scratch言語のWebインタフェイスはこのページからだ〔日本語あり〕。新バージョンではWebカメラを使った対話もできるし、スプライトも作れる。ベクタ方式のグラフィクスもできるから、画像の精度も良い。もちろん自分でプログラムを書いたり、あとからそれを拡張することもできる。

このWeb上のインタフェイスは以前のデスクトップ版と似ているが、ややシンプルになり、自分のプログラムを自分のコンピュータに保存できるだけでなく、どこかにアップロードすることもできる。オブジェクトを“バックパック”に入れておいて、次に作るプログラムで再利用することもできるから、同じスプライトや背景を新しいゲームでも使える。あらゆることが、ブラウザ上でスムーズにできる。このページでいきなり初めてもよいし、あるいはScratchで作ったScratch 2.0の紹介アニメをまず見てもよい。

この言語とプログラミング環境は年少から年長まであらゆる年齢層の子どもたちに向いているし、キーボードのタイピングやMicrosoft Officeの使い方が中心だった従来のコンピュータ教育よりも、ずっとずっとベターだ。将来の子どもたちをオフィスの囚人(cubicle drone)にしたくない人は、ぜひお試しを。

〔参考書籍。〕

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))