Syllabus - adefelice/DDA617_Languages_FALL2017 GitHub Wiki

DDA617-01: LANGUAGES (INTERACTIVE) STUDIO FALL 2017 Wednesdays 05:00PM - 07:50PM | Myrtle Hall, Room 5E-05

Assistant Prof: Andrea DeFelice | Contact: [email protected] | Office Hours: by appointment Class GitHub Repository: https://github.com/adefelice/DDA617_Languages_FALL2017 Getting Started with GitHub: https://github.com/adefelice/DDA617_Languages_FALL2017/wiki

COURSE DESCRIPTION:

This course is an introduction to programming as a means of artistic expression. The focus is on developing computer languages literacy with an emphasis on techniques and applications to the visual arts. The goal is to facilitate the expression, concept realization and enable rapid idea prototyping. Programming concepts will be related to concepts from 20th century art history and parallel developments in contemporary visual arts. Instruction is based primarily in Processing, but will explore other coding platforms so that students are familiar with the various types of languages.

COURSE GOALS:

This course will provide the programming fundamentals necessary to create software-based and software-driven art and design. In addition, the course can be used as a stepping stone towards more complex (but not necessarily more powerful) programming environments such as Javascript, ActionScript, MEL, Java, C/C++, OpenFrameWorks.

REQUIRED TEXT AND MATERIALS: Please bring the following to every class:

  • BOOK: Learning Processing: A Beginner’s Guide to Programming Images, Animation, and Interaction, by Daniel Shiffman, Morgan Kauffman, Second Edition, 2015. (Available in print, digital, and rentable formats. Be sure to get the newest edition.)
  • External storage device, for storing and backing up your work.
  • A sketchbook.
  • Headphones, for open studio time-- nothing fancy needed.

PROJECTS AND ASSIGNMENTS:

  • Weekly readings and technical exercises, for developing programming foundation and building conceptual framework.
  • Weekly creative short study assignments, demonstrating programming proficiency and creative concept development.
  • Two short art reviews of code-based, interactive artworks in NYC
  • Midterm project – a largely self-directed work exploring the topics covered in the first half of the semester, using Processing.
  • Final project – creation of a complete digital artwork realized through Processing, supported by independent research and iterative project development.
  • Assignment details will be announced and posted on our class website in conjunction with each class.

ATTENDANCE AND PARTICIPATION:

Students are expected to attend all classes, except in cases of emergency, grave illness, religious commitment, or pre-planned academic event / exhibition / conference. In the case of a planned absence, notify your instructor. For illnesses, provide documentation whenever possible. For any absence, it is the student’s responsibility to inquire with classmates for notes, make up any exercises completed in class, and to complete impending assignments.

Your participation in the class is vital, not just for your grade, but for the health of the class. Participation includes completing your work on time, offering thoughtful feedback in critiques, bringing relevant ideas and questions to class discussions, and making positive contributions to the classroom community.

ADDITIONAL INSTITUTE POLICIES:

This course adheres to all academic integrity, plagiarism, computer and network use policies, listed in the bulletin.

This course adheres to all Pratt policies on students with disabilities as listed in the bulletin. Students who require special accommodations for disabilities must obtain clearance from the Office of Disability Services at the beginning of the semester. They should contact Mai McDonald Graves, Director of Disability Resource Center, 718-802-3123.

GRADING:

  • Attendance and Participation: 20%
  • Weekly Assignments: 25%
  • Midterm: 25%
  • Final: 30%

COURSE SCHEDULE / CALENDAR:

The topics and schedule are subject to change as needed. Assignment details and parameters are announced in class and posted to our GitHub Wiki each week.

WEEK 1: 8/30 TOPIC:

  • What is Code-based Art?
  • What is Interactive Art?
  • (Analogue vs Digital; Reactive vs Interactive; What can we do differently with code?)
  • Introductions

WEEK 2: 9/6 TOPIC:

  • Beginning with Algorithms: Instructions-Based Art TECHNIQUE:
  • Introduction to Processing IDE, structure, syntax
  • Drawing: coordinates, points, lines, primitives, colors

WEEK 3: 9/13 TOPIC:

  • Interactive Images and Drawing Machines TECHNIQUE:
  • Flow: setup and draw, basic functions
  • Variables and data types, arithmetic and for loops
  • Basic input: mouseX, mouseY, pmouseX, pmouseY

WEEK 4: 9/20 TOPIC:

  • Creating Uncertainty
  • If
  • Loops and Iteration TECHNIQUE:
  • Inputs continued: mouse and key press, events
  • If statements and conditionals, random function

WEEK 5: 9/27 TOPIC:

  • Interactive Structures and Nonlinear Narrative Models
  • (What can we take from experiments in interactive fiction, film, the web, and games? Looking at: hyperlink, phrasal templates, branching structures and CYOA, more)
  • Media in Motion
  • Why use GitHub? TECHNIQUE:
  • State changes
  • Loading images and fonts
  • Working with motion: speed, direction, translation
  • Introduction to GitHub

WEEK 6: 10/4 TOPIC:

  • Interactive Structures Continued TECHNIQUE:
  • State changes, continued
  • Timers

WEEK 7: 10/11 TOPIC:

  • Modularity
  • Interactivity Beyond the Computer Screen: Alternative Controllers and Interfaces
  • (What else can we do with these Interactive Models?) TECHNIQUE:
  • Creating functions

WEEK 8: 10/18 (MIDTERM PROJECTS DUE)**

  • Midterm presentations / critiques TOPIC:
  • Object Oriented Programming TECHNIQUE:
  • Intro to OOP

WEEK 9: 10/25 TOPIC: OOP Continued

  • Arrays
  • Building Interactive Projects (What are some best practices and strategies for organizing?
  • What can we learn from cross-disciplinary approaches in traditional art media, iterative design, engineering, science, music composition, etc.?) TECHNIQUE:
  • Working with arrays, object arrays
  • Organizing, versioning, debugging

WEEK 10: 11/1 TOPIC:

  • Art that sees.
  • Art that displays. TECHNIQUE:
  • Working with cameras and video.

WEEK 11: 11/8 TOPIC:

  • Art that listens.
  • Art that talks. TECHNIQUE:
  • Working with sound and mics.

WEEK 12: 11/15 TOPIC:

  • Art that is smart. TECHNIQUE:
  • Working with text and data.

///////////////////////////////// 11/22 - THANKSGIVING BREAK /////////////////////////////////

WEEK 13: 11/29 TOPIC:

  • Art that is smarter.
  • (Working with data, continued. Plus: touching on networks, emergence, AI) TECHNIQUE:
  • Working with data

WEEK 14: 12/6 TOPIC:

  • Experiential Interactives in Art, Design, and Entertainment
  • (What’s happening out there? Code-driven experiences and hyper-gamification) TECHNIQUE:
  • TBD, by request

WEEK 15: 12/13 (FINAL PROJECTS DUE) TOPIC:

  • Returning to the past, present, future: what is Interactive Art?
  • Final Project Presentations and Critiques