Skip to content
Christopher Baker edited this page Sep 27, 2013 · 6 revisions

Experimental Media, ATS 5010 001

Semester / Year: Fall, 2013 | Meeting Times: Friday 9am-12pm | Location: MacLean 416 | Instructor: Christopher Baker | Contact Info: [email protected] | Office Hours: By Appointment | Office: MacLean 403


Instructor Bio

Christopher Baker is an artist whose work engages the rich collection of social, technological and ideological networks present in the urban landscape. He creates artifacts and situations that reveal and generate relationships within and between these networks.

Christopher’s work has been presented in festivals, galleries and museums in the US including The Weisman Art Museum, The Soap Factory, The Minnesota Museum of American Artists, Franklin Artworks, the Visual Studies Workshop, and the Museum of the Moving Image and internationally in venues including, Laboral (Gijon, Spain), Museum of Communication (Bern, Switzerland), Gallery@ (Barnsley, UK), the Pixelache Festival (Helsinki, Finland), Casino Luxembourg(Luxembourg), Alta Technologia Andina (Lima, Peru), as well as venues in Florence, Budapest, Copenhagen, Sydney, and Toronto. Christopher’s work was recently published in ID Magazine and in books including Data Flow: Visualising Information in Graphic Design (2008), Data Flow 2 (2010), Visual Complexity(2011), and Art contemporain nouveaux médias (2011).

Baker completed undergraduate andMasters degrees in Biomedical Engineering and completed a Master of Fine Arts in Experimental and Media Arts at the University of Minnesota in 2008.  In late 2009, he concluded a yearlong artist residency at Kitchen Budapest, an experimental media lab in Hungary.  He has worked extensively with Minneapolis Art on Wheels and is Owner of Murmur Labs LLC.  He was a visiting artist at Minneapolis College of Art and Design in 2010 and is currently an Assistant Professor in the Art and Technology Studies Department at the School of the Art Institute of Chicago.  See his profile info here or find out more about his work at http://christopherbaker.net.


Course Description

Experimental Media introduces graduate students to the basic strategies and techniques associated with using experimental media such as robotics, microcontrollers, networked objects, and basic interactivity.

Course Goals

In concert with the Grad Digital Media Seminar, this course aims to equip new graduate students with foundational tools, techniques and technologies essential to a successful graduate career in Art and Technology Studies.  In addition to school fabrication resources, students will be introduced to a variety of contemporary techniques, practices and creative methodologies. Key goals include:

  • Working knowledge of contemporary creative coding tools, with intermediate skills in one or more
  • Working knowledge of contemporary creative hardware tools, with intermediate skills in one or more
  • Working knowledge of and hands-on exposure to the school’s various fabrication facilities
  • Working knowledge of with popular online resources for:
    • Materials
    • Electronics
    • Hardware
  • Working knowledge of contemporary artists and groups addressing issues related to art and technology
  • Working knowledge of intermediate linux/unix OS features (scripting, terminal, automation, etc)
  • Building camaraderie between first year students and their classmates.

Methodology

Using individual in-lab and home assignments, class presentations, lectures, discussions, assigned readings, group and individual desk critiques, students will experience multiple aspects of interactive design.  Visiting artists / faculty may enhance the experience and offer additional perspectives.

Assignments

The course may include workshops and several small projects, relevant technical and theoretical reading, written online responses, technical research and outings.

Recommended Text

  • Getting Started with Arduino, Second Edition, By Massimo Banzi (aka GSA)
  • Programming Interactivity, Second Edition By Josha Noble (aka PI)

Note: Both books are available in DRM-free eBook form from http://oreilly.com/. Steep discounts are available: http://www.google.com/?q=coupon+oreilly.com.

Reading and other Resources

Posted on the blog or on the SAIC course website.

Materials

Provided by the student as needed.

Attendance

  1. Students are best served by attending all classes.
  2. Missing three classes will result in a class failure.  This is strictly enforced.
  3. Six or more unexcused late arrivals or early departures will result in class failure.

Tip: If you are going to be absent, late to class, or need to depart early, please contact me BEFORE class starts.  This is so I can make sure you have what you need to succeed!

Wait Lists  

Students wait-listed for classes will be admitted on a space available basis determined by instructors’ discretion (in consultation with the department chair).

Grading Procedure/Criteria

Grades are credit / no-credit for this course. Credit is based on several factors: 20% participation (discussions, critiques, etc), 35% smaller projects (in class work, several week-long projects), 45% larger projects.

Assistance

http://www.saic.edu/webspaces/portal/advising/write\_center.html

Special Needs

http://www.saic.edu/life/services/disabilities/index.html

Course Schedule

(subject to change based on incoming skills and experience)

Week 1

  • Introduction to course
    • How does this fit in with other courses?  
    • History of course?
    • What does it mean for us?
  • Introduction to each other
  • Survey of Creative Coding Platforms
    • History
    • Contemporary Options w/ Examples
      • openFrameworks vs. Nodebox
      • openFrameworks vs. libCinder
      • MaxMSP/Jitter vs. VVVV vs. PD vs. QuartzComposer
      • Unity3D
    • The future?
  • Survey of Creative Hardware Hacking Platforms
    • History
    • Contemporary Options w/ Examples
      • Arduino (in all of its forms, clones, etc)
      • Teensy
      • STM32 Discovery
      • Econotag
      • iPhones and similar devices
      • The future?

Week 2

  • Introduction to the command line.
  • Introduction to git / github.
  • Introduction to the IDE

Week 3

  • Bookkeeping
    • Why are we using git + http://github.com? Google Docs or Canvas would be a lot easier.
    • How do I get help when I am not sure how to do something?
      • Google it / Search a forum.
      • Browse in your book.
      • Ask a human (your peers or me are a good first place to )
        • Ask you peers
        • Ask me
    • Assignments
      • Essential that you are tracking with the group.
      • Essential that you seek help from your peers or from me
  • Introduction to Programming: A comparative studio between Arduino + openFrameworks
    • Anatomy of a Program
      • openFrameworks
      • Arduino
    • Anatomy of an Addon
      • openFrameworks
      • Arduino
    • Compiling: Under the hood
      • *.h + *.cpp
      • If Arduino is C++, why don't we have *.h / *.cpp files?
      • Preprocessor
        • An an opportunity conditionally manipulate the text of your code BEFORE it is compiled.
        • What are macros?
        • What is a preprocessor variable?
        • Where do preprocessor variables come from?
        • Preprocessor variables / macros often look like __APPLE_CC__.
        • Important preprocessor variables
          • #include
          • #pragma once vs. #ifndef FOO ...
      • Compiler
        • The process of translating our C++ langauge instructions (code) into hardware-specific instructions (code).
        • Usually produces object ('*.o') files, usually behind the scenes.
      • Linker
        • Fuses all of the compiled object files and libraries (including 3rd party libraries) into an executable application.
    • Programming syntax, a comparative study
      • Basic Output (Part 1)
      • openFrameworks:
        • Drawing: shapes
      • Arduino:
        • Blinking

Week 4

  • Bookkeeping
    • Github / Terminal Questions
    • Ask for help!
    • Basic Serial Communication
      • What is serial communication?
      • What is 9600 baud?

Week 5

  • Bookkeeping
  • Review Collections
    • "Raw" arrays
      • Pointers (mention)
    • Memory management
      • new vs delete
  • Review functions / methods
    • Passing by value
    • Passing by reference
    • Passing by pointer
    • Returning by value
    • Returning by reference
    • Returning by pointer
    • What is "const"?
  • Concepts: Doing things without delays.
  • Basic Output w/ Arduino (Part 2)
    • Looping, Timing, Repetition and Iteration in openFrameworks+Arduino
    • delays
    • interrupts vs. polling
    • for / while / do while
    • Basic Input and Behaviors
  • openFrameworks: mouse, keyboard, switches from the Arduino

Week 6

  • Arduino: simple analog sensors: button, light sensors

  • Variables in openFrameworks+Arduino:

  • data types

  • variables

  • math

  • mapping and scaling

  • repetition

  • randomness

Week 7

  • Advanced Programming Theory / Syntax

  • openFrameworks/Arduino

  • Functions

  • OOP (Object oriented programming), Classes, Objects

  • Arrays

Week 8

  • Advanced Programming Theory / Syntax (continued)

Week 9

  • Intermediate I/O

  • openFrameworks:

  • Audio I/O

  • Video I/O

  • Hardware Serial (RS-232) (talking to the arduino)

  • Arduino:

  • Hardware Serial (RS-232) (talking to openFrameworks)

  • Intermediate sensors (gyro, accelerometer, GPS, capacitive touch, etc)

  • Audio/Video on the Arduino (Survey)

Week 10

  • Intermediate I/O (continued)

Week 11

  • Advanced I/O (Input/Output)

  • openFrameworks:

  • Live Network feeds (push and pull)

  • Data persistence (saving data and preferences)

  • Database interface (MySQL, sqLite, XML, PHP/Web)

  • Arduino:

  • Wired/Wireless Networking (hardware vs. USB proxy)

  • Software serial (RS-232) talking to other Arduinos

  • Advanced sensor/device communication SPI

  • Advance IC interfacing / Bitbanging [bitwise operators]

Week 13

  • Advanced Topics and Integration

    • "The circle of life" agile digital fabrication and advanced output
  • scan, modify, print, repeat

  • Topics include:

  • advanced 2D output (vector/svg for laser cutter/CNC)

  • 3D in openFrameworks (opengl)

  • advanced 3D output (DXF, Collada) for 3D printer

  • Creative 3D design with sensor data (arduino)

  • sensor data to 3D object

  • Introduction to 3D tools

  • Meshlab

  • Blender || Sketchup || Rhino

Week 14

  • Advanced Topics and Integration (continued)

Week 15

  • Advanced Topics and Integration (continued)