Processing을 활용한 프로그래밍

  • 백진욱
  • 2009.09.24부터 10회
  • 금요일 오후 7시30분~9시30분
  • 250,000원

강의 소개

디지털 시대에 프로그래밍은 예술을 창조하는 가장 강력한 도구 중 하나이다. 그러나, 이공학 교육을 받은 사람이 아닌 일반 대중이 처음 시작하기에는 많은 어려움이 있다. 이 강좌에서는 뉴미디어 아트/디자인을 위한 쉽지만 강력한 프로그래밍 언어로 많은 사람들이 사용하고 있는 프로세싱을 통해서 프로그래밍의 기본을 습득할 수 있도록 한다.

프로세싱 사이트

http://www.processing.org/

프로세싱 관련 책들

http://www.processing.org/learning/books/

Daniel Shiffman의 블로그

http://www.shiffman.net/

OpenProcessing

http://www.openprocessing.org/

강의 계획

1강: Introduction to Processing Language and Computer Programming
프로세싱 언어를 이용하여 제작된 작업들과 관련 사이트들을 살펴보고 프로세싱 언어를 통해서 어떤 일들을 할 수 있는지 알아본다.
더불어, 디지털 아트 / 디자인 분야에서 사용하고 있는 다른 다양한 언어들도 소개한다.
– 프로세싱 개발 환경의 사용법
– 프로세싱 사용할 때 정보를 얻는 방법
– 프로세싱 프로그램의 구조

2강: Introduction to Computer Graphics
프로세싱에서 제공하는 드로잉 함수들을 사용하여 이미지를 만들어본다.
– 드로잉 오더 : Painter’s Algorithm
– 컬러 스페이스 -디지털 컬러 모델 (RGB, HSB, …)
– RGB color의 구조
– 드로잉 함수 사용법 (2차원 드로잉 함수들)
– text 표시
– 이미지 및 비디오 이용
– 수학 : 2차원 직교 좌표계
– 프로그래밍 : 변수(variable), 블럭(block), 주석(comment)

3강: Interaction
키보드와 마우스를 이용한 인터랙션 : 인터랙티브하게 이미지에 변화를 주는 방법들을 배워본다.
– 마우스의 좌표 및 버튼 상태를 이용하여 이미지에 변화를 준다.
– 키보드를 이용하여 이미지에 변화를 준다.
– 써드파티 사운드 라이브러리를 이용하여 소리 데이터를 비주얼로 바꾸어본다.
– 간단한 UI Element를 만들어본다.
– 수학 : 피타고라스 정리, 2차원 벡터
– 프로그래밍 : (if / else), for loop 소개, boolean 데이터
써드파티 라이브러리를 설치하고 사용하는 방법 : sonia

4강: Data & Process
프로세싱에서 제공하는 기본적인 데이터타입에 대해서 알아보고 데이터를 가공하는 방법에 대해서 배운다.
이미지 데이터의 픽셀값을 변경함으로써 Array에 대해서 배워본다.
유한한 메모리 공간을 활용하기 위해 데이터 타입들이 어떻게 구성되어 있는지 습득한다.
– Data
– Primitive Data Type : int, short, long, byte, float, double, char, boolean
– Object : Array, String
– Process
– calculation
– arithmetic operation, logic operation, relational operation
– control
– if / else if / else, switch / case
– 프로그래밍 : Video library, Movie library

5강: Structures
프로그램을 구조적으로 조직화하는 방법에 대해서 배운다.
– loop : loop의 정의와 요소들
– for (while, do while은 뒤에 다룬다.)
– 함수와 모듈화 프로그래밍
– 하향식 프로그래밍 기법
– 함수의 개념 및 구조, 변수의 스코프
– 클래스 및 오브젝트 소개
– 수학 : 함수의 개념, 결정론적인 세계관
– 프로그래밍 : ArrayList

6강: Object Oriented Programming
사용자 데이터 타입을 클래스로 정의하여 사용하는 방법에 대해서 배운다.
– 클래스 정의 및 인스턴스화 / 인스턴스의 사용
– Inheritance / Overriding / Polymorphism
– 다양한 GUI Element를 만들어봄으로써 inheritance와 polymorphism을 습득한다.
– 프로그래밍 : HashMap

7강: Object Oriented Programming II
개체 지향 프로그래밍의 기본 개념인 inheritance와 polymorphism를 연습한다.
– 벡터와 물리학의 기본 개념인 선형 동역학계에 대해 배우고 파티클 시스템을 만들어본다.
– 수학 : 3차원 직교 좌표계, Vector
– 물리 : 선형 동역학계, 파티클 시스템
– 프로그래밍 : ArrayList

8강: Interconnection between Programs
프로세싱과 다른 환경을 이어서 서로 데이터를 주고 받는 방법을 배워본다.
– Processing의 Network 라이브러리와 OSC(Open Sound Control)를 이용하여 프로세싱 프로그램 간에 데이터를 교환한다.
– OSC를 이용하여 MAX/MSP, SuperCollider, Quartz Composer, Flash Action Script 등 다른 개발환경과 데이터를 교환한다.
– Arduino 보드와 Serial Port를 이용하여 데이터를 주고 받는 방법을 배워본다.
– 수학 : 구면 좌표계
– 프로그래밍 : sonia live input

9강: Computer Vision
가장 기본적인 비전 라이브러리인 blobDetection과 JMyron을 이용하여 컴퓨터 비전의 기초에 대해서 배워본다.
– 이미지 프로세싱의 기본 개념을 배워본다.
– blobDetection 및 JMyron을 이용하여 카메라를 이용하는 인터랙티브 작품을 만드는 법을 배워본다.

10강: Work Presentation
프로세싱을 이용하여 각자 제작한 작품을 서로 공유하고 피드백의 시간을 가진다.

강사 소개

백진욱

미디어 아티스트, 프로세스 디자이너

수학 및 컴퓨터공학 전공으로 포항공과대학교를 졸업하였고, 동 대학원에서 컴퓨터공학을 전공하였다. 디자인 에이전시인 VINYL의 뉴 미디어 아트랩을 거쳐 현재는 개인 작업을 준비중이다. VINYL에서 수행했던 다수의 설치 작업 외에 클래지콰이, 페퍼톤스, 정재형 등 VJing 퍼포먼스와 조각가 최우람, 건축가 양수인 등과 함께 작업했고 미디어 아트 그룹 randomwalks의 멤버로 활동하고 있다.
아트센터 나비와 홍익대 디자인혁신 센터에서 강의하였고 2009년부터 지금까지 문지문화원에서 강의를 해오고 있다.