Credit: This website and course design are largely the result of co-teaching 15-104 and 60-212 in the fall of 2015 with Golan Levin. As is typical in co-authored works, Professor Levin’s contributions are not identified or credited individually, but they are nevertheless substantial and pervasive.

Course Description

This course is an introduction to fundamental computing principles and programming techniques for creative cultural practitioners, with special consideration to applications in the visual arts, music, and design. Accessible to students with little to no prior programming experience, the course develops skills and understanding of text-based programming in a procedural style, and the application of such skills to interactive art and design, information visualization, and generative media. The course uses the p5.js variant of Processing for its programming language and toolkit.

This is a “studio art course in computer science,” in which the objective is art and design, but the medium is student-written software. 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. Students will become familiar with basic software algorithms, including idioms of sequencing, selection, iteration, and recursion; elementary data structures (arrays, files, trees), object-oriented interfaces and functional abstraction, and other computational principles (randomness, concurrency, complexity).

15-104 satisfies the software skills portal requirement for IDeATe minors and concentrations. Students in both course numbers will develop an understanding of the contexts, tools, and idioms of software programming in the arts.

Times, Locations, & People

15-104 uses a Piazza forum, where you can ask and answer questions. Find our page at: https://piazza.com/cmu/fall2016/15104/home. Contact your professor if you need to be added.

Class Time: Mondays, Wednesdays and Fridays, 9:30-10:20am,
Class Location: BH (Baker Hall) 136A
Section A: Tuesdays, 9am-10:20am, in GHC 5210, Anirudh Mani
Section B: Tuesdays, 10:30am-11:50am, in GHC 5210, Annie Huang
Section C: Tuesdays, 01:30pm-02:50pm, in GHC 5210, Ben Hecht
Section D: Tuesdays, 03:00pm-04:20pm, in GHC 5210, Katherine Tsai
Instructor: Roger B. Dannenberg, rbd at cs dot cmu dot edu
Office Hours: See Staff page on Piazza.

Teaching Assistants:

Anirudh Mani, amani
Annie Huang, shuangnh
Ben Hecht, bhecht
Katherine Tsai, kwtsai