Course Syllabus

Grading Policy:

40% -- Weekly Assignments 1-8
30% -- Final Project
25% -- Class participation, citizenship, and attendance
05% -- Artist Report

At the heart of this course is an intense schedule of weekly exercises, designed to instill artistic fluency in the programming medium. Assignments will be critiqued based on evident technical and artistic growth, graphic concept and aesthetics, and demonstration of good code practice.

All students, regardless of experience level, will be expected to approach the assignments in a manner just beyond their own individual level of proficiency, e.g. advanced CS students will be expected to find personal challenges for themselves in seemingly simple assignments.

Late assignments will be subject to a 50% grade devaluation after one week, and will not be accepted thereafter.

The course also requires two other assignments, in addition to the weekly exercises: a Final Project, for which a month is allotted for preparation; and an Artist Report, which is a 10 minute presentation about a contemporary electronic media artist or interactive artwork of the student's choice. One or two Artist Reports will be presented per week, according to a schedule to be determined.

Week 1: 1/11 - 1/13

  1. What is this class about? How is it structured?
  2. Ground rules concerning Open Source code
  3. Exploring some possibilities: the Processing Exhibition site

  4. Obtaining and installing Processing
  5. Locating the Processing reference materials
  6. About the Processing sketchbook file structure
  7. Using the Processing Courseware

  8. Copying & pasting an example program
  9. Syntax, syntax coloring, parens, code typography
  10. Constructing Strings for debugging
  11. Elementary Math operators
  12. Programming Paradigms: Simple Execution vs. Setup&Loop
  13. Setting Graphics states & modes, e.g. stroke, strokeWeight
  14. Basic drawing primitives: point, line, rect, ellipse
  15. Setting Colors: RGB, HSB; fill, stroke; alpha transparency.
  16. Setting pixels.

  17. Variables
  18. Iteration
  19. Conditionals
  20. The cursor: mouseX, mouseY, mousePressed
  21. Creating and using random numbers

Week 2: 1/18 - 1/20
Lecture Topics:

  1. Data storage in arrays.
  2. Drawing primitives with beginShape()/endShape()

Week 3: 1/25 - 1/27
Assignments 1X Due, 1/25.

Lecture Topics:

  1. Time: millis(), seconds(), etc.
  2. Animation with a frame counter.
  3. Animation with the millis().
  4. Matrix transformations: rotate, scale, translate, push/pop.
Week 4: 2/1 - 2/3
Assignments 2X Due, 2/1.
Week 5: 2/8 - 2/10
Assignments 3X Due, 2/8.
Week 6: 2/15 - 2/17
Assignments 4X Due, 2/15.
Week 7: 2/22 - 2/24
Assignments 5X Due, 2/22.
Week 8: 3/1 - 3/3
Assignments 6X Due, 3/1.
Week 9: SPRING BREAK (no classes)
Week 10: 3/15 - 3/17
Assignments 7X Due, 3/15.
Week 11: 3/22 - 3/24
Proposal for Final Project Due.
Week 12: 3/29 - 3/31
Assignments 8X Due, 3/29.
Revised Proposal for Final Project Due.
Week 13: 4/5 - 4/7
Work Sessions during both class meetings.
Week 14: 4/12 (Spring Carnival 4/14, no classes)
Final Project Halfway Checkpoint, 4/12.
Week 15: 4/19 - 4/21
Work Sessions during both class meetings.
Week 16: 4/26 - 4/28
Final Projects Due, 4/28.