ICM-Dan-OSullivan-F07
Syllabus / ICM-Dan-OSullivan-F07

# Introduction To Computational Media

## Week 1 : Introduction

• What do you want to do?, What do computers do?
• Learning Strategies. High vs Low Level
• Where does Processing fit in?
• Look at Reference
• Screen Coordinates
• Assignment: Hello world, paint a picture by plugging in numbers, Using 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. (This is Exercise 2-9 from the book.)

## Week 2: Three Things on the Workbench

• Breath: loops
• Rules: If statements
• Change: Variables
• Code Blocks
• Initialization: setup
• Main Loop: draw
• Algorithm > Pseudo Code > Processing--Know what you want in English before you try computer code
• Println() Xray Vision for Variables
• Handout
• Read Chapters 4, 5, and 6 from draft book.
• Try exercises 5-6 and 5-8. We will go over answers in class.
• Homework: Create a dynamic application. You can continue to elaborate on last week's assignment or you can create something new. For example, develop a set of rules for moving it around the screen, have it grow and shrink, change colors, etc. Can you make it respond to mouse interactivity? Start by working in pairs (according to the wiki) You can post as a group or break off and complete the assignment individually. (This is Exercise 5-10 from the book.)
• Class Example

## Week 3 : Modularity: Functions and Objects

• Handers, Routines, Functions,Objects are all ways of Modularizing your code
• Reuse
• Encapsulations of Complexity
• Passing Parameter Variables
• Objects: One Stop Shopping, Data and Functions in one nice package
• Reading: Cathederal and the Bazaar, Eric S. Raymond
• Function Handout, Objects Handout
• Read Chapters 7 and 8 from draft book.
• Try exercises 7-7 and 8-5. We will go over answers in class.
• Homework: Re-organize the code of a previous assignment or example using functions and objects. Start again by working in pairs (new ones according to the wiki) You can post as a group or break off and complete the assignment individually. (This is the "Lesson Three Project" from the book.)

## Week 4 : Many: Arrays and Repeat Loops

• Repeat Loops
• Limited Duration -- Sometimes you want to do something a couple of times but not all the time.
• Good for animations.
• Saves Tedious Typing -- if sebsequent lines are are only slightly different, you can use a variable and a repeat loop to make your code neater and faster.
• Arrays are variable variables
• Reading: Pattern on the Stone, W. Daniel Hillis
• Handout
• Homework: Take an object you developed for week 3's homework and duplicate the object using an array and loop. Feel free to work individually or in pairs (no pairs will be assigned this week.)
• Exercise. Try to recreate the following applets in Processing. Many clues are available in Chapter 9. lab1, lab2, lab3, lab4 We will go over the answers in class.

## Week 6 : Get Out: Microcontrollers and Cameras

• Intersection with Physical Computing
• External Libraries
• Asynchronous Communication
• Protocols- Agreements
• Example Serial
• Example Video
• Read chapters 15, 16, and 19.
• Assignment: Do something with novel inut or output using more than keyboard, mouse, screen.

## Week 7 Midterm Workshop

• Try to find a nice scope for everyone's midterm project.
• Describe your project completely in English
• Break your project down into steps. Algorithm.
• Thin your project down to the simplest thing that can proove the concept.
• Convert your algorithm into psuedo code
• Covert your psuedo code into code.
• Get rid of syntax errors.
• Get ride of runtime errors.
• Refer back to your algorithm and get rid of errors in your process.
• Assignment: Do a project that solidifies some of the concepts that we have covered and perhaps takes another step.

## Week 8 MIDTERM ASSIGNMENT

• Show Midterm
• Assignment:Write a 3 page socratic dialog (does not really have to be in that form but might be fun). You can put forward any hair brain theory that has been bouncing around in your head during the past couple of weeks. If you are at a loss, you could pick one of these suggested topics:
• What are the essential differences between Computational Media and more established media?
• Does nonlinear media better depict your interior life?
• Phaedrus talks about the dangers of writing, what are the dangers of comutational media?
• Why do people want to interact?
• Will computers make the world a safer, more just place?

## Week 10 Java / Propose Final Project

• We have secretly be writing java.
• Explicity adding "public class myClass extends PApplet" at the top and an extra curly bracket at the bottom puts you into java mode.. The name of your class should be the same name as your project. Now you are talking Java and Processing revealed to be more of an environment or a text editor for writing it. You have been calling friendly functions in PApplet that have been intern calling less friendly. Java functions. Check out the dirty java behind your processing calls here.
• Import statements
• The wide world of Java http://java.sun.com/j2se/1.4.2/docs/api/
• Particularly useful things like ArrayLists, Rectangles, GUI
• Try Catch for errors.
• Examples
• Java is a big subject, by a book like Heads First

## REQUIREMENTS: (no incompletes)

• 35% assignments
• 30% final project
• 15% paper
• 20% class participation,� on time attendance