Skip to content

Latest commit

 

History

History
268 lines (251 loc) · 20 KB

Syllabus-2013-Shiffman-Tues.md

File metadata and controls

268 lines (251 loc) · 20 KB

Introduction to Computational Media Syllabus

Note this section is for students with prior programming experience and has its own syllabus separate from all other sections

Section Pages and Homework Wikis

Week 1 -- Introduction and Drawing

  • 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
  • Drawing with numbers
  • Processing's screen coordinates
  • Processing's drawing and color functions
  • Processing reference
  • Running your application
  • Abstract Modern Art for inspiration -Piet Mondrian -Ron Gang -Sol Lewitt
  • Watch
    • Casey Reas Eyeo 2012 talk on Chance Operations
    • Video Lessons 0.0-2.1 duplicate what we will cover in class. Watch 3.0-4.3 to preview next week's content.
  • Related Reading
  • Downloading Processing
  • Breakout
  • Homework
    • Sign up for the ITP ICM Google Group: https://groups.google.com/a/itp.nyu.edu/group/icm (also sign up for your section's group)
    • Sign up for Tuesday google group Shiffman ICM google group -- this will be used for administrative announcements for our section only.
    • 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. Feel free to use your prior programming experience using variables, loops, etc. where necessary. But embrace the constraint of a static drawing for this week.
    • Post a link to your work on the wiki. You'll have to sign up for a github account to edit. Follow the guidelines provided on the wiki.
    • Examples: https://github.com/shiffman/LearningProcessing -- take a look at Chapter 1 and 2 (3 if you are feeling ambitious).

Week 2 -- Animation && Interaction

Week 3 -- Object-Oriented Programming: Part 1

  • The Theory of Object Oriented Programming
  • Functions: https://github.com/shiffman/LearningProcessing/tree/master/chp07_functions
  • Objects: http://www.learningprocessing.com/examples/chapter-8/
    • Principles and Theory (Encapsulation)
    • How-to
  • lerp()
  • transformations
  • Related Reading
  • Homework
    • Re-organize the code of a previous assignment or example (or invent something new if you prefer) using object-oriented programming. Try to eliminate all code from the main tab (setup() and draw()) except for the core requirements (size(), background(), etc.) and calls to objects. If you are stuck for an idea consider taking the first step towards building a particle system. Particle system can be used to simulate rain, snow, fireworks, explosions, smoke, etc. Create a Particle class to describe a single particle and try to get a few particles on the screen using separate variables. (Later, with arrays and ArrayLists, we'll look at how to visualize many particles on the screen.)
    • E-mail the code for a class to your assigned partner on the wiki. You'll get one from them too. Try incorporating the class sent to you into your sketch. Write some thoughts about this process on your blog -- Did anything not work? Could you follow your partner's code? Were comments helpful? (If you are feeling saucy, you could try to use github for this collaboration.)

Week 4 -- Object-Oriented Programming: Part 2

  • More OOP
    • Constructor arguments
    • Inheritance
    • Objects talking to objects
    • pass by copy, pass by reference
    • using Processing classes (PFont, PImage, PVector, etc.)
  • Related Reading
  • Homework

Week 5 -- Repetition and Reproduction

Week 6 -- Vectors and Simulation

Week 7 -- Pixels

Week 8 -- Data

Week 9 -- Bonus Topics (we will not do all of these in class but there will be a sampling)

Week 10 -- Propose Final Projects

  • ** See your individual section's proposal schedule on your wiki **

Week 11 -- One on one speed user testing / feedback

  • This week you will "user test" your project with fellow classmates. You must have some implementation that you can test completed by this time. User testing can mean different things for different projects. For a game, it can mean that the user tries to play it. For an art piece, it could mean showing it to a classmate and asking for them to say what they think it is about or how it made them feel. We'll show projects in a "one on one" / round robin / speed dating-style session. 5 minutes then switch. You cannot not explain your project, just show and let the user try it and give you feedback. Then you can answer questions. User testing schedule will be provided on a wiki.

Week 12 -- Final Project Presentations

  • Please add your link to your final project documentation on your section's wiki.