Assistant Arts Professor
ITP (Interactive Telecommunications Program)
Tisch School of the Arts
New York University
Big Screens
This class is dedicated to experimenting with interactivity on large-scale screens. Students will develop one project over the course of the semester, culminating with a showing at InterActiveCorps’ 120 X 12-foot video wall at their corporate headquarters on 18th and the West Side Highway. A mock-up of the system will be available at ITP for testing. Class time will be divided between independent project development, critique, technical demonstrations, and field trips to IAC. Group projects are encouraged and students should be comfortable programming in Java and Processing..
The Nature of Code
Can we capture the unpredictable evolutionary and emergent properties of nature in software? Can understanding the mathematical principles behind our physical world world help us to create digital worlds? This class will focus on the programming strategies and techniques behind computer simulations of natural systems. We’ll explore topics ranging from basic mathematics and physics concepts to more advanced simulations of complex systems. Subjects covered will include forces, trigonometry, fractals, cellular automata, self-organization, and genetic algorithms. Examples will be demonstrated using the processing (http://www.processing.org) environment with a focus on object oriented programming.
Programming from A to Z
There are 16,000 free books in the Project Gutenberg digital catalog. Google print is scanning millions. With all this digitized text, what can we do with it beyond simply search and browse? This course will focus on programming strategies and techniques behind procedural analysis and generation of text. We’ll explore topics ranging from evaluating text according to its statistical properties to the automated production of text via artificial intelligence. Student will be encouraged to develop their own systems and methods, from poetry machines to intelligent spiders to evolutionary language generators, etc. Examples will be demonstrated using Java and Processing with a focus on advanced data structures (linked lists, hash tables, binary trees) associated with storing and manipulating text. Prerequisite: H79.2233 Introduction to Computational Media or equivalent programming experience.
Introduction to Computational Media
What can computation add to human communication? Creating computer applications, instead of just using them, will give you a deeper understanding of the essential possibilities of computation. This requires that you learn to program the computer. The first few weeks of this course focus on four very basic programming concepts, if statements, repeat loops, variables and routines. The Java-based ‘Processing’ graphical programming environment is the primary vehicle for the class. Another programming language and environment will also be introduced very quickly to show the generality of these programming concepts using a different environment and syntax. Weekly assignments are required through most of the semester. The end of the semester is spent developing an idea for a final project and implementing it using computer programming.
Class Web Site 2006: http://www.shiffman.net/teaching/icm
Class Web Site 2005: http://itp.nyu.edu/ICM/shiffman
Class Web Site 2004: http://www.shiffman.net/itp/classes/ICM
Textbook Project: http://book.shiffman.net
Procedural Painting, Spring 2004
This introductory level course covers the basics of computer programming within the context of images, drawing and responsive visual forms. The first few weeks will focus on basic programming concepts: variables, arrays, conditional statements, and iteration. The second-half of the course will cover more advanced topics, such as recursion, 3D transformations, and image processing. Processing will be used as the primary development environment for the class.
Class Web Site: http://www.shiffman.net/itp/classes/ppaint/

Pingback: SEAEC::BLOG » Blog Archive » Daniel Schiffman
Pingback: links for 2006-05-31 at verb.log