Introduction To Computational Media (ICM)

Shawn Van Every
Wednesdays 12:30 PM - 3:00 PM
Room 442 (Conference Room)
Fall 2008
H79.2233 Section 5

Important Resources:

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


Dan Shiffman has finished his amazing "Learning Processing" book. You can buy it at the book store (I think) and online at various outlets (, amazon, others). He has also put up a great companion website:


Office Hours:

Tuesdays 11 AM - 1 PM


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

(75% or less is a failing grade. See Pass/Fail for more info.


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


Excessive lateness will effect 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 3

Introductions, Syllabus, Programming in English and Processing
  • Signup for the mailing list
  • Install and familarize yourself with Processing
  • Program your drawing in Processing
  • Draw something else (of course, in Processing) using sing only 2D primitive shapes: arc(), curve(), ellipse(), line(), point(), quad(), rect(), triangle() and basic color functions: background(), colorMode(), fill(), noFill(), noStroke(), stroke(). Remember to use size() to specify the dimensions of your window.
  • Be sure to upload your assignments and post them to the wiki
  • Reading:
  • As We May Think, Vannevar Bush
  • Chapter 1, 2 and 3 of Learning Processing (Examples)
  • Color Tutorial on

  • Week 2 - September 10

    Basic Constructs: Loops, Conditionals and Variables
    Being Effective: Program Flow and Algorithms
  • Try exercises 5-6 and 5-8 from Learning Processing. (individual)
  • Make a ball bounce around the screen (group)
  • Make a painting program or a kaleidoscope that uses mouse interaction (group)
  • Reading:
  • Read Handout: The Graphical Revolution, Chapter 25 of CODE The Hidden Language of Computer Hardware and Software
  • Read Chapters 4, 5 and 6 from Learning Processing (go through the examples:

  • Week 3 - September 17

    Modularity: Functions and Objects
  • Try exercises 7-8 and 8-5 from Learning Processing. (individual)
  • Redo the painting and ball program using functions and objects (same group)
  • Create a "creature" that responds to user interaction with the mouse and keyboard (individual, same group or new group)
  • Reading:
  • Read Handout: Pattern on the Stone, W. Daniel Hillis: Chapter 9, Beyond Engineering
  • Read Chapters 7 and 8 from Learning Processing (go through the examples:

  • Week 4 - September 24

    Many of the same: Arrays and Iteration
  • Working in groups or individually, use your "creature" class along with arrays and make a bunch of them.
  • Expand on the ball program using many balls, have them to respond to collisions with each-other.
  • Try Exercises 9-6 and 9-7 in Learning Processing
  • (Optional) These are cool, can you recreate them: Lab 1, Lab 2, Lab 3 and Lab 4
  • (Bonus) Using arrays, make a painting program that "remembers" the painting (meaning the background is redrawn but the painting is not erased).
  • Reading:
  • The Cathedral and the Bazaar
  • Chapters 6 (review), 9 (Arrays), 10 (Algorithims) and 11 (Debugging) in Learning Processing. (Go through the examples:

  • Week 5 - October 1

    Strings and Networking
  • Create a Processing sketch that uses input from a text file or URL (see Lesson 8 Project from Learning Processing, page 378.)
  • Reading:
  • Chapters 12, 17 and 18 of Learning Processing
  • Go through these examples: Chapter 17 and Chapter 18.
  • What Is Electronic Writing?

  • Week 6 - October 8

    Hooking up with PComp: Microcontrollers
    AND Gimme Eyes: Cameras
  • Build something that uses either video or serial data within a processing sketch.
  • Come up with a mid-term idea. I am looking for concept, background and some thoughts about how you are going to implement it. We will be going over the ideas next class.
  • Reading:
  • Chapters 15, 16, and 19 from Learning Processing

  • Week 7 - October 15

    Review and Midterm Workshop

    Week 8 - October 22

    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 - October 29

    Do it again, Intro to PHP
    Loose Ends
  • Using HTML and PHP, create a page which contains a form for some kind of (census, survey?) data collection and a second page which tallies up and displays the results (perhaps use Processing for visualizing the results)
  • Take an existing project and use PHP to save the data from the sketch so that it opens in the place it was saved at
  • Reading:
  • Learning Processing PHP Tutuorial
  • Learning Processing PHP Persistence Example

  • Week 10 - November 5

    Mmmn.. I like Java
    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
  • Reading:
  • Chapters 22 and 23 from Learning Processing

  • Week 11 - November 12

    Final Project Proposals

    Week 12 - November 19

    Other Topics: One of the Following - Mobile Processing, PHP with MySQL..

    No Class - November 26

    Classes run on a Monday schedule

    Week 13 - December 3

    Final Project Workshop

    Week 14 - December 10

    Let's See it! Show final projects