# Introduction To Computational Media (ICM)

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

## Important Resources:

Main ICM Page: http://itp.nyu.edu/ICM/
Homework Wiki: http://itp.nyu.edu/varwiki/ClassWork/Homework-Van-Every-ICM-F08

### Book:

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

### Office Hours:

Tuesdays 11 AM - 1 PM
Signup: https://itp.nyu.edu/~sve204/cgi-bin/pwiki/wiki.pl?OfficeHours

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

### Attendance:

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.

### Laptops:

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
Handout
Assignment:
• 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
• As We May Think, Vannevar Bush
• Chapter 1, 2 and 3 of Learning Processing (Examples)
• Color Tutorial on LearningProcessing.com

• ### Week 2 - September 10

Basic Constructs: Loops, Conditionals and Variables
Being Effective: Program Flow and Algorithms
Handout
Assignments:
• 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)
• 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: http://www.learningprocessing.com/examples/)

• ### Week 3 - September 17

Modularity: Functions and Objects
Handout
Assignments:
• 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)
• 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: http://www.learningprocessing.com/examples/)

• ### Week 4 - September 24

Many of the same: Arrays and Iteration
Handout
Assignments:
• 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).
• The Cathedral and the Bazaar
• Chapters 6 (review), 9 (Arrays), 10 (Algorithims) and 11 (Debugging) in Learning Processing. (Go through the examples: http://www.learningprocessing.com/examples/)

• ### Week 5 - October 1

Strings and Networking
Handout
Assignments:
• Create a Processing sketch that uses input from a text file or URL (see Lesson 8 Project from Learning Processing, page 378.)
• 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
Handout
Assignments:
• 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.
• Chapters 15, 16, and 19 from Learning Processing

• ### Week 7 - October 15

Review and Midterm Workshop

### Week 8 - October 22

Show Midterms
Assignment:
• 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
Handout
Assignments:
• 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
• Learning Processing PHP Tutuorial
• Learning Processing PHP Persistence Example

• ### Week 10 - November 5

Mmmn.. I like Java
Handout
Assignment:
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
• 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..
Notes

### 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