Main Page
Contents
Programming for Artists
- Prof. Joseph Moore
- Monday 6:15 - 9:05
- http://joseph-moore.com
- email: understandingnewmedia@gmail.com
- Office hours: Monday 4:30 - 6:00 and Wednesday 12:00-1:30 in CG205
Useful Links
- http://processing.org/ The Software!
- http://www.learningprocessing.com/ Website for the Book!
- http://understandingnewmedia.com/p4a/index.php?title=Exercises The Homework Wiki!
- http://www.cyberduck.io FTP Client!
- http://www.processing.org/learning/ Processing site tutorials!
Course Description
Programming for Artists is an entry level programming class geared toward teaching artists and designers fundamental aspects of computer programming. Throughout the class students create a variety of projects that introduce technical aspects of New Media Art while also investigating the history of computation in the arts though the work of canonical and contemporary artists and artworks. Additionally, related topics such as the history of interactivity and participation will be explored though class discussions and presentations.
Objectives
- Learn fundamental programming concepts and approaches.
- Gain knowledge of artists working with computation.
- Apply this knowledge effectively in the creation of artworks.
Student Responsibilities
- Turn in work on time.
- Turn in work before class starts on the course wiki.
- Sign the role, this is how I know you were in class.
- Participate in discussion.
Method of Evaluation
- Participation and Attendance: 20%
- Exercises: 20%
- Midterm: 30%
- Final: 30%
The grade you receive will be based on participation, exercises, and a final project. Attendance is required for every class and missing 3 classes = an automatic failure of the course. Late work will not be accepted without penalty. 1 week late = a subtraction of 2 letter grades. More than a week = a failing grade. If you do turn in work late, you must email me immediately after you post a link to the project on the wiki.
Plagiarism will not be tolerated and will result in a failure in the course! Please see CUNY's policy on plagiarism here.
Class Etiquette
When I am presenting the class lecture I ask that students refrain from texting, checking their email, etc. I will not do those things when you are speaking and I ask for the same courtesy. This same respect should be extended to your fellow classmates. If someone is being disrespectful during critique they will receive a 0 for the day.
Textbook
For this course we will use Daniel Shiffman's Learning Processing.
Class Schedule
Class 1
1/30/2017 In Class
- Download Processing 3 here.
- creating a static sketch
- drawing simple shapes
- using color
- function calls
- comments
- Sol LeWitt wall drawing instructions
Class 2
2/6/2017 In Class
- Examine Exercise 1
- RGB color mixing
- using setup() and draw()
- Basic mouse and keyboard interaction
- Variables (slides)
- Transformation Examples
- Abstraction and Movement
- Viking Eggeling's Symphonie Diagonale (video)
- Marcel Duchamp's Anemic Cinema (video)
- Hans Richter's Rhythmus 21 (video)
- JODI myDTP 47 (video)
- Ryoji Ikeda data.path (video)
- Abstraction Movement Interaction (slides)
Homework Due
- Read chapters 1-3 in the book.
- Exercise 1: Using the basic shape commands, e.g. line(), ellipse(), rect(), etc, create a self portrait.
Class 3
Wednesday 2/15/2017 In Class
- Primitives
- Variables
- Conditionals and Boolean Logic
Homework Due
- Read Chapters 4: Variables and 5: Conditionals
- Exercise 2: Write a program that gives the user the ability to draw on screen. Try to make this an interesting and surprising experience for the user. Use conditionals that alter the "drawing experience" based on user interaction.
Class 4
2/27/2017 In Class
- Loops and Iteration
- Repetition, Variation, and Transformation in Art
Homework Due
- Exercise 3: Create a sketch that has a basic interface element such as a button. Clicking this button causes a change in the sketch. This change could be in terms of form, color, composition, or movement. Consider, how can you make something as mundane as button clicking an interesting user experience?
Class 5
3/6/2017 In Class
- Examine Exercise 4.
Homework Due
- Read Chapter 6: Loops
- Exercise 4: Create two processing sketches that explore repetition, variation, and change. One sketch should use a for loop, the other a while loop.
Class 6
3/13/2017 In Class
- Introduction to Functions
- Block Scope
- random()
- Perlin noise
- Interactivity and Participation
- "Non-determinism" in Art
- Function examples
- Random examples
Homework Due
- Read Chapters 7: Functions
Class 7
3/20/2017 In Class
- Work on Midterm
Homework Due
- Work on Midterm
Class 8
3/27/2017 In Class
- Midterm Critique
Homework Due
- Midterm: Create a “chance composition” using algorithms you develop encapsulated 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.
Class 9
4/3/2017 In Class
- Objects
- Arrays
- Debugging
- Using libraries
Homework Due
- Read Chapter 8: Objects and 9: Arrays
Class 10
Wednesday 4/20/2017 In Class
- Introduction to Image Processing
- Introduction to Video
Homework Due
- Exercise 5: Create an object-oriented version of one of your previous programs.
Class 11
4/24/2017 In Class
- View Exercise 6
- Working with sound (Minim)
Homework Due
- Exercise 6: Create a project using the processing video or image library.
Class 12
5/1/2017 In Class
- View Exercise 7
Homework Due
- Exercise 7: Add sound to an old project or create a new project that uses sound.
- Final Proposal Due: Write a page describing your final project. The proposal should include both a technical description of the project (how/with what materials) and a more conceptual description (why/what ideas are you exploring.)
Class 13
5/8/2017 In Class
- Work on Final Project
Homework Due
- Work on Final Project
Class 14
5/15/2017 In Class
- Work on Final Project
Homework Due
- Work on Final Project
Class 15
5/22/2017 In Class
- Final Critique
Homework Due
- Final Project!