Introduction To Computational Media (ICM)

Shawn Van Every
Fridays 3:30 PM - 6:00 PM
Fall 2006
H79.2233 Section 1

Important Resources:

Syllabus (this page):
Main ICM Page:
ICM Mailing List:
Homework Wiki:


Dan Shiffman has been working on an ICM book tentatively entitled "Pixels, Patterns and Processing".
You may purchase a copy at: New University Copy & Graphics, 11 Waverly Place (between Mercer & Greene). Use Dan Shiffman's name as the instructor (it isn't listed under my name) and Introduction to Computation Media as the course name.
Additionally, Dan has a website up for feedback (which is highly encouraged):


Office Hours:

Tuesdays and Thursdays 2 PM - 4 PM


20% Assignments
20% Class Participation
30% Final Project
15% Paper
15% Midterm


Mandatory, unexcused absences will affect your final grade. If you are going to be absent, please let me know ahead of time if you can.


Excessive lateness will affect your grade. Don't be late.


Laptop use is prohibited while other students are presenting or during discussion. While I am lecturing you may use them for note taking or class related work. In other words, respect your fellow students and don't check your email.

Weekly Rundown:

Week 1 - September 8

Introductions, Syllabus, Programming in English and Processing
  • Install and familarize yourself with Processing
  • Program your drawing in Processing
  • Draw something else (of course, in Processing)
  • Reading:
  • As We May Think, Vannevar Bush
  • Chapter 1 and 2 of Dan Shiffman's book.

  • Week 2 - September 15

    Basic Constructs: Loops, Conditionals and Variables
    Being Effective: Program Flow and Algorithms
    Assignment: (choose one)
  • Make a ball bounce around the screen
  • Make a kaleidoscope
  • Make a painting program
  • Create something else, perhaps a classic arcade style game.
  • Reading:
  • The Graphical Revolution, Chapter 25 of CODE The Hidden Language of Computer Hardware and Software
  • Chapter 3, 4, 5 and 6 of Dan Shiffman's book.

  • Week 3 - September 22

    Modularity: Functions and Objects
    Assignment: (choose one)
  • Redo your previous assignment using objects
  • Create an organism that responds to the mouse or keyboard
  • Create something else of your own devising
  • Reading:
  • Pattern on the Stone, W. Daniel Hillis: Chapter 9, Beyond Engineering
  • Chapter 7 and 8 of Dan Shiffman's book.

  • Week 4 - September 29

    Many of the same: Arrays and Iteration
  • Redo a previous assignment with multiple objects (use arrays and objects)
  • Create many of something new and have them behave independently (use arrays and objects)
  • Reading:
  • The Cathedral and the Bazaar
  • Chapter 9 and 10 of Dan Shiffman's book
  • .

    Week 5 - October 6

    Strings and Networking
    Assignment: Create a piece that uses data retrieved from the network. Do not use an old project, do something new and different.
  • Chapter 14 and 15 of Dan Shiffman's book.

  • Week 6 - October 13

    Hooking up with PComp: Microcontrollers
    AND Gimme Eyes: Cameras
  • Create something that uses input from something other than a keyboard or mouse.
  • Come up with a midterm idea (diagram it) and prepare to discuss in class.
  • Reading:
  • Chapter 12 and 13 of Dan Shiffman's book.

  • Week 7 - October 20

    Review and Midterm Workshop
  • Finish midterm
  • Reading:
  • Chapter 10 of Dan Shiffman's book.

  • Week 8 - October 27

    Show Midterms
  • Paper: Write a short 2 to 3 page story about a day in your life 10 years in the future.
    Some suggestions: Citizen journalists swarm you after finding out about your new dream control software; Cyborg has become the fashion and you need some body work before you go to a party; Your video databank has been corrupted and you have a deadline in the morning.

    Week 9 - November 3

    Loose Ends
    Mmmn.. I like Java
  • Try out the Video Tracking Example, Modify it to do something more interesting.
  • Incorporate ArrayList and Rectangle into it.
  • Chapter's 12, 13, 19 and 20 of Dan Shiffman's Book

  • Week 10 - November 10

    Other Topics: One of the Following - More with Video/Still Image Processing, Sound, Client/Server, GUI Development, Rotation/Translation, Mobile Processing..
    Prepare your final project proposal (in the form of a website)
    It should include the following:
  • Project name or title
  • Short description
  • Materials: References such as other software, applets, code, video, websites and so on.
  • Development plan: Pseudo code, diagram or other documents that you can start with

  • Week 11 - November 17

    Final Project Proposals
    Other Topics: One of the Following - Video/Still Image Processing, Sound, Client/Server, GUI Development, Rotation/Translation, Mobile Processing..
    Java GUI example
    Rotate/Translate example

    No Class - November 24

    Week 12 - December 1

    Do it again, Intro to PHP
    PHP and Processing

    Week 13 - December 8

    Final Project Workshop

    Week 14 - December 15

    Let's See it! Show final projects