表現者にプログラミングをおしえること

人気の記事:

コメント

  1. Takachin@冬 より:

    自分の通っている美大の学科ではDBNを通して「プログラミングとは何ぞや?」というクラスがあります。また最近ではFlashでごにょごにょやるというクラスもできています。また僕の現在所属するクラス(ゼミ?)はこれらとは別に音響表現に特化したMaxやSuperColliderを使います。

    多分、どこの大学でもプログラミングと表現(ここでは、デザイン、アート両方をくくる言葉として”表現”という言葉を使わせてもらいます)を教えるというやり方は同じなのでしょう。

    さて、ここでおきてくる問題として、「Proce55ingを教育で利用して、他の言語への理解へつながるのか?」という疑問があるとおもうのですが、その点に関しては問題ないのでしょう。

  2. Takachin@冬 より:

    例えば、表現のためのプログラミングを教育を教える環境としてはFlashという手もありますが、「Macromedia依存」を増やす結果となり、Flashでしかできないこと以外は考えられないという病気も併発してしまいます。また、Flash単体では最近流行りつつある、「タンジブルな表現」をすることには適していない。なぜなら、Flash単体では外部通信を行う方法が非常に限られていて、デバイスの制御を行うといったことはかなり難度は高くなるからです。

  3. Takachin@冬 より:

    では同様にMacromedia製品である、「Director」をつかって教育を行った場合はどうか?これを使えば各種エクストラをつかうことによって、「タンジブルな表現」をすることは十分にできます。

    しかし、現在のDirectorの学割での価格、5万円オーバーの値段はどうか?たいがいの学生はMacとフォトショップ、イラストレータを準備するので精一杯でとても現実的ではない。仮に購入できても、やはり「Macromedia依存」は避けられない。また、Flashが高機能になればなるほど、Directorは衰退していくというジレンマがあり、今後ひょっとしたらDirectorははつばいされなくなるのでは、という不安もある。

  4. Takachin@冬 より:

    そういった理由で、表現者のためのプログラミング環境として、私はProce55ingを推薦する。これを利用すれば「Macromedia依存」ということもなくなり、それとは逆にP5で得たノウハウをC++とOpenGLに発展させていくというレベルアップもできるようになる。

    AmitPitaru氏による「Sonia」の拡張の例のようにフリーソフトウェアで有志による拡張やチップスが大量にあるというのもメリットの一つである。これはLinuxのようなGNUの精神をきちんと継承している。もちろん、フリーソフトウェアである。

    これまでどおり、Javaそのものをゼロから教育するよりもProce55ingを教えたほうが手っ取り早い。なぜなら、Javaそのものでグラフィックを教えるのには、

    public void paint(Graphics g)などといったところから解説しなければならない。この解説は絵師にとって、いざ絵を描こうと思ったときに赤、青などの絵具そのものの鉱物の調合比を解説しているようなものであり、とても回りくどいからである。

  5. Takachin@冬 より:

    えっと、いろいろと思いつくものを書いてみたんですが、つっこみでも何でもいいので続けてみてください。

  6. kara_d より:

    僕がprocessingを触って思ったことは、takachinさんが書いたように、C++とOpenGLに発展とかJavaへの発展というprocessingをマスターしちゃったとしてもその先に見えている可能性を感じ取る事ができたというのがあります。こういう先に見える可能性は学習する人間のモチベーションを高めてくれそうですよね。

    processingでなくてもいいのですが、processingの場合は「setup」で定義して「loop」で実行みたいに一言でいえちゃうくらい基本はわかりやすいから学習用に向いてると思うのです。(学習しやすいようにそうした、という部分もあると思います)

    学習用としてもうひとつ思い付くのはPythonなのですが(これは表現のためというわけではないですが)、Pythonもわかりやすく出来てる上に学習用としての側面ありますよね。こちらはインタラクティブな方向じゃなくてWebアプリケーションとしての方向性を垣間見れますよっていうアプローチがあるとおもいます。googleだってPythonを使ってるんですよみたいな例をあげてモチベーション高めれるみたいな感じです。

    プログラムの機能からはいるよりは、どんなことが出来るのかっていうビジョンというかそういうことをわかりやすく見せてくれたり、勉強した先にはどんな世界があるのかっていうことを教えてもらうと、モチベーションがあがってやってみようってなるような。。そんな感じがするです。

  7. kara_d より:

    むりやりこじつけると、googleのまとめたデータがあって、そういうのとFlashのような表現面の言語が合わさるとウェスキャンプ氏のニュースマップみたいなのにつながるとかいう例も出せますよね。

  8. dotimpact より:

    興味あるお話なのでコメントします。僕は美大のわりとコンピュータ寄り授業のサポートをして今年で3年目なんですが、1年目はJava、2年目はJavaScriptを使っていて、今年はproce55ing(の予定)です。

    Takachinさんのおっしゃる通りJavaは(多くの場合一番求めているところの)画面への出力をするためのお膳立て記述が多すぎて、行き着く前に拒否反応が出てしまうという感じでした。1年目の授業ではJavaと平行してPOV-RAYという一昔前のCUIレイトレーシングソフトで「文字(式)で絵を描く」練習というのもやってみましたが、こっちは比較的簡単な記述ですぐ絵が出るので、わりと興味をひっぱれていました。

    もうひとつ、授業でプログラムを教えるにあたって、ステップアップが可能かどうかというのもありまして、たとえば止まった絵の作りかたをちょっとがんばって覚えたとして、それを動かすのが「同じくらいの手間の増えかた」で、できたほうがいい。さらにインタラクティヴな仕掛けを盛り込むとして、はやり同じくらいのレベルの上がりかたであるべきで、どこかのポイントで覚えるべきこと、考えるべきことが一気に増えるのはいただけないです。プログラムはちょっと…という学生でもHTMLまではそれなりにこなせるので、その次のレベルとしてJavaScriptを…というのが2年目の目論見だったのですけど、JavaScriptを使うにはDHTMLも同時に覚える必要があるという落とし穴がありまして。あまりうまくいきませんでした。

    proce55ingでの授業はまだなので実際のところはわかりませんが、以上の点はクリアできているのかなと思います。

  9. dotimpact より:

    さらに言うとマウス+ディスプレイという環境を超えた表現もしたいという希望もあるので、そのへんもproce55ingに期待したいところです。ビデオキャプチャとかまだ検証してないのですが、どうなのかな。

    もうひとつはネットワーク関係ですが、ここはproce55ingでもちょっとまだ弱いのかなという印象です。むしろネットワーク指向の教育用言語があるといいのかななんて思ったりもしますけど。

  10. ‭Taka より:

    dotimpactさんの

    >はやり同じくらいのレベルの上がりかたであるべきで、どこかのポイントで覚えるべきこと、考えるべきことが一気に増えるのはいただけないです

    に激しく同意です。

    Flashは、コードとトゥイーンが複雑にからまってしまって、プログラム的思考を学ぶことが難しいですよね。ほとんどの人がアニメーションの分岐や、フラグ立て以上のところに踏み込めないでいると思います。分岐程度は楽チンなのに、コードで動きを制御しようとした瞬間にオブジェクトの概念を理解しなければならないというのはつらいと思います。

    教育ツールとしてproce55ingのよいところは、ややこしい手続きが極力省略されて、かつてのbasicのように、ロジック部分だけに純化されているところだと思います。「思考をコード化する」ことを学ぶには非常によいのだと思います。

    proce55ingを通じて、再起処理やループ、ソートといった基本的な概念を学ぶことができれば、それはmaxでもflashでも転用していけますもの。

  11. dotimpact より:

    ですね。学生さんからはflashがやってみたい、教えてくださいという声も少なくないんですが、flashをやりだすと絶対にツールのレクチャーにしかならないし、コードがタイムラインやオブジェクトに分散してしまうので、一番学ばせたいアルゴリズム的な思考が身につかないんですよね。

    (なので「体験版をとりあえず触ってみればー参考書もいっぱいあるし」と答えますが、だいたい挫折してるみたいです)

    proce55ingは「とりあえず描画できる」というのも大きい。ほかに何も書かなくてもpoint(10,10);と書けば点が描ける。ほんとの初心者(しかも美術系の女子)だと、コードと結果の対応関係も半信半疑な(ていうか、理解を拒否している)なところがあるので、コードを変えると結果が変わる、望む結果のために適切なコードが必要、といういちばん基本的な感覚の養成ができるのがいいと思います。

  12. Takachin@冬 より:

    dotimpactさん>

    マウス+ディスプレイという環境を超えた表現というのも今調べています。とりあえず今学校のクラスの仲間内で、TELEOちうハードウェアの購入計画があります。これが手に入り次第、ディスプレイを超えた表現のきっかけとしてP5でコントロールしてみようかと考えています。ちなみに、Max/MSPでTELEOをコントロールして先輩が卒製を作ったという実績があります。

    TELEO:

    http://www.makingthings.com/products/products.htm

    その卒製 Back to the future:

    http://www.idd.tamabi.ac.jp/b46126/jap.html

  13. kara_d より:

    > dotimpactさんの

    >proce55ingは「とりあえず描画できる」というのも大きい。ほかに何も書かなくてもpoint(10,10);と書けば点が描ける。

    そういえばBASICでも基本的な命令でドットを打つやつありましたよね。画面上にドットを打つだけでも最初の頃はすごく世界が広がった感じがしたのを覚えてます<BASICでドットを打つ命令は忘れてしまいましたが。。

    こういう、結果が目で確認出来る描写関連の命令が簡単なのって大事だとほんと思います。

  14. Takachin@冬 より:

    私はRubyを基盤にして、Processingみたいなものを作りました。

    まだ全然配付してないんですけど…。

    http://eto.com/2001/sgl/

    一番大きな違いは、Webブラウザ上では動かないっていう点ですね。

    その代り、自由度は高いのですが。

  15. Takachin@冬 より:

    >ガテン系研究員さん

    それは、学校でうわさで聞いてましたが、DBNのカラー版だ

    そうですね。

    OpenGLがRubyで操作できるとは!これは熱い!

  16. Takachin@冬 より:

    xyzzyとか推奨していて、尋常でなくやばいですね。

    C++とOpenGLかObjectiveCとOpenGL覚えたほうがいいかなと考えてましたが、RubyでDBN風に扱えるとは!これはOpenGLのグッドラッパーですね。

  17. nogami より:

    >http://eto.com/2001/sgl/

    これ、すごいですね!!

    RubyでOpenGLが操作できるのは良いです。Cで素でOpenGLを使うのは辛すぎます。

    というか、多摩美でDBNを授業を担当してらしたんですね。その授業を受けたかったです。うわ〜。

  18. nogami より:

    >デザイナー/アーティスト(デザイナーの卵/アーティスト予備軍も含む)に対して、プログラミングを教えること

    以前、大学の教員とこの話をして。結構こじれたことがあります。。

    技術者、非技術者とボーダーを引きたがることが僕は不思議です。単純にスキルの問題だと思うのですが。プログラム言語は、絵筆と同じように単なる道具でしかないと思うのです。同じように、色彩やレイアウトも、数値解析、物理演算と同じレベルで扱うべきだと思いますし。

    あとは、好みの問題のような。

    Flashでアルゴリズムやプログラミングの思想を教えるのは、確かに難しいかもです。トゥイーンとか、タイムラインとか直接プログラミングに関係に無い要素が多すぎます。シンボル、インスタンスはOOPぽいですが。

  19. dotimpact より:

    ○サ美でFlash教えてますが、ActionScriptの真髄?とか、アルゴリズムの妙技?になかなかたどりつけてなくて、大変ですわ。結局スクリプトの前にFlash自身の操作も教えなきゃいけないし。まあ大変ですわ、実際。

    あと、ActionScriptはいいも悪くもいい加減に書けてしまうので、プログラミングっていう観点からだと、教育には向かないような。

  20. dotimpact より:

    >Takachinさん/マウス+ディスプレイを超えた表現

    入力だけならマウスを改造すると結構いろいろできたりしますね。○子美の1年の授業ではUSBホイール付ボールマウスを全員に与えてとりあえず分解させて、これでなんか変なものを作れーという課題がありますが、けっこう奇想天外なものがでてきておもしろいです(ちなみに制御はホイールによるQTムービーのコマ送りが基本)。

    Processingにもホイール入力を拾う関数を希望したいです。

    TELEOはけっこう高いですね…

  21. dotimpact より:

    >ガテン系研究者さん/http://eto.com/2001/sgl/

    あ! 増井さんのASCIIの連載で読んだけどどこにあるんだっけ? とこれ最近探してました。

    触ってみよっと。

  22. dotimpact より:

    > nogami さん

    > 同じように、色彩やレイアウトも、数値解析、物理演算と同じレベルで扱うべきだと思いますし。

    これは非常に賛成です。色彩やレイアウトといったとたんに、感性や暗黙知の領域に入ってしまうように思えますが、基本的には色彩やレイアウトには、そのようでなければならない、というちゃんとした論理がありますからね。

    僕も大学で iアプリのプログラミングの授業を担当したことがありますが、プログラミングに対しての学生の興味を引くように心がけています。

    僕も、N88-BASIC で画面にドットを描いて、それを見て興奮して「宇宙を感じた」のを覚えていますが、プログラミングによって広がる世界を感じてもらえれば、自分で勝手にどんどん勉強していって、スキルを上げていく学生はたくさんいますね。

    proce55ing の場合には、敷居が低いというのも重要ですが、一通り理解した後に次につなげていくということの容易さがあると思います。

    proce55ing で一通り書けるようになれば、生のJavaを書くのもそれほど難しくは無いでしょう。proce55ing の 3D 関数なんかの push()/pop() なんかは OpenGL そのまんまですね。開発者の人は、そういうところも考えて設計していると言っていました。

  23. dotimpact より:

    うお、増井さん、いつのまにか雑誌記事にしてるし! 全然知らなかったよ。ていうか、そういえば書くよ言ってたね。載ってたとは知らなかった。買わなきゃ。

  24. dotimpact より:

    いつのまにか増井さんのサイトにも情報がありました。

    http://pitecan.com/ASCII/diary0403.html

  25. dotimpact より:

    そうだ、Processingのメリットとしてほかにも、プログラム環境も含めたマルチプラットフォーム性がありますね。美術系の大学だとMacもいまだ強いわけですけど、家には親のWindowsマシンしかありませんみたいな学生もけっこういますので、どっちでも使えたほうがいい。あとProcessingはエディタ環境も込みなので、入門的には悩みが少なくていいと思います。

  26. nogami より:

    >saitatsuさん

    >3D 関数なんかの push()/pop() なんかは OpenGL そのまんまですね。

    proce55ingを始めて触ったときに、一番おどろいたのがこの点でした。p5の開発者たちは次へのステップアップのことを、確実に考えているのだなと感じました。

    >Processingのメリットとしてほかにも、プログラム環境も含めたマルチプラットフォーム性がありますね。

    教育用ツールとしてだけではなくて、表現の為の道具としてもproce55ingは有用なツールに成りえると僕は思うのですが、その為にも環境に依存しないということは重要だと思います。

    手軽に製作できて、手軽に公開できるというのは強いです。

  27. Takachin@冬 より:

    3Dの話が出てきていますが、Proce55ingはBenFryが制作した独自のAPI、’Bagel’が利用されています。

    http://acg.media.mit.edu/people/fry/bagel/

    2Dはポストスクリプト風に、3DはOpenGLでレンダリングすると書かれています。saitatsuさんのおっしゃるとおり、理解を次につなげていくことをかなり考えてつくられています。これがProce55ingに深みを与えている点でもあります。

  28. Takachin@冬 より:

    本家フォーラムでプログラミングの教育について面白い投稿をみつけました。

    *skill levels

    http://processing.org/discourse/yabb/YaBB.cgi?board=CourseBlueprints;action=display;num=1067270181

    ワークショップをやろうとしたときのCasey氏からのアドバイスのようです。

    0. use computer only for email or writing

      コンピューターをメールかワープロでのみ使う

    1. basic software design tools (photoshop, illustrator, desktop publishing)

      基本的なソフトウェアのデザインツールが使える(photoshop, illustrator,DTP)

    2. basic software design tools and basic HTML

      基本的なソフトウェアのデザインツールが使え、基本的なHTMLが扱える

    3. basic design software, HTML, javascript, actionscript, php

      基本的なソフトウェアのデザインツール、HTML、Javascript、actionscript、phpを使える

    4. fluent design software, HTML, javascript, actionscript, php

      巧くソフトウェアのデザインツール、HTML、Javascript、actionscript、phpを使える

    5. basic programming language like Java, C

      基本的なプログラム言語(JavaやC)が扱える

    6. fluent with a programming language like Java, C

      巧くプログラム言語(JavaやC)が扱える

    というように事前に教える人をランク分けするといいそうです。

  29. Takachin@冬 より:

    また、実際に授業やワークショップでProce55ingを導入する場合、”コースウェア”を導入すると面白いです。タマビのDBNをつかった授業でコースウェアが使われていました。同じテーマで課題が与えられ、他の人のスケッチを一覧でき、ソースも見れるので面白いです。

    http://classes.design.ucla.edu/Fall03/157A/index.html

    UCLAとUniversidad de Los Andesの例が参考になると思います。

  30. 大富豪家3.0 より:

    ASCII原稿お見せしてなくてすみません > ガテン樣

    でも書いていいかとは聞きましたよぉ。

    Processingについては、

    * なんかすごそー、と驚く(!)

    * なんだただのJava+ライブラリじゃん、とがっくりする(orz)

    * でも環境よくできてるしインパクト大きそう、と愕然とする

    という段階で進んでます。