パスワードを忘れた? アカウント作成
15437 story

子ども向けマルチメディア開発環境Scratch 19

ストーリー by kazekiri
geekに育て 部門より

oddmake 曰く

BBC記事より。MIT Media Labは、アニメーションや音声、音楽などを組み合わせたコンテンツを子どもでも優しく作れるScratchというプログラミング環境を作ったと発表した。グラフィカルなコンポーネントを組み合わせることで実装を行う開発チームのリーダーMitchel Resnick教授はLEGO MINDSTORMSにインスピレーションを与えたプロジェクトに携わったこともあるそうで、レゴでロボットプログラミングするように、メディアプログラミングするソフトウェアがあればいいと思って作ったそうだ。Scratchによって複雑なプログラミング言語によらなくても、誰もが創造性を発揮することを学べればいいと教授は語っている。たれこみ人はアクセスできなかったが、サイトにはWindows版およびMac版ソフトがあり、OLPC版も開発中だという。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • Squeak なのか (スコア:3, 興味深い)

    by dsb (29217) on 2007年05月16日 18時54分 (#1157919)
    これってかのアラン・ケイ氏が関わっている Squeak [wikipedia.org] の上に作られているようですね。
    最近の Squeak は Smalltalk の処理系というより、こうしたマルチメディアや教育用途として頑張っているのは興味深いです。
    • Re:Squeak なのか (スコア:5, 参考になる)

      by keita (844) on 2007年05月16日 20時08分 (#1157958) 日記
      WindowsとかMacOSXとか書いてあるから、Linuxじゃ動かないのか、と残念に思っていましたが、
      Squeakなら動くじゃん!と思ってやってみたらやっぱり動きました。
      Windows版zipをダウンロード、展開、コマンドラインから squeak Scratch.image するだけ。

      これ、なかなか面白いです。
      とりあえず猫をぐるぐると回転させて遊んでみましたがとても簡単で誰でも出来そうです。
      ただ最初は「when (緑旗) clicked」のブロックを一番上にくっつけておかないといけないのに気付かなくて戸惑いました。
      あと個人的には、ブロックの消し方がハサミマークをクリックして、というのが分かりづらかったことくらい。
      それ以外はまさに直感通りにプログラムが組めるのでさくさく。
      値の型がブロックの形で表現されているのがとても理解しやすいと思いました。

      なお、berylを使っていると変なところ(ボタンなど)が透過しちゃって困ります。
      今は後ろに黒いの(GNOME端末)を置いて対処していますがいずれ直るといいなぁ。
      親コメント
      • by Jadawin (2174) on 2007年05月16日 22時38分 (#1158088) 日記
        >値の型がブロックの形で表現されているのがとても理解しやすいと思いました。

        かなり昔にSGIのIRIXマシンで、ヴィジュアルプログラミングのできる
        画像処理系があったはずです。それでデータ型を実際のパズルピース
        のように表現していました。そのあたりがルーツかもしれんですね。

        #ついでにTrust & Betrayalとか言ってみるテスト。
        親コメント
    • by toworu (27387) on 2007年05月16日 20時22分 (#1157973)
      Squeakの教育用プログラム環境としては"SqueakToys"があり、子供(小学校低学年)にやらせたことがありますが、難しいと思いました。かなり本格的なオブジェクト指向で、柔軟性は高そうなんですが…
      Scratchというのがもっと簡単なのであれば、試してみたいと思います。
      親コメント
    • by Anonymous Coward
      Lispの*scratch*かと思った。
    • by Anonymous Coward
      過去にはAltoのSmalltalkを子供達に使わせたりとか、コンピュータを利用した学習プログラムの実践など、
      アランケイの活動を鑑みれば、興味深いも何も当然の結果だと思います。
      子供達でも容易につかえるSmalltalkという言語の特性は興味深いですが。

      #他の言語と何が違うのか
      • by marinkarin (10618) on 2007年05月17日 13時10分 (#1158419)
        初期のSmalltalkは,もっとビジュアルだった(文字じゃなくてアイコンみたいのを使ってプログラムを組んだ)って聞いたことがあります。『子供でも使える』のは,その頃のSmalltalkなのかもしれません。
        親コメント
  • by 0093 (29457) on 2007年05月16日 19時08分 (#1157925)
    記事をぱっと読んだ限りではOpenDocを思い出したけど
    それとは全然違う思想のモノなのかしら?
    • by Anonymous Coward
      こういうのは過去にいろいろ作られていますよね。

      わたしはIntelligent Padを思い出しました。
      これもLEGOブロックに刺激されたとか言う話だったはず。
      • なかなかこういうプログラミング環境は、本職のプログラマーにはうけないですよねぇ。

        こういうのにインスピレーションされて、RubyのIDEとか誰か作ってくれないかなぁ。
        ブロックとかあるんだし。
        • by keita (844) on 2007年05月17日 9時05分 (#1158267) 日記
          三時間くらいScratchをいじってみたのですが、
          結局のところ実際的なプログラミング環境としては面倒くさい感じがしてきました。
          意味論的にも統語論的にも直感的にプログラムを構成できる点はいいのですが、
          じゃあ学習以外の側面で文字列を打ち込むのと決定的に違うのは何かと言えば
          統語エラーが絶対に起きない点くらいかと思います(まぁ意味論的なエラーも減りますが)。
          これならタイプした方がよっぽど早いかなぁ、とも考えてしまいます。

          逆に言えばそのくらいしか違いがないのだから、
          工夫の仕方次第では実用的なIDEを作ることは可能かも知れません。
          しかし労力に見合うかはやや疑問があります。

          なお、Rubyにこれを適用するためには、いくつか表示上の工夫が必要であろうと思われます。
          例えばブロックを選択しようとする時、Scratchは関数が少ないから簡単に選べます。
          でもRubyだとそれなりの数が必要で、それをどうやって効率的に選択させるのかが問題です。
          また値の型を形で表しているのでそこをどう対応付けるのかも結構悩みそうです。
          Scratchは数値、文字列、真偽値、あとはブロック列くらいしか値の型はなさそうですから困らないと思いますが、
          Rubyだとクラス毎に形を変えるのは数が多過ぎてちょっとつらそう。
          基本的なクラスだけ対応しても、それでも多過ぎな感じかも。

          あとRubyではメソッドの引数に型の指定が出来ないのでそれもどうしたらいいかが悩ましいところです。
          型推論?とか考えるとかなり辛い感じがしてきます。
          そんなわけでいきなりRubyはアレなので、
          MLなどの型がしっかりしている言語の方が無難だろうと思います。

          私はIDEよりもRubyなどのソースをこの形式で表示してくれるビューアが欲しいと思いました。
          プログラミングを知らない人にソースを見せる時には、役に立ちそうかなぁ、と。
          親コメント
          • by Anonymous Coward on 2007年05月17日 9時26分 (#1158276)
            ことば(文字)ベースの言語が圧倒的に強いのは、
            (普通の)計算機に「文字を」打ち込む機械つまりキーボード(だけ)がついてるせいなんですよね。
            マウスもあるけど、あれはデータ入力効率でキーボードと比べれば「おまけ」的なデバイスでしかないでしょう。

            日本語の文字を直接入力できるキーボードが無いもんだからIMをかます羽目になり、「それが」面倒だから日本語プログラム言語も流行らない、なんてな構図がありましたね。同じことかと。Scratch用のキーボードというかボタンが並んだモノがあれば良いんじゃないかな。

            >MLなどの型がしっかりしている言語

            しっかりというだけじゃなく、純粋関数型言語にありがちな「型を組み合わせる」感じは、Scratchのようなアプローチに合いそうですね。OOPも型の組み合わせですが、OOPの場合は組み合わせを済ませた新しい型は元の材料の型を意識させない方向に行くので、この場合はそれが却って都合悪そう。

            ところでLisp用で正にセルをビジュアルに並べてコーディングできるツールが有りますね。
            親コメント
            • by SteppingWind (2654) on 2007年05月17日 12時31分 (#1158388)
              ことば(文字)ベースの言語が圧倒的に強いのは、 (普通の)計算機に「文字を」打ち込む機械つまりキーボード(だけ)がついてるせいなんですよね。

              それだけじゃなく, 人間の使う語彙の量が圧倒的に豊富だからでしょう. 基本的な単語だけで数100から1000以上. 複合語を合わせればゆうに万を超えます. 実際にU*ix系のmanページあたりを見ても数1000以上の項目が並んでいます. 日ごろよく使うシンボル名だけでも100を下回ることはないんじゃないでしょうか.

              こうなると, ビジュアル型プログラミングで主流のメニューによる選択という方式は, 脳内ハッシュによるダイレクトな文字入力(+エディタ・IDE等による補完)という方式に比べて, どうしても操作が煩雑になるのだと思います. あるいは, 自分のプログラミング対象に合わせてメニュー構成などをカリカリにチューニングすればビジュアル型プログラミングも有効になるのかもしれませんが, これはこれで柔軟性や一般性に欠けそうな気もしますし.

              さらに大規模な実用プログラムでは, 修正や調査に際して特定のパターンの検索や置き換えといった要求が必ず出てきます. ところがこうした要求に対してビジュアル型プログラミングは弱いんですよね. 一旦, 文字によるソースコードに落として修正し, 再度ビジュアル環境に取り込むってパターンが多いんですが, 出来たソースが読みにくくてパターンの指定がしづらいとか, ソースを下手に修正すると取り込めないとかの制限がやたらに多くて.

              結局, 現状ではビジュアル型プログラミングって

              • 使用するシンボル名の少ない特定領域
              • 一目で全体が把握できる程度の小規模プログラム
              • 長期・多プラットホームにわたるメンテナンスを考慮しない

              あたりの条件が揃っていないと使えないように思われます.

              親コメント
              • by keita (844) on 2007年05月17日 14時54分 (#1158489) 日記
                こうなると, ビジュアル型プログラミングで主流のメニューによる選択という方式は, 脳内ハッシュによるダイレクトな文字入力(+エディタ・IDE等による補完)という方式に比べて, どうしても操作が煩雑になるのだと思います.

                現在Scratchでは
                Motion, Looks, Sound, Pen, Control, Sensing, Numbers, Variables
                の八つのメニューがあって、それぞれの中に2-15個くらいのブロックが並んでいます。
                正確には数えていませんので8x10で80種のブロックがあると仮定しておくとして。
                例えばRuby-1.8.5では Kernel.methods.size が133なので、
                組込み関数はうまくすれば現状のScratch同様にコンパクトに収められそうです。

                加えてオブジェクトに対する操作の場合、コンテキスト依存でメニューとその内容を変えてやれば
                意外とコンパクトに収めることが出来そうな気がします。
                オブジェクト指向なら案外この問題は解決できたりしないでしょうか。
                10個くらいのメニューから選択 → 中のブロックを選ぶ → ブロックをドラッグ&ドロップ
                なら、やや面倒ですが一応3ステップですので、複雑さに関しては許容範囲内だと思います。
                でもやっぱり多少工夫した程度では文字で入力した方がよっぽど早いわけですが。

                さらに大規模な実用プログラムでは, 修正や調査に際して特定のパターンの検索や置き換えといった要求が必ず出てきます. ところがこうした要求に対してビジュアル型プログラミングは弱いんですよね.

                Scratchは検索・置換どころか、現状では変数名の変更すら出来ません。
                プログラミングに際しては極めて慎重に設計を行なう必要があるようです。
                いくら子供向けとは言え、さすがにこれはつらいなぁと思いました。
                検索とか置換がビジュアル型言語では絶対に出来ないというわけではないだろうと思いますので
                (検索条件もブロックで組み立てられそうだし)、
                最優先で対応してくれないかなぁと感じました。

                # それにしてもScratchは変数の扱いが雑
                # 変数は宣言的なんですが、変数宣言を消してもコードには変数が残されたまま
                # 一緒に消してくれればいいのに
                親コメント
            • by keita (844) on 2007年05月17日 10時08分 (#1158293) 日記
              > ところでLisp用で正にセルをビジュアルに並べてコーディングできるツールが有りますね。

              とのことなので、興味があるので調べてみました。
              それらしいものでみつけることが出来たのは
              ペンインタフェースを用いた視覚的な Lisp 教育環境 [interaction-ipsj.org](PDF)
              ですが、こんな感じのものでしょうか。
              この文章でも入力効率の問題でマウスが劣るって言ってますね。
              やはり入力デバイスの工夫から始めないといけないのでしょうか、うーん。

              映画「マイノリティ・リポート」に出ていた空間に浮いてるディスプレイを手で操作するようなヤツ、
              あれがあれば実用的になるんですかね。
              でもそうだとすると未来のプログラマはすっごい派手に動き回ってコーディングすることになりそう。
              体力勝負?
              親コメント
            • PanasonicのJR-200を思い出した。 キーそれぞれにBasicのコマンドが当てられていた。
              親コメント
  • by Anonymous Coward on 2007年05月17日 2時43分 (#1158204)
    Top ViewがMagic carpet of Bushって。
    日本なら偏向教育って叩かれる所だけどアメリカでは平気なのか。
    まあ、公務員じゃないから問題ないんだろうけど。

    冷静に考えると、なにかと役人を叩くくせに教員には役人であることを強要するなんて変な国だよな、日本って。
    • by Anonymous Coward
      冷静に考えると、なにかと役人を叩くくせに教員には役人であることを強要するなんて変な国だよな、日本って。

      役人の不正や怠慢がたたかれているのであって役人と言う職業をたたいているワケではありません
      また、公務員としての教員が公務員以前状態であるために役人であってくれと言っているのであって両者を混同するのは大変よろしくありません。

      こんだけじゃオフトピで荒らし扱いされちゃうので本題。

      ビジュアルプログラミングってどうしても入力手段がよろしくない気がします。
      もっとこう画面に直接タッチする形式のデバイスじゃないとまだるっこしいというか、
      マウスとか画面と一体化していないタブレットとかは画面上のポインタ経由の間接参照でしか無いのが問題なのかもしれないと思うわけです。
      実際タブレットPCとかPDAを指先で使い始めるとちょっと不思議な一体感があります、これもそういう進化系のデバイスと一体化してほしいところです。

typodupeerror

あと、僕は馬鹿なことをするのは嫌いですよ (わざとやるとき以外は)。-- Larry Wall

読み込み中...