Monday / Wednesday 9:00–11:00
Fayerweather 303
Prof. Brian House (he/him)
bhouse@amherst.edu
Office hours: https://calendly.com/bhouse-amherst/student-meeting
Fayerweather 308
Introduction to computer programming for studio artists. By writing code to generate 2D graphics, students will explore the qualities intrinsic to artistic expression with computers such as nonlinearity, indeterminacy, glitch, and emergence. Accompanying critical discussion will consider key practitioners in the field. Through progressive weekly projects, students will gain a foundation for working with code in art. Designed for students with little to no programming experience.
- Cultivate an ability to think abstractly in terms of algorithms
- Understand the underlying structures of contemporary digital tools
- Survey contemporary artists working formally with code
- Build a foundation for expanding into other areas of media art practice
- Gain proficiency programming in the Python programming language
This course is built around open-ended code "sketches" that progress through a series of formal qualities associated with computational media: algorithm, coordinates, repetition, indeterminacy, interface, nonlinearity, and emergence. In addition, each sketch introduces and makes use of a new programming topic, such as the use of loops or lists. We will work on sketches during class, but it is expected that most of your development will be done as homework.
Sketches must include a title and a 3-sentence statement and will be critiqued during class. All work must be submit online through Google Drive prior to the crit; no late work is accepted, and you must attend the crit to receive credit for your work. Copy your sketch folder to Google Drive and include your title and statement as a comment at the top of your code.
Each student will give a 10-minute presentation on an artist working with code. These presentations, which must be organized in slides, should give an overview of the context in which the artist is working and then proceed to show one or two artworks in detail. Students should comment thoughtfully on how the work relates to the themes discussed in class as well as to their own practices. The presentation should end with a couple of questions posed to the class for discussion that relate to the technique or themes of the artist's work. Students will sign up to present on an artist chosen from a list on a first-come, first-served basis. Slides should be turned in on Moodle prior to class.
Attendance is mandatory, and motivated and mindful participation in crit and classroom disscussion is expected.
In this course, you are expected to earnestly engage in the practice of studio artmaking, and doing so is the basis of your grade at the discretion of the professor. In other words, your grade is about process, not about product. Completing all work on time and participating in class is the baseline standard. Beyond grades, your work will be evaluated subjectively via peer critique and feedback from the instructor, and you are expected to incorporate that feedback into your future work while pursuing your own creative direction. As this is an introductory course, experimenting with the craft of code is the primary emphasis and should be your focus. Midway through the semester, students will meet individually with the professor to track their progress.
It is my intent to lead a course that serves students from diverse backgrounds and perspectives, and that our varied life experiences may be a common benefit. Content in this studio art course may at times challenge our aesthetic and/or ethical values; free exchange of ideas and critique is encouraged and expected, but harassment and disrespect will not be tolerated. During class discussion and critique we aim to be mindful and generous in our interactions and to make everyone feel heard.
While all students must complete their own work, you are encouraged to help each other. To facilitate collective learning, students are also able to work in Fayerweather 303 outside of class hours. We will choose designated open studios in the first week. Keys to 303 will be distributed to all students.
The version of this syllabus posted online will be updated periodically and is the definitive version. It is your responsibility to consult it and stay up-to-date.
This course requires a personal laptop—recent hardware and MacOS is preferred (Windows and Linux are also fine; Chromebooks will not work). If you do not have access to a laptop, you will need to make arrangements to borrow one for the course. It is expected that you will not use your laptop for other purposes while in class. The use of phones in class is not permitted.
I strive to make this course welcoming to all students. If you have a documented disability that requires accommodations, you will need to register with Accessibility Services for coordination of your academic accommodations. Once you have your accommodations in place, I will be glad to meet with you to discuss the best implementation of your accommodations.
By enrolling in the course, you agree to uphold the principles set forth in the College’s Honor Code, including the Statement of Intellectual Responsibility, the Statement of Respect for Persons, and the Statement of Freedom of Expression and Dissent. The work submitted in this course must be conceived of and programmed by you. While learning from and incorporating code from other sources is a natural part of programming (e.g. Stack Overflow and OpenProcessing), you must demonstrate understanding and intentionality in your work, and you may not copy and paste others' code wholesale. Always credit your inspirations and be confident in your original concepts.
Our college is named after a white colonizer and is built in the Kwinitekw Valley on Nonotuck land; we are here because of the sacrifices forced upon indigenous peoples. As artists working with technology, we must be aware of and resist the many ways computation capitalizes upon and perpetuates violence toward marginalized people.
- Introduction
- In-class Exercise: Algorithm
- For next class:
- Turn in Get set up with Python Mode for Processing "sketch"
- Sign up to present
- Address setup issues
- Establish Open Studio Times
- Discussing Coordinates
- Coding with Coordinates
- Going forward, use the Python for Processing Cheat Sheet for reference
- Begin Coordinates Sketch
- Explanation of crit guidelines
- Crit Coordinates
- Discussing Repetition
- Coding with Repetition
- Safety Training
- In-class "textile" mini-sketch
- Coding with Indeterminacy
- Discussing Indeterminacy
- Begin Repetition and Indeterminacy Sketch
- Explanation of artist statements
- Crit Repetition and Indeterminacy Sketch
- Coding with Time
- Begin Time Sketch
- Discussing Time
- Questions and work time
- Presentations 1
- Desk crits
- Questions and work time
- Crit Time Sketch
- Coding Interfaces
- Begin Interface Sketch
- Presentations 2
- Discussing Interface
- Questions and work time
- Presentations 3
- Desk crits
- Questions and work time
- Demo interface at desk
- Crit Interface Sketch
- Coding Nonlinearity
- Begin Nonlinearity Sketch
- For next class:
- Play The Manhole
- Presentations 4
- Discussing Nonlinearity
- Coding Nonlinearity continued
- Questions and work time
- Presentations 5
- Questions and work time
- Desk crits
- Questions and work time
- Midterm review meetings
- Presentations 6
- Questions and work time
- Desk crits
- Crit Nonlinearity Sketch
- Questions and work time
- Presentations 7
- Final project brainstorming
- Begin Final Sketch
- Final project proposals due
- Questions and work time
- Questions and work time
- Desk crits
- Questions and work time
- Questions and work time
- Wrap up
- Crit Final Sketch
- No meetings during exam week
- Portfolio due 12/21