2008年度2年前期 グラフィカルプログラミング演習(processing演習)

sample0011.jpg

この授業は、アートやデザイン分野の学生にプログラミングを効率よく学習させるため組み立てられたものです。
現在のアートやデザインにおいて、プログラミングの知識があるという事実は、基礎的な教養としても、就職の際のスキルにしても年々その重要度が高まっています。しかし、芸術系の学生にとってはその敷居が高いのも事実です。
よって、この授業ではプログラミングによってグラフィックの描画やサウンドのエフェクト、動画のエフェクト、ネットワークなどの、直接表現に結びつく実践的な方法を学びます。
開発環境は、processingを利用して行ないます。processingは、マサチューセッツ工科大学で開発されたプログラミング教育用ツールです。
非常に短いコードでプログラムが書けるようになっていますので、初心者でも心配する必要はありません。

位置づけとしては1年のメディアプログラミング演習Iの応用編ですが、メディアプログラミング演習Iを選択していない学生も対応できるようにカリキュラムは構成されています。ですから、引き続き勉強したい人はもちろんのこと、1年次にプログラミングの授業を取っていない人は挑戦し、挫折してしまった人はリベンジをしてみましょう。

1. 何故、アートやデザインにプログラミングが必要なのか

学生と話をしていてプログラミングの話をすると、急に暗い顔になり、「ああ、苦手」という言葉がよく返ってきます。おそらくその学生たちは、プログラミングの学習の仕方がいまいち分からないのと、その深遠な可能性がまだ見えて来ていないのでしょう。それは、教える側の責任もあると思います。実際、自分も独学でJavaを勉強しようとした時、一度挫折しました。しかし、何年か後にもう一度勉強し直してプログラムができるようになったのです。
ですから、現時点でプログラミングに対する苦手意識がある学生でもいつでもやり直せると考えています。要は、なぜ勉強しなくてはならないのかと、どうやって勉強するのかをもう一度見直せばいいのです。

あともう一つ、プログラミング=数学だと思っている学生も多いでしょう。確かにそうなのですが、数学が苦手でもプログラミングが苦手だとは限りません。実際私も数学は得意ではありません。しかしプログラミングは楽しいと思いました。自身の数学の苦手意識を超える面白さがプログラミングにはあったのだと思います。
ですから、数学が苦手だから無理だ、などという先入観は捨てて、新たな気持ちで臨んでもらえればいいと思います。

プログラミング言語の知識を持っておくということは、例えば建築家が数学の知識があるのと同じようなものだと考えてもいいでしょう。例えば、アートプロジェクトやwebサイト構築などを行なうにしても、実際の現場ではプログラマーとの共同作業という状況が多々あります。その際にプログラミング言語の知識があるのとないのでは大きな違いがあります。プログラミング言語の知識がないアーティストやディレクターの言うことなんて、プログラマーは聞かないでしょう。もしくは仕方なく聞いていても、内心は馬鹿にしているかもしれません。

また、このステップを避けて通ってしまうと、結局はソフトウェアの範囲内でしかものを作れず、既に何年も前に発表された作品の二番煎じ的なものしか作れないのです。自己満足的なことをしたければそれでもいいでしょう。しかし、少なくとも私のこの授業では、新しいメディアアートの可能性を垣間見せてくれる表現者を育てたいと考えています。
ですから、理想的なアプローチとしては、まずアイデアを洗練させ、そのプロジェクトに最適なメディアやプラットフォームを選ぶ。ですから、場合によってはMax/MSP、Flash、Processingでもいいかもしれません。しかし、調べてみたら、これは別の言語(Java、Cなど)を選択しないとアイデアを実現させることが難しいと分かったとします。その際にはそれらの言語を短期間で習得するぐらいの馬力が必要になってきます。要は、様々なアイデアを実現させるために、基礎体力をつけておく必要があるのです。
そのような底力のある学生の育成がこの授業の目的です。

2. カリキュラム構成のキーワード

【表現的側面】
点、線(直線・ベジェ曲線)、図形、色彩、アニメーション、インタラクション(キーボード入力、マウス入力)、画像、サウンド、ビデオ入力、ネットワークコミュニケーション

【アルゴリズム的側面】
変数、変数の型、if、else、for、while、switch、配列(1次元配列 〜 n次元配列)、三角関数、モジュール化

3. 受講生

リスト

4. スケジュール

この授業は前期のみの開講です。
基本的には1年のメディアプログラミング演習Iの続きなのですが、最初の3週はその復習もかねてプログラミングの基礎的な演習を行ないます。
その後、画像処理エフェクト、サウンド、ネットワークなどの応用実習を行ないます。

4/23 – 第1回 プログラミングの基礎1

自己紹介
なぜインタラクティブアート/ネットアートにプログラミングが必要か
なぜprocessingなのか

processingのダウンロード、インストール
processingの基本的な使い方
参考書・参考サイト

【技術的側面】processingとJavaの関係変数while, forの理解デバッグコメントアウトコードを分かりやすく書くということ

【参考作品】1 2 3 4

【課題】Processingの課題をアップロードするためのサイトを作成する(次週まで)。作ったら僕にメールするように。
体裁は自由。htmlで書いてもいいし、ソフトウェア(Dreamweaver等)やブログで作ってもかまわない。が、無料サービスで広告がついているサイトは、講評の際非常に見苦しいので使用しないこと。

【用意するもの】スケッチブック

4/30 – 第2回 プログラミングの基礎2

前回の復習 for, while, forの入れ子
条件分岐(if, else if, else)
【課題】「シンメトリー」、「アシンメトリー」をテーマに、それぞれ美しいグラフィックを2点作成しなさい。要素は基本図形(点、直線、円、四角形など)のみとする。色彩はグレーのみ。
サイズ: 400 x 400 pixel

5/7 – 第3回 アニメーション、インタラクション

アニメーション
インタラクション(キーイベント、switch、マウスイベント)
【参考作品】oskar fischinger – Removable Tongue Oscar Fischinger – Danse Macabre
Norman McLaren – Mosaic
【課題】「拡散」、「収縮」をテーマに、それぞれ美しいグラフィックを2点作成しなさい。要素は基本図形(点、直線、円、四角形など)のみとする。色彩は自由。必ずインタラクションによるアニメーションによって構成されていること。
サイズ: 400 x 400 pixel

5/21 – 第4回 配列

1次元配列の理解
2次元配列の理解
【中間課題】ドローイングソフトを作成しなさい。一般的なドローイングソフトのように、線種、色の選択、削除の基本的なボタンは最低限備えていること。
また、必ずアニメーションやインタラクションの要素があること。それ以外は自由。

5/28 – 第5回 sine, cosine, 関数による部品(モジュール)化

sine, cosine
関数による部品(モジュール)化

中間課題用のボタンのサンプル

6/4 – 第6回 中間課題発表

前半:ドローイングソフトの作成
後半:講評

6/11 – 第7回 画像処理1

ライブラリの利用
画像処理

6/18 – 休講

6/25 – 第8回 画像処理2

画像処理2
最終課題発表

7/2 – 第9回 サウンド/ネットワーク

サウンド
ネットワーク

7/9 – 第10回 制作期間

7/16 – 第11回(前期調整期間) 講評

ゲスト講師を招いての講評
講師:木本圭子さん

1 thought on “2008年度2年前期 グラフィカルプログラミング演習(processing演習)

  1. Pingback: yasushi noguchi class » Blog Archive » 2009年度 3年ゼミ概要

Comments are closed.