==== vm464 :: programming for artists 3 (proce55ing) ==== Course Code: VM464 Title: PROGRAMMING DIGITAL MEDIA Instructor: GOODWIN, DOUGLAS Day/Time: T 6:00-9:45 [[vm464_links]] === description === Processing is an open source programming language and environment for people who want to program images, animation, and interactions. It is used by students, artists, designers, researchers, and hobbyists for learning, prototyping, and production. It is created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook and professional production tool. Processing is developed by artists and designers as an alternative to proprietary software tools in the same domain. Students will be encouraged to think critically about technology. We will develop a vocabulary for discussing art made in technical media by through a survey of existing work. Students will learn how to develop their own software for the processing, manipulation, and synthesis of audio and video. The result will be the useable projects for composition, installations, and performance. Other programming languages will be introduced as extensions to the processing environment. === materials === You will want a portable drive to hold the media you develop in this course. This may be a USB drive, a stack of writable optical disks (CD or DVD-R) a Firewire drive or USB 2.0 drive. === plagiarism === It is the responsibility of all Emerson students to know and adhere to the College’s policy on plagiarism which is available on the Emerson web site at the following URL: http://www.emerson.edu/student_life/index.cfm?doc_id=1006 .If you have any question concerning the Emerson plagiarism policy or about documentation of sources in work you produce in this course, you should speak to your instructor. === disabilities === If you believe you have a disability that may warrant accommodations in this class, I urge you to register with the Disability Services Coordinator, Dr. Anthony Bashir at 216 Tremont Street, 5th Floor (617-824-8415), so that, together, you can work to develop methods of addressing needed accommodations in this class. === focus! === No laptops or computers or monitors should be on during class discussions & critiques. === lateness/absence === lateness is better and absence. however: - each time you arrive late to class your class participation grade will drop by 1 percentage point. - Each day that your assignment is late, it will lose one grade percentage point. - if you have more than one unexcused absence you risk failing the class. ==== syllabus ==== === week 01 [1/22] === hello class, hello programming, hello [[http://proce55ing.net|proce55ing]] - what some other people are doing (video medley) - developing your own texture - code: what is it, where did it come from? - bits: images, spreadsheets - vectors: roads, maps, topography - charts: thinking with images * exercise [[vm464_01]]: register for the wiki, introduce yourself. * read: [[http://www.paulgraham.com/hp.html|hackers & painters by paul graham]] * homework [[vm464_011]]: === week 02 [1/29] === particles: quanta, bits, and granularity - variables: scope and data types - testing: conditionals - sequence, linearity and flow - indirection, making someting greater than a sum of parts **processing book** - Structure 3: Functions (p. 181-193) - Shape 3: Parameters, Recursion (p. 197-204) * reading/presentation: [[http://www.openp2p.com/lpt/a/556|umbrellas and taxis]], tacoma narrows bridge * exercise [[vm464_02]]: build a function to clone your kitty, make 1000 kitties === week 03 [2/5] === - functions followup the [[algorithm]] - rule-oriented art: [[the Oulipo]] - nouns: procedures & functions - increasing complexity with arguments (by value, by reference) * reading/presentation: the outlipo, fluxus * exercise [[vm464_03]]: work on your proposals === week 04 [2/12] === == final project proposal due == nouns: storage and data arrays - brain = computer ? - memory & forgetting - storage: bits, buckets, bytes - higher level storage: tables, arrays - maintaining state - databases and xml * reading/presentation: stephen johnson, john searle: chinese room * exercise [[vm464_03]]: draw a model of kitty's brain (in proce55ing) - ec: make kitty's brain dynamic, i.e. make kitty respond to stimuli === week 05 [2/19] === Iteration - logical operators: george boole - testing for conditions * reading/presentation: the sorcerer's apprentice * exercise [[vm464_05]]: a program that can count to 2001 === week 06 [2/26] === Object-oriented objects - procedural vs. object-oriented coding - personal verbs: making 'go home' execute something different for everyone - data and functionality - arrays (of objects) - object + vector = animation * reading/presentation: christopher alexander, [[http://www.nettime.org/Lists-Archives/nettime-l-9807/msg00085.html|demo or die]] * exercise [[vm464_06]]: redraw the kitty with a function, make the kitty an object, make a littler of kitties with the array === week 07 [3/4] === making software - modularity = reuseability - what is a code library and how are they used? - working together: xtreme programming - source code control - creating libraries of code: what's available, what do you need? [begin the negotiation] * reading/presentation: [[http://www.nd.edu/~networks/Linked/photo.html|linked]], xtreme programming * exercise [[vm464_07]]: sketches for students of English * [[vm464_transliterations]] === week 08 [3/11] === spring break, no class! === week 09 [3/18] === visit from [[Alex François]] Interactivity - peripherals and events - listening to hardware, talking to hardware * reading/presentation: david rokeby, paul demarinis * exercise [[vm464_09]]: continue group work on the libraries, distribute === week 10 [3/25] === hardware: what is it, where did it come from? - making custom hardware what computers know - psychophysics * reading/presentation: DIY culture, cathedral & bazaar * exercise [[vm464_10]]: === week 11 [4/1] === human vs. computer vision - what computers see - PImage, pixels, live video (cameras) - VR calculates the bandwidth of experience - image processing * exercise [[vm464_11]]: make your computer recognize you === week 12 [4/8] === strings and networking * reading/presentation: ted nelson * exercise [[vm464_12]]: do a search, preen and format the results === week 13 [4/15] === sound: wave or particle? - signal and noise - types of noise * reading/presentation: michel chion, * exercise [[vm464_13]]: make some signal! make some noise! === week 14 [4/22] === mapping: what is it? why do you want to do it? * reading/presentation: lev manovich * exercise [[vm464_14]]: transcode an image into sound and vice versa === week 15 [4/29] === [[vm464_finals]] === week 15 [5/6] === [[vm464_finals]] recap