Introduction to Computational Media Syllabus
Chris Kairalla
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 at least 3 randomly chosen students will discuss their homework assignments using the above format. This format will also be used for final project presentations.
Week 1 -- Introduction and Drawing -- Sep 4
- 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?
- Things made with Processing: ProcessingLinks
- Drawing with numbers
- Processing's screen coordinates
- Processing's drawing and color functions
- Notes
- Abstract Modern Art for inspiration
- Watch
- Related Reading
- Downloading Processing
- Download Processing 2.0 Beta (You may need to scroll down to the bottom of the page to find version 2.0b1).
- This semester we are going to use Processing 2.0 (currently in version Beta1). The advantage of this is that this version of Processing includes Javascript mode, better support for video, and several other features. The downside to using 2.0 is that it is new and 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.
- Homework
- Sign up for the ICM Google Group: https://groups.google.com/a/itp.nyu.edu/group/icm
- Create your own screen drawing: self-portrait, alien, monster, etc. Use 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.
- Post a link to the homework wiki: Homework-Kairalla-ICM-F12. Instructions for how to do so are here: Homework-upload-instructions
- Examples: http://www.learningprocessing.com/examples/ -- take a look at Chapter 1 and 2 (3 if you are feeling ambitious).
Week 2 -- Animation -- Sep 11
- The flow: http://www.learningprocessing.com/examples/chapter-3/
- setup() and draw()
- events - keyPressed() and mousePressed()
- Variables: Declare, Initialize, Use: http://www.learningprocessing.com/examples/chapter-4/
- Primitive Data Types
- mouseX and mouseY
- Random
- Transformations (a brief intro)
- basic debugging.
- demos:
- notes
- DanO's Handout
- Related Reading
- Homework
- 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 (according to the wiki: Homework-Kairalla-ICM-F12). You can post the assignment together or continue to develop it on your own. Your pairings were generated with this code.
Week 3 -- Interaction -- Sep 18
Week 4 -- Functions & Objects: Part 1 -- Sep 25
- Notes
- The Theory of Object Oriented Programming
- Functions: http://www.learningprocessing.com/examples/chapter-7/
- Intro to Objects
- Examples
- Related Reading
- Homework
- Re-organize the code of a previous assignment or example using functions and objects. If you are inspired by the power of modularity, feel free to elaborate on the assignment. Work individually or in pairs (no pairs will be assigned this week.) Post results to the wiki: Homework-Kairalla-ICM-F12
Week 5 -- Functions & Objects Part 2 -- Oct 2
- Objects: http://www.learningprocessing.com/examples/chapter-8/
- Principles and Theory (Encapsulation)
- How-to
- The Constructor!
- Objects talking to objects
- Examples
- Related Reading
- Homework
- Design a sketch in an object-oriented fashion. Try to eliminate all code from the main tab (setup() and draw()) except for the core requirements (size(), background(), etc.) and calls to objects.
Week 6 -- Repetition and Reproduction: Oct 9
No class Oct 16 -- FALL BREAK
Week 7 -- Pixels: Oct 23
Oct 30- No class on account of hurricane.
Week 8 -- Data. Nov 6
- Pixel project presentations
- Basics of working with Strings
- Loading (and saving) external data to local files
- Loading from a URL
- XML
- Discussion of APIs and Databases
- Connecting with CommLab web
- Web security in JS mode, sandbox, etc.
- Threads
- You can read Chapters 17-18 from Learning Processing but chapter 18 is especially out of date.
- Data / Text projects and resources
- Homework: Data Project
- Develop a project that uses an external data source. For this project you are required to document your work in a blog post in addition to creating the Processing sketch.
- A visualization of weather data.
- more suggestions will go here. . .
Week 9 -- Advanced Graphics: Nov 13
- Translate, Rotate, Scale: http://processing.org/learning/transform2d/
- P3D: http://processing.org/learning/p3d/
- 3D shapes, vertices
- textures
- lighting
- PShape: http://processing.org/learning/pshape/
- PGraphics
- Really advanced, but worth taking a look:
- TONS OF EXAMPLES ARE IN THE CLASS DROPBOX AT icm2012/sections/kairalla/inclass-examples/week9
- Homework: Prepare a final project proposal. Create a web page or blog post with title, description, sample imagery, diagrams, Processing code, etc. Be prepared to present your proposal to the class next week.
- 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.
- 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.
- Sign up here
- You are free to host your documentation on your ITP account or your personal webserver. If you are considering paying for a hosting service, I recommend dreamhost- http://www.dreamhost.com/
Week 10 -- Propose Final Projects -- Nov 20
Week 11 -- Bonus Topics -- Nov 27
- Networking and remote servers
- Fun with Java!
- Example Java classes
- try/catch, exception/error handling
- Related Reading
- Chapters 22 and 23 from Learning Processing
Week 12 -- Final Project Presentations, Dec 4
Extra Topics
- TUIO
- OSC
- Networking
- Javascript Integration
PASS/FAIL:
There will be no "Incompletes". All work must be done by the end of the semester.
Your pass will be determined by a variety of factors:
- Assignments
- You are expected to finish all assignments for the class.
- If you do not submit a midterm project and final project, then you will not pass.
- Class Participation and Attendance
- Please contribute to class discussion. Your comments are valuable and should be shared.
- Attendance is mandatory. Unexcused absences will jeopardize a pass. Let me know ahead of time if you're going to be absent. Chronic lateness will jeopardize a pass. Don't be late.
- 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.
|