Interactive Arts Programming

SYLLABUS
Spring 2007

University of California, Irvine


Time: Tuesday and Thursday 12:30-1:50 pm
Place: 216 Music and Media Building

Professor Christopher Dobrian
Office hours by appointment
211 Music and Media Building
(949) 824-7288
dobrian@uci.edu


This course undertakes a study of artistic issues and programming techniques involved in the development of interactive computer art and music. It includes some study of theoretical background in computer-human interaction, basic tenets of programming, practical exercises in programming interactive computer multimedia art, and the conceptualization and design of a complete work of interactive music and/or art.

Class will consist of interactive lecture-demonstrations on general issues of interactive arts programming, concentrating on the Max/MSP/Jitter programming environment. Students will also be expected to study Max/MSP/Jitter actively on their own outside of class sessions. Students will complete specific programming assignments every week, and will also work on an ongoing, constantly developing, software project of visual and/or sonic art.

Plan of study

Suggested readings

Course requirements

Grading

Communication

Regarding Academic Integrity


Plan of study:

This seminar will deal specifically with the Max/MSP/Jitter programming environment. A graphic programming environment, Max/MSP/Jitter is an application for writing your own application or for designing interactive programs. It's a suitable environment for programming music performances, sound and art installations, animations, and video, particularly for situations involving human-computer interaction. Each student in the class will be required to become very fluent in this programming environment and to design and realize artistic projects with it.

Technical topics to be covered include: basic tenets of programming (variables, data structures, data transforms, testing, flow control, encapsulation, debugging, user interface design, etc.); the Max/MSP/Jitter programming environment; review of specifics of the MIDI software protocol, digital audio, and digital video; algorithmic composition of animation, video processing, and/or music; algorithmic computer cognition of user input and gestures; and "artificially intelligent" computer behavior.

Students will be presented with specific assigned programming tasks, and will also be required to design and implement their own programming project/artwork.

Class sessions will consist of a) participatory lecture/demonstrations on the above-mentioned technical topics, b) group work on programming assignments and projects, and c) presentation and discussion of student projects in progress and the specific technical and aesthetic issues encountered. Work outside of class will include reading, self-teaching/research, and (primarily) design and programming of assignments and interactive art projects.

Below is a week-by-week plan for the class sessions. This plan is subject to ongoing revision based on the interests and needs of the students.

Week 1, April 3/5

Basic tenets of programming
Overview of Max/MSP/Jitter

Week 2, April 10/12

Basics of MIDI, digital audio, digital video, animation
Data mapping: mapping relationships between MIDI, audio, video, space, color

Week 3, April 17/19

Control functions in audio, music, and animation
Audio processing in MSP
Digital video processing in Jitter

Week 4, April 24/26

Temporal form, the experience of time, timing in Max
Algorithmic composition of notes, sounds, and images
Uses of randomness and probability

Week 5, May 1/3

Composition and design considerations for interactive realtime performance
Midterm project presentations

Week 6, May 8/10

Development of final project concept, proposal, and timeline

Week 7, May 15/17

Audio processing in MSP (cont.)
Digital video processing in Jitter (cont.)

Week 8, May 22/24

Sonification of mathematical and logical formulae and data
Issues of cognition: detection of characteristics in data

Week 9, May 29/31

Artificial Intelligence
Iterative functions and recursive functions 
Emergent systems and artificial life

Week 10, June 5/7

Rehearsal/discussion/critique of final projects

Final Exam, Thursday June 14

Presentation of projects, 9:30-12:30
(note that this begins one hour earlier than the officially scheduled final exam time)

Course requirements:

  1. Participation in at least 90% of all class meeting time.
  2. Adequate preparation for class discussions: timely completion of all readings and all programming assignments.
  3. Design and implementation of one small computer program for audio/music and/or video/animation, preferably one that includes realtime interaction between computer and user. The result should be a short musical composition, animation, or audio/visual program. This program may be a preliminary study for a larger programming project.
  4. Design and implementation of one complex computer program for music (or sound) and video (or graphics), resulting in a composition, performance, or "user experience" (5 minutes or more) produced using that program. The resultant work should depend on realtime human-computer interaction as an integral part of its construction. This project could be based on the smaller project, but must be significantly more developed and refined.
  5. All programs should be sufficiently well commented and documented for another person to understand how they work.
  6. Finished programs and pieces (in addition to being presented in class) should be documented and handed in on an appropriate storage medium (website, CD, DVD, etc.) such that the work can be recreated or studied.

Grading:

Grading for the course will be based on timely completion of all the course requirements. Since every assignment is considered a vital part of the educational experience of the course, serious and high quality work is expected at all times. Grading will be based on three levels of programming assignment:

  1. Assigned exercises to learn specific programming concepts (50%),
  2. Small programming/artistic project (20%), and
  3. Large programming/artistic project (30%).
Helpful class participation and conscientious documentation will be considered when evaluating each student's work.

Communication:

It is suggested that students exchange information, criticism, discussion, etc. via online group discussion and/or email whenever they have a question (or a discovery) of potentially general interest to the group. An electronic "NoteBoard" (online discussion group) has been established for this class. A group email address has been also established for this class, allowing you to send email to everyone in the class at once.

Regarding Academic Integrity:

Collaboration between students in this course is strongly encouraged. Students are urged to exchange ideas, opinions, and information constantly, and to help each other with learning, development, production, and documentation of programming/artistic projects.

Plagiarism of any kind is in direct violation of University policy on Academic Honesty, and penalties for plagiarism can be severe. However, in most programming circles it is common practice to excerpt small portions of existing tested, reliable software which has been developed in one's own workgroup (in this case, by the members of the class) for inclusion in a larger programming effort. Whenever this is done, the original programmer should be credited for the included code. In this class you will be expected to attribute due credit to the originator of any ideas, words, images, sounds, or work which you incorporate substantially into your own work.


This page was last modified April 2, 2007.
Christopher Dobrian
dobrian@uci.edu