Foundations in Interactive Art and Design

"It is not a question of real versus virtual but of understanding how we live rather than simulating the where." -- John Canny and Eric Paulos

"...an interface is not an image. it can be a plug, the ringing of a telephone, some push buttons, or the parameters of a program. it is not a one-to-one simulacrum, but a one-to-one-to-another-one transmission of parallel streams, a process of translation between different levels of code." -- Pit Schulz

Class Policy
Attendance is mandatory, role will be taken at the beginning of each class. Do not arrive late or leave early. All reading and projects must be handed in on time.

Course Objectives
The course stresses the translation of general cognizant skills into creating virtual and real metaphors that invite participation by viewers. We will begin by thinking and making observations about the real space around us and move towards creatively weaving original observation and information into rich visual allegories that portend toward new forms of narrative. The course serves as an introduction into computer programming for visual artists. Using the open source programming environment Processing artist students will utilize code as a visual medium.

Course Work

    The class reading and assignments will be divided into the following topics:
  1. Theoretical perspectives on human-computer interaction: Read assigned essays
  2. Introduction to programming skills for computer-based interaction: Maintain an active sketchbook
  3. Computer interaction in contemporary art and design: Artist presentation and exhibition trip

Course Readings are online

Weekly Schedule

Week 1
Demo: Access your TCNJ web space, create a basic page with a table or css class divs to organize sketch book samples and written course work.
What is programming and how have artists used it?
Introduction to the Processing Environment: Open, Save; Run; Sketchbook; Exporting
Opening and compiling examples included with Processing
Commenting; Coordinates; Color; Line, Primitives; Drawing Attributes
size()
background()
line()
Iterations and for()
Sign up for artist presentations

Assignment:
Create a website for this course.
Write a one/two page program that instructs another person on a process.
Rework the following sketches to create your own sketch:
Statement and Comments
Points and Lines
Shape Primitives
Vertices

Reading:
A Brief History of Programming Languages
Reas on programming and art
(map of statement)
Suggestion: download processing to your local computer.


Week 2
Intro to OOP
Processing Variables and Datatypes; Relational Operators; Conditional Statements
Exploring Processing
Demo by Tiffany Holmes

Assignments:
Rework the following sketches to create your own sketch:
Variables
Integers and Floats
Datatype Conversions
True/False
Conditionals 1
Conditionals 2

Reading:
Wikipedia intro to objec-oriented programming
Processing defined by Josh Nimoy


Week 3
Processing more Constants and Variables; Iteration: for()
for() loops
while() loops
Demo by Tiffany Holmes

Assignments:
Rework the following sketches to create your own sketch:
Increment and Decrement
Continuous Lines
Iteration
Embedded Iteration
Logical Operators

Reading:
J.C.R. Licklider, Man-Computer Symbiosis (1960)


Week 4
Processing Methods, Functions and Classes Demo by Tiffany Holmes

Assignments:
Rework the following sketches to create your own sketch:
Functions
Recursion
Recursion 2
Objects

Reading:
Douglas Engelbart, Augmenting Human Intellect (1962) (PDF)


Week 5 Processing Arrays, Constructors, random() and randomness
Demo by Tiffany Holmes

Assignments:
Rework the following sketches to create your own sketch:
Array
Array 2D
Array Objects
Characters and Strings

Reading:
Myron W Krueger, Responsive Environments (1977) (PDF)


Lecture and Workshop with Nic Collins, 12:30-1:20pm Lecture in 101 Science Complex followed by 1:30-4:30 Workshop, attendance required

Week 6
Input

Assignments:
Rework the following sketches to create your own sketch:
Mouse 1D
Mouse 2D
Click
Mouse Signals
Interpolate
Constrain
Storing Input
Keyboard

Reading:
Bill Nichols, The Work of Culture in the Age of Cybernetic Systems (1988) (PDF)


Week 7
3D Processing

Assignments:
Rework the following sketches to create your own sketch:
Primitives 3D
Vertices 3D
RGB Cube

Reading:
Sonambiente, Sound Art Festival Review 1
Sonambiente, Sound Art Festival Review 2
Sonambiente, Sound Art Festival Review 3
Sonambiente, Sound Art Festival Review 4


Week 8
ESS: Audio with Processing

Reading:
Golan Levin, Computer Vision in Interactive Art (1988) (PDF)


Lecture by Ricardo Miranda, 2-3:20 Library Lecture Hall, attendance required

Week 9
Connecting Processing to USB devices: webcam, game controller
JMyron (WebCamXtra)

Reading:
Interview of Ken Rinaldo


Week 10
Constructing Final Project

Reading:
Interview with Tom Igoe


Week 11
Constructing Final Project

Reading:
Interview with Marie Sester


Week 12
Constructing Final Project

++Technical Resources++
Processing.org
Processing Language
Learning Examples
Processing Libraries
Koser, code samples
Tom Igoe, code samples
Develop Processing
Technical Reference

++The Art of Code++
Whitney Exhibition "Codedoc"
We Make Money Not Art
Rhizome.org ArtBase
Neural Magazine
Index of Artists' Work

++Craft of Hacking++
Make Magazine
Instructables
Leah Buechley samples
Low Tech Sensors

++Physical Computing++
Wiring.org
Arduino
Igoe course
Paulus Blog

++Shoping++
Spark Fun
Parallax
BasicX

++Courses @ Other Schools++
Physical Computing
ITP Physical Computing
Sensor Workshop