This is the archive of the 15-week fall 2015 arts-engineering course, “Introduction to Computation for Creative Practices” (15-104/60-212), co-taught by Roger Dannenberg and Golan Levin at Carnegie Mellon University. The participating students were primarily sophomores in CMU’s Schools of Art, Architecture and Design. All materials herein are available under the Creative Commons BY-NC-SA 4.0 License. Questions about this site or its contents, including requests for problem set solutions, should be directed to Golan Levin.

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).

Both 15-104 and 60-212 satisfy 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. However, students enrolled in 60-212 experience a version of the course with much more in-depth critique of student projects, and significantly more exposure to the history and theory of new media arts. Consequently, 60-212 additionally satisfies the Electronic Media Studio requirement of 60-210 (sometimes called EMS2) for BFA and BXA+Art majors.

Times, Locations, & People

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

For 15-104 (Prof. Roger Dannenberg):

Class Time: Mondays, Wednesdays and Fridays, 12:30-01:20pm,
Class Location: DH (Doherty Hall) A302
Section A: Tuesdays, 10:30am-11:50am, in GHC 5208, Luca Damasco
Section B: Tuesdays, 10:30am-11:50am, in GHC 5210, Joshua Baiad
Section D: Tuesdays, 01:30pm-02:50pm, in GHC 5210, Guy De Bree
Section E: Tuesdays, 03:30pm-04:50pm, in GHC 5208, Michelle Ma
Instructor: Roger B. Dannenberg, rbd at cs dot cmu dot edu
Office Hours: See Staff page on Piazza.

For 60-212 (Prof. Golan Levin):

Class Time: Tuesdays and Thursdays, 8:30-11:20am.
Class Location: CFA-318, and CFA-111 (STUDIO for Creative Inquiry)
Recitation: Tuesdays, 12:00-1:20pm, in GHC 5208
Instructor: Golan Levin, @golan, golan at andrew dot cmu dot edu
Office Hours: By appointment (but I can usually be found in the STUDIO).

Teaching Assistants:

Luca Damasco, ldamasco
Joshua Baiad, jbaiad
Guy De Bree, gdebree
Michelle Ma, michell3
Aprameya Mysore, amysore