Programming for Artists

ART 39552

Credits: 3.0

City College, Summer 2015

Tuesday/Thursday 2-4:50pm

Adj. Asst. Prof.: Andy Deck

Overview A hands-on introduction to producing software and scripting in the context of art and design. The course covers basic elements of programming with the Processing language, including ProcessingJS. Lectures and discussions related to programming in historical and contemporary art practices complement the course's experimental focus, providing context for student work and critique.

Required Text:
Getting Started with Processing
By Reas and Fry
ISBN-10: 144937980X

Still image assignment
Getting to know the Processing language by making still images in black and white, and color

Related Links

 

Dynamic image assignment
Using variables, functions, and loops to control animated imagery

Related Links

 

Interactive assignment
Mouse interaction can take many forms in Processing.

Related Links

 

Programming in art and design
Research an artist who has made some coded digital art that you like. Compare two or three of this artist's works with works by other artists. 10 pages. This essay will be judged on the quality of your research, the originality of your analysis, and the clarity of your arguments and writing.

Some artists and designers who code

  • John Maeda
  • Manfred Mohr
  • Scott Snibbe
  • Camille Utterback
  • Mark Wilson
  • Nina Valkanova
  • Larry Cuba
  • Yugo Nakamura
  • Rafael Lozano-Hemmer
  • John F. Simon, Jr.
  • Joshua Davis
  • JODI
  • Lisa Jevbratt
  • Sol Lewitt

 

Final Project

The final project is open ended and student-designed. Skills developed in the course should be applied in this project, but it may lead in unexpected directions.

 

Grading:
Grading will be based on in-class participation, a research paper, the final project, and several other assignments. Attendance is required for every class and 3 absences = a failing grade. If you must miss a class, give notice prior to being absent. Late work will not be accepted without penalty. 1 week late = a subtraction of 2 letter grades. Plagiarism could result in failure of the course. You may find further information regarding City College's academic integrity policies at policy.

 

Your Responsibilities:
  • Completing all homework assignments —both readings and graphics assignments on time.
  • Participate in class exercises and discussions.
  • Maintaining a notebook / sketchbook.
  • Alerting me if you feel you don't understand a concept, or you feel lost in the class.

 

Useful links



Class Schedule

Class 1 1/27

In Class

  • Download the Processing software ("IDE")
  • Overview of the language, the 2D coordinate system
  • drawing tutorial
  • Basic 'sketch' operations
  • Drawing simple shapes
  • Stroke
  • Value
  • Artists using minimalist, geometric, or black and white visual vocabularies
  • Group exercise / game
  • Homework assignment: read chapters 1-3 AND produce a static image with Processing. Use basic shape commands, e.g. line(), ellipse(), rect(), etc, to make a visual composition in black and white.

Class 2 2/3

In Class

Homework Due

  • Read chapters 1-3 in the book.
  • Black and white still image due (code and image print).

Class 3 2/10

In Class

  • Examine the functions written as a homework exercise
  • Learn about RGB color; Color Cop (Windows) or Applications->Utilities->Digital Color Meter (OS X)
  • Review of variables
  • Debugging
  • Conditionals and Boolean Logic
  • Colorful 2D inspirations
  • Homework assignment: watch introductory video tutorials (1-8) AND make a color still image using at least one function (written by you)

Homework Due


Class 4 2/20

In Class

Homework Due

  • Assignment 1 part B, color still image due that uses 1 function written by you. Print image and the code.
  • Watch introductory tutorials (1-8)

  • Class 5 2/24

    In Class

    • Discuss dynamic image work in progress
    • Lerp() and linear interpolation
    • random() and noise()
    • Brownian motion 2D example
    • "Non-determinism" in Art
    • Homework: read Chapter 6: Media AND finish the dynamic image assignment
    • In class exercise: make a 'chance composition' using algorithms you develop in functions. The outcome of the program should be non-deterministic, meaning that you, as the author of the program, cannot be sure exactly what the outcome of the program will be.

    Homework Due

    • Read Chapter 7: Motion up to p.98 AND bring work in progress for dynamic image

    Class 6 3/3

    In Class

    • Using imported graphics
    • Great illustrators, symmetry and repetition
    • Using save() to save a bitmap
    • In class exercise: group project recursion
    • Homework: begin hybrid creative process mid-term assignment (2 week assignment)

    Homework Due

    • Dynamic image assignment
    • Read Chapter 6: Media

    Class 7 3/10

    In Class

    • In class: produce a sketch that applies at least two of the three: translation, rotation, scaling.

    Homework Due

    • Bring Processing component of hybrid process mid-term assignment

    Class 8 3/17

    In Class

    • Midterm Critique

    Homework Due

    • Hybrid process mid-term assignment due (images made in Processing incorporated into a creative process that is independent of Processing)

    Class 9 3/24

    In Class

    • Basic mouse and keyboard interaction
    • Interactivity and Participation
    • In class: Write a program that gives the user the ability to draw on screen. Use parts of the screen to add a user interface that controls color, scale.
    • Homework: interactive image assignment using mouse or keyboard. The characteristics of the image should change in response to user interaction. Changes could include form, color, composition, or movement. AND Read Chapter 5: Response

    Homework Due

    • Read Chapter 9: Objects and 10: Arrays

    Class 10 3/31

    In Class

    Homework Due

    • Read Chapter 9: Objects and 10: Arrays

    Class 11 4/7

    In Class

    Homework Due

    • Research paper on artist(s)/designer(s) due

    Class 12 4/28

    In Class

    • Introduction to Video
    • In class exercise: Create a project using the Processing video library.
    • Interactivity and Participation

    Homework Due

    • Final Proposal Due: The proposal is informal, but it assumes that you have been actively maintaining a sketchbook/notebook. This sketchbook/notebook will serve as a basis for a brief discussion about your plans. It should notes about technical plans, materials, conceptual descriptions, and (hand drawn) sketches.

    Class 13 5/5

    In Class

    • ProcessingJS
    • Background and applets
    • Limitations and capabilities
    • Similarities and differences between Javascript and ProcessingJS

    No Homework Due

    • Work on Final Project

    Class 14 5/12

    In Class

    • Processing / Arduino integration demo

    No Homework Due

    • Work on Final Project

    Class 15 5/19

    In Class

    • Final Critique

    Homework Due

    • Final Project