Introduction to Computational Media Syllabus
Heather Dewey-Hagborg
Homework
Course Goals
Students will learn the concepts behind programming with processing and apply these ideas to projects of their own design.
Expectations
Assignments will include weekly readings and assignments. Projects must be completely in a timely manner. All homework assignments must be uploaded and lnked to on the class homework wiki. Students will be expected to collaborate, to document their work, to make presentations and to discuss their ideas regularly in class.
Grading
- Homework/preparedness 50%
- Class Participation 20%
- Final Project 30%
- Missing 3 or more classes or being late to 5 or more classes is an automatic failure
Presentation Format:
- Format:
- One liner – What did you do?
- Content – Why did you do it? Who is the audience? How does it engage with the theoretical and technical concerns we have discussed in this class?
- Demo
- Comments/Critique
- Each week 3 randomly chosen students will discuss their homework assignments using the above format. This format will also be used for midterm and final project presentations.
Week 1 -- Drawing
- Downloading Processing
- This semester we are going to use an alpha release of Processing 2.0. The advantage of this is that we are using the leading edge newest version of Processing which includes Javascript mode, better support for video, and many other features. The downside to using 2.0 is that it is new and somewhat unstable, we may experience more bugginess than with the existing 1.5.1 version. In addition, some changes made for Processing in 2.0 will result in differences in the reference and examples on the Processing web site, as well as in the various Processing books. Changes are documented on the Processing wiki. If you think you have found a bug or are confused by a syntax difference, send an e-mail to the google group.
- Download Processing 2.0 Alpha 1 (released 9/2/11): MACOSX, WINDOWS, LINUX
- Processing exhibition
- Share with openprocessing.org
- The canvas
- Color
- Simple Shapes
- Intro principles
- Simple rules
- Wall Drawing 323
- Wall Drawing 105
- Custom Shapes
- Wall Drawing 103
- Some Sol Lewitt Instructions
- Recognizing and troubleshooting errors
- Uploading homework
- Homework:
- Sign up for the ICM Google Group: https://groups.google.com/a/itp.nyu.edu/group/icm
- Reading: (Shiffman ch. 1-2) (Reas & Fry ch. 1 - 3)
- Create a self-portrait in processing using simple drawing techniques. You might find it helpful to sketch it out first in Illustrator or on graph paper.
- If you want to make more complex shapes in Adobe Illustrator and export them from Processing you can use the script here:
http://deweyhagborg.com/icm2011/class2/Illustrator-to-Processing.revised.zip just follow the steps in the readme. You may need to clean up the exported code to get it to run.
Week 2 -- Animation
Week 3 -- Interaction
- Origins of interactivity in arts and technology
- Basic Interactivity
- Drawing with previous mouse position
- Conditional Logic - slides
- simple logic
- Interactive drawing
- simple motion
- Homework:
- Reading:(Shiffman ch 3.0 – 3.3, ch. 5) (Reas & Fry ch. 5)
- Use mouse and keyboard input to create an interactive drawing. Design your program to achieve certain visual goals and try to structure your program so that no matter what your user does the output always meets these goals. This means the interactor is "always right" nothing they can do potentially goes contrary to your design goals. be prepared to discuss your designa and interaction goals.
Week 4 -- Functions
- Algorithms as sets of Instructions
- Functions - slides
- Random
- Chance operations and Stochastic Composition
- Event Handlers
- Recursion: Fractals
- Homework:
- Reading:(Shiffman ch 7, 3.4, 4.6-4.7) (Reas & Fry ch. 8)
- optional On Randomness
- Create a “chance composition” in processing using input from the user and your own algorithm encapsulated in a function.
- Bring in an example of "modularity" to share with the class. It could be an actual object or a link to documentation.
Week 5 -- Modularity: Objects
- Object Oriented Programming - slides
- OOP song
- Homework:
- Reading: (Shiffman ch. 8) (Reas & Fry ch. 9)
- Rewrite a previous HW assignment to use object oriented programming instead of procedural.
Week 6 -- Repetition and Reproduction
- Arrays: lots of things - slides
- Arrays + objects = complex systems
- Homework:
- Reading: (Shiffman ch. 9) (Reas & Fry ch. 10)
- Using arrays and loops, write a program that creates multiple instances of an object.
Week 7 -- Pixels
- Tutorial on color
- Tutorial on pixels
- Images
- Video
- New video library in Processing 2 requires changes to existing examples you will see in your book, on processing.org, etc.:
- You MUST include video.start() in setup AFTER you call the Video object constructor
- Stick to "normal" framerates and sizes ie. 640x480 or 320x240 at 30FPS
- basic video capture
- playing a movie clip
- More examples from the reading but you need to update them for 2.0
- Pixels as medium
- Homework:
- Complete a sketch of your own design and be prepared to show your work next week. Link to a page that documents your work on the midterm assignment. Include a brief write-up of your idea as well as documentation of your implementation. Everyone will present in class. Prepare a presentation of your work using the class format. Link to your documentation on the wiki.
- Reading: (Shiffman Chapters 15-16)
Week 8 -- Midterm Presentations
- This class will be devoted to discussing student homework projects using the following format:
- One liner – What did you do?
- Content – Why did you do it? Who is the audience? How does it engage with the theoretical and technical concerns we have discussed in this class?
- Demo
- Comments/Critique
Week 9 -- Data Visualization
- Characters
- Strings
- Text
- Data
- Precedent
- Workshop Challenge:
- Re-write the king lear example to display words from a text of your choosing.
- Text size should be related to the frequency of the word's occurrence and words should be chosen randomly from the text.
- Homework:
Week 10 -- 3D
- translate, rotate and scale review
- push and pop matrix
- 3D
- Review
- Advanced workshop:
- Use the Iris dataset available here
- Visualize 1 or more classes in 3d (try using inheritance if you want an extra challenge)
- Divide the work among group members so that each person writes a portion of the code
- Post your code to the wiki
- Final project proposal presentations 1
- Homework:
- Work on final projects/ update proposals
Week 11 -- Fun with Android
- Final project proposal presentations 2
- advanced project people present
- instructions
- Android + Processing forum
- Download and install the Android SDK from here and place it in your home directory
- Make sure you have the latest processing 2.0a* distribution
- we will go over the steps in class to get started
- Homework:
- Work on final projects/ update proposals
Week 12 -- Odds and Ends
- Final project proposal presentations 3
- Iris dataset challenge: simple solution
- Modulus
- Processing is Java
- Java in Processing
- Processing in Java
- More fun that we probably don't have time to cover in class:
- Homework:
- Reading: (Shiffman Chapter 22&23)
- Work on final projects/ update proposals
- thursday section - sign up to present week 13 or 14 (only 9 allowed each week)
Week 13 -- Final project
- presentations group 1 (thursday section)
- homework lab / extra help session (tuesday section)
Week 14 -- Final project presentations group 2