Introduction to Computational Media Syllabus
Week 1 -- Introduction and Drawing -- Sep 5
- Slideshow from class
- 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
- Processing reference
- Running your application
- Related Reading
- Downloading Processing
- Download Processing 2.0 (version and download links TBA):
- 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: Morning, Afternoon. 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 12
Week 3 -- Interaction -- Sep 19
Week 4 -- Functions: -- Sep 26
- Loops re-cap
- Functions: http://www.learningprocessing.com/examples/chapter-7/
- Calling vs. Defining
- Parameter Passing
- Return types
- Event functions
- Related Reading
- Re-organize the code of a previous assignment or example using functions . If you are inspired by the power of modularity, feel free to elaborate on the assignment. Post results to the wiki: Morning, Afternoon
Week 5 -- Objects -- Oct 3
- Intro to Objects
- Objects: http://www.learningprocessing.com/examples/chapter-8/
- Principles and Theory (Encapsulation)
- The Constructor!
- Objects talking to objects
- Related Reading
- 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 10
Week 7 -- Pixels: Oct 17
Week 8 -- Data. Oct 24
- Pixel project presentations.
- Basics of working with Strings
- examples from class
- Loading external data
- local text files, CSV data
- Loading from a URL
- 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
- Homework: Data Project
- Develop a project that uses an external data source or uses strings and files to save elements of the sketch.
Week 9 -- Advanced Graphics: Nov 7
- translate, rotate, and scale
- 3D shapes, vertices
- 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 -- Nov 14
Week 11 -- Bonus Topics -- Nov 21
Week 12 -- Final Project Presentations, Nov 29
- Please add your link to your final project documentation here: Morning, Afternoon
- 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.