ICM-Danny-Rozin-F07
Syllabus / ICM-Danny-Rozin-F07

# Introduction To Computational Media

## Danny Rozin

• danny.rozin@nyu.edu
• Office hours - Tuesday 10:00-1:00 Sign up for office hours
• Homework Wiki, This is where you will upload your weekly assignments
• Main ICM page, which includes links to the other sections' syllabi and homework pages and instructions how to upload your homework and join the ICM listserv
• Daniel Shiffman's Processing book will be given out in the first meeting and will be the main textbook for this class.
• More books about Processing are available at the Processing web site

## Requirements

• You are required to attend all class meetings and submit all weekly assignments, midterm and final projects.
• Grading will be based on a combination of a few factors:
• Class participation including attendance and contribution to class discussion and engagement in other student’s projects.
• Quality of all projects and assignments, including conceptual, aesthetical and technical merit.
• Personal progress; how much did you advance from your initial state in this class.

## Week 1 - Introduction

• Student and instructor personal introductions.
• What is programming? what is it good for? What kinds of programming languages are there?
• What is Processing.
• How to get Processing.
• Processing's coordinate system.
• Processing's simple drawing functions.
• PowerPoint Presentation
• Homework:
• Read Chapters 1, 2, and 3 from textbook.
• Signup for the ICM mailing list follow main ICM page
• Create your own beautiful screen drawing, using only 2D primitive shapes – arc(), curve(), ellipse(), line(), point(), quad(), rect(), triangle() – and basic color functions – background(), fill(), noFill(), noStroke(), stroke(). Remember to use size() to specify the dimensions of your window. (This is Exercise 2-9 from the book.) Get help with the functions at the Processing reference page
• Upload your homework to the Homework Wiki.

## Week 2- Variables, Conditions, Loops.

• Structure -
• setup() and draw()
• Code blocks
• System variables- *mouseX, mouseY ,pmouseX, pmouseY, width, height continous_line , Simple_drawing_system_variables
• System callbacks - mousePressed, mouseDragged continous_line_mousePressed,continous_line_mouseDragged
• Primitive data types - int , float, char
• Declaring variables - giving birth and name to a variable.
• Assigning values to variables - placing a value inside a variable using "="
• Using variables - getting a value from a variable Simple_drawing_variables
• Some math and incrementation * /+- % ++ -- Variables_ourStrokeWeight
• Using random - geting variation without user interaction using_random
• Conditional Statements - if - else - else if if_else
• Boolean expressions, logical operators - >,<, == , !, &&, || if_else_and
• Loops - while , for (do while) while_loop, for_loop
• Chris Kairalla's useful notes
• Homework
• Read chapters 4, 5, and 6 in Shiffman's book. Try exercises 5-6 and 5-8.
• 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. Also spend time working in pairs- your partner is listed on the homework wiki. You can post the assignment together or continue to develop it on your own.

## Week 6- Serial and Video

• PowerPoint Presentation
• Why serial (PComp and Processing)
• External Libraries
• Asynchronous Communication Protocols
• Dano's serial Example serial
• simple video display and tracking
• Simple Show Video video_show
• Track brightest point video_track_brightness
• Dano's video Examples page video
• Homework
• Read Chapters 15, 16, and 19
• Come up with an idea for your midterm project. Your midterm can be an expansion of a previous project, or a new project. Try to be realistic as to what you can accomplish in 2 weeks, but make sure that you are not compromising on concept for lack of time.

## Week 7- Midterm Workshop

• Describe your midterm project in plain English. What will it do? How will people use it? Think about the user experience.
• Break your project down into steps.
• Turn the steps into pseudo code
• Convert pseudo code to code.
• Homework
• Finish Midterm presentations.

## Week 8- MIDTERMS

• Show and discuss your project in class, keep it short, we can spend about 8 minutes a piece.

## Week 9- MIDTERMS cont + image processing

• image processing:
• Homework
• Read Chapters 22 and 23
• start thinking of final project. Make it ambitious but achievable. You have 4 weeks which sounds like a lot but goes by fast, remember that your other classes will have finals too. Don’t compromise on concept but rather reduce the scope of your project if it becomes too ambitious.

## Week 10- Propose Final Projects

• Video Processing
• tracking :
• brightness
• color
• change/ movement
• Chroma key
• background removal
• all examples in zip
• All students propose final projects
• Homework
• Read chapters 15 -16 in the book

## Week 11- Final Project Workshop + 3D

• 3D Graphics
• #3D coordinate syestem
• transforms
• geometry, color, light, texture
• all examples in zip
• Half of the students show progress/ discuss problems in final project.
• Amy Khoshbin
• Daniel Imal
• Eun Jung Park
• Jain Koo
• Joora Song
• Marios Diamantis
• Ramona Pringle
• Theresa Ling
• Homework
• Read chapters 13 -14 in the book

## Week 12- Final Project Workshop

• Other half of the students show progress/ discuss problems in final project.
• Benjamin Yee
• David Overholt
• Hulya Aktun
• Jong Min Kim
• Karen Kuslansky
• Meng Li
• Sandra Davila
• Xiaoyang Feng

## Week 13- Final Project Presentations

• Amy Khoshbin
• Daniel Imal
• Eun Jung Park
• Jain Koo
• Joora Song
• Marios Diamantis
• Ramona Pringle
• Theresa Ling