Critical Code

ISS 294L - Interactive Graphics: Critical Code, Spring 2019
Duke University Computational Media Arts and Cultures
Instructor Matthew Kenney (office hours 243A Bay 12, TBD)
Tuesday and Thursday, 11:45 am - 1:00 pm
Emergence Lab, Smith Warehouse Bay 10


Introduction to interactive graphics programming for artists. Explores object-oriented programming via the Processing programming environment as well as historical and theoretical appreciation of interactivity and computer graphics as artistic media. Combines discussions of key concepts from the readings with hands-on Processing projects and critiques. No previous programming experience or Instructor: Staff


Throughout this course, we will engage with the intersections of critical software development, art and design practice, and contemporary visual culture. We will leverage web based platforms a as canvas to critique contemporary web culture and interfaces. This class aspires to lay the foundation for a deeper understanding of the digital, encouraging the use of the computer as a tool maker and showing its aesthetic and conceptual potentials in the broad range of the arts. s


After completing this course, students will be able to effectively:

  1. Produce web-based applications in the p5.js (Javascript) programming language and extend projects by incorporating libraries and frameworks
  2. Demonstrate a strong grasp of historic and current web-based artists practices, and where that practice falls in relation to their current artistic output
  3. Participate in thoughtful critique of the work developed throughout the semester
  4. Demonstrate an understanding of coding concepts including classes, arrays, inheritance, and algorithms, and API’s, and backend architecture
  5. Incorporate themes, language, and theory from the student’s current research and practice into works developed throughout the semester
  6. Participate in current debates on critical coding such as open source, networking, and graphics.
  7. Recognize, deconstruct and analyze existing computational projects exploring social and cultural topics.
  8. Install and present work publicly


Students are responsible for bi-weekly blog posts, three term projects, and a culminating project at the end of the term. The final project will be scaffolded during the semester build off of the prior projects. Students will be asked to write an application. Students will draft, test and execute the code for their final project. Students are encouraged to use weekly assignments to think through and practice aspects of the final project. Class participation will be based on attendance,reading and practice, and active participation in class activities.


Students must not miss more than 4 classes over the course of the semester. Doing so will result in a failure. Please come on time to class. If you are late this will alter your participation grade.


No cellphones in class. Limit checking personal e-mails, Facebook etc. during class.


Participation is important. Ask questions, make comments, participate in the group critiques. Respect the rules above, be on time. Let us know ahead of time if you can’t make it to class.


Project 1: 10%
Project 2: 20%
Project 3: 20%
Project 4: 20%
Final Project: 20%
Participation: 10%


A - Excellent

This project is comprehensive and detailed, integrating themes and concepts from discussions, lectures and readings, and reflecting critical and technical topics covered in class. Students who earn this grade are prepared for class, synthesize course materials and contribute insightfully in every class meeting.

B - Good

This project meets the general requirements, offering contributions at a general level of understanding. Classroom participation is consistent and thoughtful in nearly all class meetings.

C - Average

This project is adequate but nothing more, meeting the minimum requirements but without significant original thought, reflection, or inventiveness, whether theoretically or practically. Classroom participation is inarticulate or infrequent.

D - Unsatisfactory

This project is incomplete, and evidences little understanding of the workshops and discussions. Critique and implementation demonstrate inattention to detail, misunderstand course material and overlook significant themes. Classroom participation is spotty, unprepared and off topic, or rare.

F - Failed

This grade indicates a failure to participate and/or incomplete assignments


Getting Started with p5.js: Making Interactive Graphics in JavaScript and Processing by Ben Fry, Casey Reas, Lauren McCarthy, October 2015

Speaking Code, Coding as Aesthetic and Political Expression by By Geoff Cox and Alex McLean. MIT Press, 2010

Digital Art by Christiane Paul. Thames & Hudson, 2003