Introduction To Computational Media (ICM)

Shawn Van Every
Thursdays 3:30 PM - 6:00 PM
H79.2233 Section 5

Important Resources:

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


Office Hours:

Tuesdays 12 PM - 2 PM
Signup: (moved because of spam)


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 in progress.

    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
  • Suggested Reading: Chapter 3, 4 and 5 of Dan Shiffman's book in progress.

    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
  • Suggested Reading: Chapter 7 and 8 of Dan Shiffman's book in progress.

    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
  • Suggested Reading: Chapter 6 and 9 of Dan Shiffman's book in progress.

    Week 5 - October 6

    Hooking up with PComp: Microcontrollers
    AND Gimme Eyes: Cameras
  • Create something that uses input from something other than a keyboard or mouse.
  • Reading:
  • Logic and Switches, Chapter 10 of CODE The Hidden Language of Computer Hardware and Software
  • Chapter 11 of Dan Shiffman's book in progress.

    Week 6 - October 13

    Review and Midterm Overview
  • Come up with a midterm idea, start on in it (diagram, psuedo code and start programming) and prepare to discuss in class.

  • Week 7 - October 20

    Midterm Workshop
  • Finish midterm

  • 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

    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.

    Week 10 - November 10

    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
  • Week 11 - November 17

    Final Project Proposals

    Week 12 - December 1

    Final Project Workshop 1
    PHP and Processing

    Week 13 - December 8

    Final Project Workshop 2

    Week 14 - December 15

    Let's See it! Show final projects