ICM-Chris-Kairalla-F07
Syllabus / ICM-Chris-Kairalla-F07

Introduction To Computational Media

Chris Kairalla

• cdkf92@yahoo.com
• Office Hours- Wednesday 7-9pm. Sign up for office hours here
• I take office hours in the adjunct office, which is next to the researcher's office.
• Homework Wiki- Upload weekly assignments here
• An advance draft of Dan Shiffman's Processing book will be given out during the first session and will be the main textbook for the class.

Week 1- Hello World: Introduction

• Student and instructor introductions
• How does a computer "think"?
• Processing, the concept- High level and low level programming languages
• Processing, the language- What is it? Why are we using it?
• Download Processing
• Processing's screen coordinates
• Processing's drawing and color functions
• Notes
• Abstract Modern Art for inspiration
• Homework:
• Read Chapters 1,2, and 3 in Shiffman's book.
• Sign up for the ICM Mailing List (send a blank email to: join-itp-icm@lists.nyu.edu)
• Create your own digital drawing using Processing's 2D shapes functions– 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. (This is Exercise 2-9 from Shiff's book.) Get help with the functions at the Processing reference page.

Week 2- Interaction and Variation

• Code Blocks
• setup() and draw()
• From concept to code: how to plan out your application.
• Variables
• Conditional Statements
• Loops
• basic debugging
• println()
• notes
• DanO's Handout
• Homework
• Read chapters 4, 5, and 6 in Shiffman's book. Try exercises 5-6 and 5-8.
• Read "Hackers and Painters" by Paul Graham
• Create a dynamic application. You can continue to elaborate on last week's assignment or you can create something new. Some possibilities include: using mouse position to change colors, using loops to make shapes shrink and grow, and using conditional statements to make shapes bounce around the screen. Start by working in pairs- your partner is listed on the homework wiki. You can post the assignment together or continue to develop it on your own. (This is Exercise 5-10 from Shiff's book). Your pairings were generated with this code.

Week 3- Modularity: Functions and Objects

• Clean up your code (Reduce, Reuse, Recycle)
• Encapsulation of Complexity
• Passing Parameter Values
• Creating and Using Objects
• Notes
• Try DanO's Handouts for another explanation.
• Examples
• Homework
• Read Chapters 7 and 8 from Shiffman's book
• Use loops, functions, and/or objects to reorganize the code of a previous assignment or example. If you are inspired by the power of modularity, feel free to elaborate on the assignment, or start a new project. Start again by working in pairs- look at the homework wiki to find your new partner. You can post as a team or complete the assignment individually. (This is "Lesson 3 Project" from the book.)

Week 8- MIDTERMS

• Let's see 'em. Be prepared to show and discuss your project for 8 minutes.

Week 9- Java and Socket Connections

• "Heads First Java", a great guide to the huge world of Java.
• Homework:
• Read Chapters 19, 22 and 23
• Believe it or not, it's time to begin your final project. Half the class will present their ideas next week; the other half will present the following week. As with the midterm, choose a project that's challenging but doable, and shows aptitude in the skills we've learned. Set a schedule that gives yourself time to deal with unforeseen problems (and there WILL be unforeseen problems). An old professor of mine used to say "If you think you know how long a project will take to finish, multiply that time by 10. And that's half as long as it will really take." Count on it.
• Sign up for two final project presentations and post a link to your work. You have three benchmarks. 1) Final Project Proposal, a brief write-up of your idea with sample images, sketches, links, etc. 2) An "in progress" report of your first step. 3) The final itself. We will go over the requirements for these stages in class.

Week 12- Final Project Workshop

• PGraphics
• Screen location of a 3D object
• Final Project Milestone: You should be knee deep in code by now.

Week 13- Final Project Workshop

• Final Project Milestone: You should be done with the feature set, and now you're debugging and refining.

Week 14- Final Project Presentations

Grading: There will be no "Incompletes". Your grade will be determined by a variety of factors:

• Assignments
• You are expected to finish all assignments for the class.
• Accumulated weekly assignments, including the midterm, will count for approximately 50% of your grade
• Your final project will count for approximately 25% of your grade
• Class Participation and Attendance
• Please contribute to class discussion. Your comments are valuable and should be shared.
• Attendance is mandatory. Unexcused absences will affect your final grade. Let me know ahead of time if you're going to be absent. Chronic lateness will affect your grade. Don't be late.
• Class participation and attendance will count for approximately 25% of your grade.
• Personal Progress
• Your grade is based on your own personal progress in the class. You are not judged against the progress of your fellow classmates.

Laptops: Laptop screens down while other students are presenting. Laptops may be used for note taking or class related work during lectures.

Page last modified on December 13, 2007, at 02:34 PM