この授業は、デザインやアートの分野の学生にプログラミングを楽しく学習してもらうために組み立てられたものです。
現在のデザインやアートにおいて、プログラミングの知識があるという事実は、基礎的な教養としても、就職の際のスキルにしても年々その重要度が高まっています。しかし、芸術系の学生にとってはその敷居が高いのも事実です。
よって、この授業ではプログラミングによってグラフィックの描画やサウンドのエフェクト、動画のエフェクト、ネットワークなどの、直接表現に結びつく実践的な方法を学びます。
開発環境は、processingを利用して行います。processingは、マサチューセッツ工科大学で開発されたプログラミング教育用ツールです。
非常に短いコードでプログラムが書けるようになっていますので、初心者でも心配する必要はありません。
位置づけとしては1年メディアプログラミング演習Iの応用編です。ですから、引き続き勉強したい人はもちろんのこと、これまでプログラミングに挫折してしまった人もやり直すことができます。
1. 何故、デザインやアートにプログラミングが必要なのか
学生と話をしていてプログラミングの話をすると、急に暗い顔になり、「ああ、苦手」という言葉がよく返ってきます。おそらくその学生たちは、プログラミングの学習の仕方がいまいち分からないのと、その深遠な可能性がまだ見えて来ていないのでしょう。それは、教える側の責任もあると思います。実際、自分も独学でJavaを勉強しようとした時、一度挫折しました。しかし、何年か後にもう一度勉強し直してプログラミングができるようになったのです。
ですから、現時点でプログラミングに対する苦手意識がある学生でもいつでもやり直せると考えています。要は、なぜ勉強しなくてはならないのかと、どうやって勉強するのかをもう一度見直せばいいのです。
あともう一つ、プログラミング=数学だと思っている学生も多いでしょう。確かにそうなのですが、数学が苦手でもプログラミングが苦手だとは限りません。実際私も数学は得意ではありません。しかしプログラミングは楽しいと思いました。自身の数学の苦手意識を超える面白さがプログラミングにはあったのだと思います。
ですから、数学が苦手だから無理だ、などという先入観は捨てて、新たな気持ちで臨んでもらえればいいと思います。
2. カリキュラム構成のキーワード
【表現的側面】
点、線、図形、色彩、アニメーション、インタラクション(キーボード入力、マウス入力)、サウンド、ビデオ入力、ネットワークコミュニケーション
【アルゴリズム的側面】
変数、変数の型、if、else、for、while、switch、配列(1次元配列 〜 n次元配列)、sine、cosine
4. 評価
出席率 50%、小課題 15%、中間課題 15%、 最終課題 20%
みなさんの理解度を見ながら小課題の数が増減することがあります。上記の配点はあくまで目安です。
5. 備考
この授業は、Processingのバージョン3.4を使用して行います。3.5.3が最新バージョンなので、自宅での作業には最新版で問題ないでしょう。
6. スケジュール
基本的には1年のメディアプログラミング演習Iの続きなのですが、最初の2週はメディアプログラミング演習Iの復習を行ないます。
その後、画像処理エフェクト、サウンド、ネットワークなどの応用実習を行ないます。
■4/17 – 第1回 プログラミングの基礎を復習
Processingの準備
Processingの操作画面
Processingの参考サイト/参考書
点・線・図形の描画
変数
色彩
コメント、インデント
画像の表示
テキストの表示
演算
while, for文の理解
デバッグ、エラーへの対応
コードを短く書く方法
if文の理解
変数の種類
データ型の変換
■4/24 – 第2回 プログラミングの基礎を復習
運動1
インタラクション1
インタラクション2
運動のスタディ
インタラクションのスタディ
■5/8- 第3回 配列
■5/15- 第4回 3Dプログラミングの基礎
■5/22 – 第5回 現実世界を変換する(画像処理)1
■5/29 – 第6回 現実世界を変換する(画像処理)2
ライブラリの利用(OpenCV for Processing)
■6/5- 第7回 中間課題の制作時間
■6/12 – 第8回 中間課題発表
■6/19 – 第9回 ランダム、ノイズ
■6/26 – 第10回 サウンド1
■7/3 – 第11回 サウンド2
■7/10 – 第12回 ネットワーク
■7/17 – 第13回 最終課題制作
参考:オブジェクト指向プログラミング
関数
オブジェクト指向プグラミング1
オブジェクト指向プグラミング2
■7/24 – 第14回 最終講評
■7/31 – 予備日
7. 課題
小課題1:
キャプチャ映像のピクセルをオブジェクトや図形に変換することによって、面白いエフェクトを制作する。
中間課題:
「変化する立体」を自由に作成する。必ず、3Dのオブジェクトを作成すること。
変形は、移動、回転、拡大縮小を含む。
・500 x 500pixel以内の画面を使用すること。
・なるべく長く変化するように工夫すること。
・画像処理を組み合わせても構わない。
小課題2:
三角関数を使って、美しい図形を描画してください。
条件:
400x400pxの画面を使用
静止画もしくはアニメーションを作成する
色彩自由
実習では点だけしか使用していないが、図形は何を使用しても構わない。
最終課題:
サウンドビジュアライザを作成してください。
- 曲は自分で好きなものを選ぶ
- 画面は800 x 800 pix以内
- アニメーションが単調にならないように工夫してください。1分ぐらいは飽きない(変化がある)アニメーション、インタラクションを目指す
- 時間管理のプログラムは、3.1.7のタイマーが参考になる。