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:
Syllabus (this page): http://itp.nyu.edu/~sve204/icm_fall08/
Main ICM Page: http://itp.nyu.edu/ICM/
ICM Mailing List: http://lists.nyu.edu/read/all_forums/subscribe?name=itp-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/
Administrative:
Office Hours:
Tuesdays 11 AM - 1 PM
Signup: https://itp.nyu.edu/~sve204/cgi-bin/pwiki/wiki.pl?OfficeHours
Grading:
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.
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.
Tardiness:
Excessive lateness will effect your grade. Don't be late.
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
Reading:
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)
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: 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)
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: 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).
Reading:
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.)
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
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.
Reading:
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
Reading:
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
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..
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