Interactivity and Computation

Fall 2016 Syllabus (PDF)
Prof. Golan Levin


Course Numbers: 60-212
Location: CFA-111 (STUDIO), CFA building, CMU
Time: Fridays, 8:30am – 4:20pm, with a lunch break
Course Calendar:


This is an intermediate level course in creative coding, interactive new-media art, and computational design. Ideal as a second course for students who have already had one semester of elementary programming (in any language), this course is for you if you’d like to use code to make art, design, architecture, and/or games — AND you’re already fluent in the basics of programming, such as for() loops, if() statements, and arrays.

This course satisfies the EMS-2 (60-210: Interactivity) requirement for BFA and BXA-Art majors. As with EMS-2, students in this course will develop an understanding of the contexts, tools, and idioms of software programming in the arts. Unlike EMS-2, this course additionally satisfies the computing portal requirement for CFA and Dietrich students pursuing IDeATe minors and concentrations. (Students with no prior programming experience should register instead for 15-104, 15-110, or 15-112.)

This is a studio art course in computer science, in which the objective is art and design, but the medium is student-written software. The course develops skills and understanding of text-based, imperative programming techniques in a variety of popular open-source arts-engineering toolkits, including p5.js (JavaScript), Processing (Java), and openFrameworks (C++), with the aim of applying such skills to interactive art and design, information visualization, generative media, and other creative cultural practices. Rigorous programming exercises will develop the basic vocabulary of constructs that govern static, dynamic, and interactive form. Topics include the computational manipulation of: point, line and shape; texture, value and color; time, change and motion; reactivity, connectivity and feedback; interactive graphics, sound, and simulation; and the incorporation of various modes of input (sensors, cameras) and multimedia output.


Upon successful completion of this course, students will:

  • Have practical skills in the use of popular open-source arts engineering tools, such as p5.js, Processing and OpenFrameworks, for new-media arts development
  • Gain familiarity with the repertoire of artists, designers, works and activities around interactive art, information visualization, and computational design
  • Understand the use of computational techniques in interactive 2D and 3D visualization
  • Understand how to document and present creative work in person and online
  • Be proficient in creating computer programs capable of responding graphically to user interaction, in a variety of different development environments; and
    have developed an understanding of the underlying concepts of computation and their role in the arts.


Laptop. Students should have access to a personal laptop; OSX, Windows and Linux are all acceptable. However, although nearly all of the toolkits with which we work are free and cross-platform, example projects will generally only be given for OSX. An Android or iOS smartphone may also be helpful for some projects.

The programming environments used for example projects and sample code are p5.js (JavaScript), Processing (Java), and OpenFrameworks (C++). For OpenFrameworks, students should have a suitable IDE installed (such as XCode or Visual Studio). We may also encounter GLSL, Python, and Max/MSP.

Sketchbook. It is wise to plan your projects on paper before writing any code. We recommend the 5″x8.25″ Moleskine dotted notebook, but any sketchbook will do.


There are no specific course prerequisites for this course, but students must already be demonstrably comfortable with the basics of programming, such as for() loops, if() statements, arrays, and objects, as taught in courses like 15-104, 15-110, 15-112, or an equivalent.


60-212 provides 10 units of academic credit, and satisfies the software skills portal requirement for CFA (arts), Dietrich (humanities) college and other students pursuing IDeATe minors and concentrations. 60-212 additionally satisfies the same Electronic Media Studio requirement as 60-210 (sometimes called EMS2) for students pursuing BFA and BXA majors in the School of Art.


There are ten main assignments due at approximately weekly intervals, and a Capstone project with a proposal, check-in, and public exhibition phase. Additionally, students must make weekly “Looking Outwards” research reports based on Internet research. More details will be found on the Deliverables page.