Fall 2016 Syllabus (PDF)
Prof. Golan Levin
COURSE NUMBER, MEETING TIMES, MEETING LOCATIONS:
Course Numbers: 60-212
Location: CFA-111 (STUDIO), CFA building, CMU
Time: Fridays, 8:30am – 4:20pm, with a lunch break
Course Calendar: http://bit.ly/golancoursecalendar
COURSE DESCRIPTION
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.
LEARNING OBJECTIVES
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.
REQUIRED COURSE MATERIALS
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.