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. In addition, there are contributions from many teaching assistants throughout this website.
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
Class Location: HH (Hamerschlag Hall) B131
Recitations and Teaching Assistants:
Section A: Tuesdays, 9am-10:20am, in GHC 5210,Kevin Riordan, kzr at andrew
Section B: Tuesdays, 10:30am-11:50am, in GHC 5210, Aiyana Huang, xinyih at andrew
Section C: Tuesdays, 01:30pm-02:50pm, in GHC 5210, Robert Oh, rhoh at andrew
Section D: Tuesdays, 6:30pm-7:50pm, in GHC 5210, Ravikiran Pamarty, vpamarty at andrew
Section E: Tuesdays, 6:30pm-7:50pm, in GHC 5208, Grace Hou, ghou at andrew
Instructor: Roger B. Dannenberg, rbd at cs dot cmu dot edu
Office Hours: See Staff page on Piazza.