アルゴリズム建築コース3日目

こんにちは^^

前田紀貞建築塾【アルゴリズム建築コース】の講師兼TAの殿村勇貴です!

授業もこの日で3回目となり、受講生はアルゴリズム建築を創る上での思想や、Processingの基礎を少しずつ吸収してきていると思います。

 

      *      *      *

 

それでは早速3日目の授業の様子をご紹介します!

 

アルゴリズム建築講義】13:30〜14:30

f:id:maedajuku_algorithm10:20140606000114j:plain

今回は、アルゴリズム建築を扱ううえで必須となる「非線形とは何か?」についての説明です。「非線形」とは、ある形態や現象の底にひそむ原理が“線形(linear)ではない”ということですが、ではそれがどういう点で「線形」と異なるのか?また、さまざまな分野で使われる「非線形」という言葉が、それぞれの分野で具体的にどのような意味で用いられ、どのようなイメージを伴っているのか…など、「アルゴリズム建築」の実践にあたっては避けて通ることができないこのキーコンセプトを、塾長がさまざまな例を取り上げて解説しました。

 

簡単に言えば、「線形」とは「原因と結果が単純な一対一対応にもとづいて予測できる」というものです。シンプルな数学や物理の方程式のように、そのシステムさえ設定されれば、答は自動的に決定されてくるものをいいます(「シンプルな」と書いたのは、数学や物理の方程式でも少し複雑なものになると「非線形」の関係がそこここに現れてくるためです)。一方で【非線形】とは、そういう予定調和的決定が成されない現象が持つひとつの奇妙な状況といえます。システムがシステム自身で自己調整をするようなシステムについての理解です。
これをリズム・計算可能性・自己組織化・散逸構造・セルオートマトン・DNA・チューリングマシンノイマン型コンピューター・ボトムアップ的手法・フラクタル・カオス、その他沢山の言葉と関連付けて説明されました。

 

大切なことは、アルゴリズム建築とは、計画し得ないものを計画する「非=計画」の姿勢だということです。そう言って分かりにくければ「原因と結果の一対一対応を前提とする従来の“計画”から逸脱しつつ、ある幅を持った空間の“質”“様相”へと接近しようとする」設計思想だと言い換えてもよいでしょう(それでも禅問答のようで分かりにくいかもしれませんが(^_^;)、建築塾で学ぶ塾生たちは徐々にその意味が体得してゆくはずです)。だからこそそれは、「私」や「建築家」「(普遍的)人間」等々という「主体」を信じ続けてきた西洋論理主義と相反する東洋思想(相・禅仏教・老子)などと、本当に深い部分で関わりあってくるのです。

 

もっとも、それが何となく理解できたからといって、一足飛びに建築設計に取り入れることは決して簡単なことではありません。ですが、昔ながらの「計画」概念が限界とほころびを見せ始めてきた今日、これから未来を志す建築人にとって「非線形(あるいは非平衡)」という考え方を理解し、それを各自の建築において実践する途を模索することは、は絶対に避けて通れない道なのです。

 

【プログラミング演習】14:30〜16:30

f:id:maedajuku_algorithm10:20140606000139j:plain

塾長によるアルゴリズム建築講義の次は、実際にパソコンを使いながらProcessingによるコーディングの技術を学ぶプログラミング演習です。塾生たちは、前回は初めて見るコンピュータ言語の扱いに戸惑っていましたが、それぞれしっかり復習してきたこともあり、少しずつ慣れて前よりスムーズにコードを打ち込めるようになってきました。

 

ところで、今期の受講生にはタッチタイピングできる人と、そうでない人がいますが、プログラミングにはタッチタイピングがとても重要になってきます。

 

f:id:maedajuku_algorithm10:20140606000240j:plain

ただでさえ、コードの解析などに時間がかかるのに、コードを打ち込むのにも時間が掛かっていては、なかなかプログラミングの勉強が進みませんよね。大切なのは、じっくり考えて素早くコードを打ち込むことです。早くタイピングできればそれだけ限られた時間を有効に使えますし、勉強する時間も増えるので良いこと尽くしです(*゚∀゚)!前田紀貞建築塾のアルゴリズム建築コースでは、さすがにタッチタイピング自体をじっくり教えることはありませんが、苦手な人のためにタッチタイピング習得に便利なサイトもお勧めしていますので、現在タッチタイピングができない方・苦手な方でも大歓迎です。

 

さて、ここで少しだけProcessingプログラミングの中身についても紹介したいと思います。今回は、Processing習得の1つ目の難関である「forループ」。言語に関わらず、プログラミングにおいて最重要な処理の一つに、コンピュータに同じ処理(演算)をある回数だけ繰り返し行わせる「繰り返し処理」がありますが、Processingにおける「for」はこの繰り返し演算を命令する方法です。

 

例えば、「forループ」を使った簡単なコードを書くと、Processingでこのような2次元グラフィックを描くことができます(゚∀゚)↓↓    

 

f:id:maedajuku_algorithm10:20140606000309p:plain

f:id:maedajuku_algorithm10:20140606000314p:plain

f:id:maedajuku_algorithm10:20140606000318p:plain

f:id:maedajuku_algorithm10:20140606000322p:plain

どの絵にも共通して、「あるモノ(描画要素)の繰り返し」が現れていますよね。これが「for」ループでできることの取っ掛かりのイメージを与えてくれる例です。直接グラフィックをいじることなく、「言葉」で指示を与えるだけでコンピューターがこんな絵を描いてくれるなんて面白いですよね。

ちなみに最初のグラフィックはこんな風にProcessingでプログラミングしています。下半分がこのコードの「forループ」の部分で、画面上下のエッジ上にあるランダムな点同士を結ぶ直線を150本描画しています。Illustratorなどの描画ソフトでこれをやろうとすると大変なのは想像に難くありませんが、Processingなら(一度コードを書いてしまえば)左上の「実行」ボタンを押すだけで何パターンでも異なるアウトプットを出してくれます。また、少しコードを改変すれば線の一本一本の色や太さを変化させたり、それぞれの線がフラフラと動くアニメーションにすることもできるんです。

 

f:id:maedajuku_algorithm10:20140606000421p:plain

ところでこの「forループ」、考え方だけ聞くと簡単そうに見えますが、特に初めてプログラミングに触れる人には少し頭を慣らす必要があるようで、分かる人にはあっさり分かり、分からない人は理解するのに少しだけ苦労します(実際、講師陣も初めてプログラミングに触れた際にはここが最初の「壁」でした(^_^;))。

この「アルゴリズム建築コース」でも「forループがProcessing学習の最初の難関」と言われていますが、その分塾生一人一人がきちんと理解できるよう、豊富な事例やミニテストでしっかり指導します。今期の塾生たちも、復習をしながらコツコツ理解を進めています。最初の難関、一緒に頑張りましょう!

 

      *      *      *

 

いかがだったでしょうか?次回は、前田紀貞建築塾の他のコースである設計演習コースの第一課題の講評会があり、アルゴリズム建築コースもいつもの授業はお休みしてこの講評会を一緒に見学します。4ヶ月間の学習の集大成としてそれぞれの「アルゴリズム建築作品」を発表することになるアルゴリズムコースの塾生達にとっては、どのように建築をつくり、どのようにその魅力を相手(聴衆)にプレゼンテーションするのか?を他コースの塾生のプレゼンやそれに対する審査員のコメントなどから吸収し、考えることのできる良い機会です。お楽しみに^^

 

また、この前田紀貞建築塾アルゴリズム建築コースが気になってきた方や「ちょっと詳細知りたいなと」いう方は、下記URLからこのコースの詳細をご覧下さい↓↓。お問い合わせも随時受け付けていますので、ご遠慮なく(^_^)

 

前田紀貞建築塾【アルゴリズム建築コース】

http://www5a.biglobe.ne.jp/~norisada/SCHOOL/course/index.html - 4

 

 

前田紀貞アトリエ 殿村勇貴

 

アルゴリズム建築コース4日目

こんにちは^^

前田紀貞建築塾【アルゴリズム建築コース】の講師兼TAの殿村勇貴です。

この日はいつもと時間割を変えて、このコースとは別の『設計演習コース』の第一課題発表会が行われました。アルゴリズム建築コースの塾生たちは、この発表会にオーディエンスとして参加し、建築のあたらしいつくり方や、自分の作品を分かりやすく、魅力的に相手に伝える方法を学びます。

 

経験が浅いうちは、自分が発表者の側に立つとどうしても相手(聴いてくれる人)の視点がおろそかになりがちですから、こういう場でプレゼンテーションを「聴く側」になってみることは大事な経験ですよね。また、設計演習コース塾生のプレゼンに対する塾長やアトリエスタッフの熱いコメントや発表者とのやりとりに触れることで、この「前田紀貞建築塾」で建築に臨む姿勢を改めて感じることができるんです。

 

      *      *      *

 

それでは早速第4回目の授業の様子をご紹介します!

 

【『設計演習コース』第一課題発表会】

14:30〜18:00

冒頭に書いたとおり、この日はいつもの「アルゴリズム建築講義」に代わって『設計演習コース』の第一課題発表会が開催されました。アルゴリズムコースの塾生たちは、設計演習コースの塾生たちによる熱いプレゼンテーションを見学します。作品の完成度やプレゼンの技量は人それぞれでしたが、コースは違えど同じ立場である『設計演習コース』塾生たちのプレゼンと、それに対する塾長やアトリエスタッフの講評に直に触れ、アルゴリズム建築コースの塾生たちもいろいろと得るものが多かったはずです。

『設計演習コース』第一課題発表会の様子については前田紀貞建築塾のブログに詳しくまとめていますので、ぜひご覧下さい!

 

【プログラミング演習】13:00〜14:30

この日は上記の課題発表会が開催されたため、発表会前に開始時間を確保してプログラミング演習を行いました。こんなふうに臨機応変に(もちろん塾生たちの都合や要望を聞きながらですが)時間や内容を調整して授業ができるのも、少人数制・徹底指導が売り(の一つ)の前田紀貞建築塾ならでは、です。ちょっと自画自賛…(^_^;)?

 

f:id:maedajuku_algorithm10:20140606001321j:plain

さて、この日のプログラミング演習では、過去3回分の講義内をしっかり理解できているかを確認するためのProcessingミニテストを行いました。テキストに示されたコードを自分のPCでトレース(模写)しているときは何となく理解している気になっても、いざ別の形で理解度を問われると勝手が違うようで、塾生たちは既に習った内容でも意外に苦戦していました(^_^;)。

 

たとえば、出題されたのは次のような問題です(Processingを知らないひとにはチンプンカンプン(*_*)かも知れませんが、お許し下さいm(_ _)m)。

それでは第一問!

 

f:id:maedajuku_algorithm10:20140606001408p:plain

 

つづいて第二問!

 

f:id:maedajuku_algorithm10:20140606001417p:plain

いかがでしょうか?Processingを知らない方のために補足すると、これらの問題はプログラミングの基本となる「デバッギング(エラー箇所の特定と修正)」と「コードの中での数式(算術記号)の意味」にどれだけ頭が馴染んでいるかを測るための問題になっています。

 

他にも色々な問題が出されましたが、このミニテストの大きな狙いは、受講生のProcessingの理解度を測ることはもちろん、それ以上にProcessing習得の大きな“落とし穴”に気付いてもらうことにあるのです。

 

その“落とし穴”とは、Processingの講義を聞きながらコードをトレースしていると、“意外と簡単で分かった気になってしまう”ことです。授業(受け身)では理解したつもりでも、いざ能動的に「コードの間違いを探しなさい」とか「ある絵が出力されるコードを書きなさい」と言われると、とたんに手が止まってしまう人がたくさんいます。どんな学習でもそうですが、教科書を読んだり授業を聞いたりしているその場では理解できた気がしていても、後になってみると自分で答えを導くのは難しい、ということはよくありますよね。つまり本当の理解と「理解した感じ」とは別物なんです。

 

Processing学習の場合で言えば、ただ無頓着に例題のコードを写していたり、意味も分からずコピー&ペーストをしていると、(それでもコード自体は動いてくれるので)このように理解した「つもり」になってしまいがちです。特にProcessingのようなオープンソース言語の場合は、初学者ではすぐに書けない・読めないような複雑・長大なコードもネットに無料公開されているので、それをコピー&ペーストして実行すると、それなりに複雑で迫力のある結果が得られてしまうのです。そうすると「俺って意外と理解できてるな!だってこんな複雑な結果が得られたんだから」と勘違いしてしまったりするのです。(そんなことないだろ!と思うかもしれませんが、本当によくある話なんです。かく言う僕も昔は…(^_^;))

 

ではどうすれば本当に「理解」できるのか。そこで大切なのは、ひとつひとつのコードが何を表していて、どういう結果が得られるのか、丁寧に解析することです。コードひとつひとつで何が起こっているのか説明できるようになれば、ほかにも応用できるし、間違い探しなど朝飯前になります!外国語で「旅先で使えるフレーズ」(コンテキストが限定された応用の利かない言葉)だけを覚えるのと、単語や文法の意味や用法を丁寧に学ぶのとでは、学習の「深さ」が違いますが、それと同じようなことがプログラミングの学習についても言えるのです。

 

この演習を通して、塾生たちには各自の現時点での理解度を確認してもらえたと同時に、この“落とし穴”にも気付いてもらえたようです。こうやって「できないこと」にハッキリと気づくことが、次のレベルに進むモチベーションになるんですよね。

それでは皆さん、気を改めて引き締めて頑張っていきましょう!^^

 

      *      *      *

 

いかがだったでしょうか?次回のプログラミング演習では、Processing第2の難関「配列(Array)」を扱います。最初のころは「以外に簡単じゃん」という顔をしていた塾生たちも、段々と表情に余裕がなくなってきたような…(^_^;)。お楽しみに!

 

また、この前田紀貞建築塾アルゴリズム建築コースが気になってきた方、もう少し詳しく知りたいな、という方がいらっしゃいましたら、ぜひ前田紀貞建築塾ウェブサイトでこのコースの詳細をご覧下さい↓↓

前田紀貞建築塾【アルゴリズム建築コース】

http://www5a.biglobe.ne.jp/~norisada/SCHOOL/course/index.html - 4

 

 

前田紀貞アトリエ 殿村勇貴