Introduction to Computational Media Syllabus
Daniel Shiffman
Week 1 -- Introduction and Drawing -- Sep 7
- Why are we here? What is computational media? What is programming? What is it good for? What kinds of programming languages are there?
- Algorithmic Thinking
- What is Processing? Why Processing?
- Server-side vs. client programming
- Things made with Processing: ProcessingLinks
- Drawing with numbers
- Coordinate Systems
- Shapes
- Color
- Code
- Processing reference
- Running your application
- Exporting: applet, application, android, javascript
- Related Reading
- 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
- 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-Shiffman-ICM-F11. 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 14
Week 3 -- Interaction -- Sep 21
Week 4 -- Functions & Objects: Part 1 -- Sep 28
- The Theory of Object Oriented Programming
- Functions: http://www.learningprocessing.com/examples/chapter-7/
- Re-usability
- Modularity
- Calling vs. Defining
- Parameter Passing
- Return types
- Recursion
- Event functions
- Intro to Objects
- 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-Shiffman-ICM-F11
Week 5 -- Functions & Objects Part 2 -- Oct 5
- Objects: http://www.learningprocessing.com/examples/chapter-8/
- Principles and Theory (Encapsulation)
- How-to
- The Constructor!
- Objects talking to objects
- 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 12
- Review loops: http://www.learningprocessing.com/examples/chapter-6/
- Arrays: http://www.learningprocessing.com/examples/chapter-9/
- What is an ArrayList?
- Related Reading
- Homework
- Using arrays and loops, write a program that creates multiple instances of an object (feel free to use an object you developed previously or create something new).
- Brainstorm an idea for a midterm project. Feel free to think of your midterm on as grand a scale as you like, however, the midterm assignment will involve implementing only one step of a larger project. Remember, it's only a one week assignment! Be prepared to speak briefly about your midterm idea next week.
Week 7 -- Pixels: Oct 19
- Images http://www.learningprocessing.com/examples/chapter-15
- Load and display
- Sequence
- Image Processing and the Pixel Array
- Related reading:
- Learning Processing, Chapters 15-16
- Homework
- Complete midterm assignment 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 exercise. Remember, this is a one-week assignment and you aren't expected to complete your project, just take a first step. Everyone will present in class. Plan on speaking for 5 minutes or less (not including questions). Link to your documentation on the wiki: Homework-Shiffman-ICM-F11
Week 8 -- Show Midterms: Oct 26
- Each student will present their midterm assignment. Plan on speaking for 5 minutes or less (not including questions). Talk briefly about your idea as a whole, what you chose to implement in just this one week, any problems you had, and future plans. We will follow the order on the wiki so feel free to move things around if you would like to present earlier or later in class (those at the bottom of the list have a chance of being pushed a week later.) Link to your documentation on the wiki: Homework-Shiffman-ICM-F11
Week 9 -- Video and Computer Vision: Nov 2
- Video: http://www.learningprocessing.com/examples/chapter-16/
- Live video input
- Move playback
- Contributed Processing Libraries
- Homework: Prepare a final project proposal. Create a web page or blog post with title, description, sample imagery, diagrams, Processing code, etc. Presentations will be split over the next three weeks. Check the wiki for assigned date (but feel free to switch these around).
Week 10 -- Propose Final Projects + Data -- Nov 9
- Proposal Schedule: Homework-Shiffman-ICM-F11
- Basics of working with Strings
- Loading external data
- local text files, CSV data
- Saving
- Loading from a URL
- XML
- ITP CakeMix
- Discussion of APIs and Databases
- Discussion about Threads
- Web security in JS mode, sandbox, etc.
- Chapter 17-18, Learning Processing (Chapter 18 is pretty out of date)
- Data / Text projects and resources
Week 11 -- Propose Final Projects + Data: Nov 16
- Proposal Schedule: Homework-Shiffman-ICM-F11
- (see e-mail to class list for examples)
- P3D
- translate, rotate, and scale
- 3D shapes, vertices
- textures
- lighting
- opengl rendering tricks
- loading models
- PShape
Week 12 -- Propose Final Projects: Nov 23
- Proposal Schedule: Homework-Shiffman-ICM-F11
- Fun with JavaScript!
- Fun with Android!
- Fun with Java!
- Example Java classes
- try/catch, exception/error handling
- Related Reading
- Chapters 22 and 23 from Learning Processing
Week 13 -- Final Project Workshop: Nov 30
Week 14 -- Final Project Presentations, Dec 7
Requirements
- You are required to attend all class meetings and submit all weekly assignments, a midterm, and a final project.
- Grading (pass/fail) will be based on a combination of factors:
- Attendance, participation in class discussion, and engagement in other students' projects (25%)
- Quality of weekly assignments and midterm (50%)
- Final Project (25%)
- Personal progress; how much did you advance from your initial state in this class.
|