About

Credit: This website and course design are largely the result of co-teaching 15-104 and 60-212 in the fall of 2015 by Golan Levin and Roger Dannenberg. As is typical in co-authored works, their 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.

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/fall2022/15104. We will add you to this page using your andrew login if you are registered at the start of the semester; contact your professor if you add this class late.

Lectures:
Mondays, Wednesdays and Fridays, 9:05-9:55am Eastern,
All sections: Posner Hall 151
Notes for Fall 2022:
Lectures will be IN PERSON unless otherwise announced by the university. If you cannot attend during the official lecture time slot due to illness, contact the instructor and you may be able to watch the video of the lecture online afterwards. Students must attend live, in person, if at all possible. There will be course mini-quizzes to check for attendance.

Recitations:
Section A: Tuesdays, 8:35am-9:55am Eastern, GHC 5210
Section B: Tuesdays, 10:10-11:30am Eastern, GHC 5210
Section C: Tuesdays, 1:25pm-2:45pm Eastern, GHC 5210
Section D: Tuesdays, 6:40pm-8:00pm Eastern, GHC 5210
Section E: Tuesdays, 11:50am-1:10pm Eastern, GHC 5210
Notes for Fall 2022:
Recitations will be in-person only, unless otherwise announced by the university.

Instructor:
Tom Cortina, tcortina at andrew dot cmu dot edu

Teaching Assistants:
Sun A Cho, sunac at andrew dot cmu dot edu
Sydney Dunn, sdunn at andrew dot cmu dot edu
Yon Maor, ysmaor at andrew dot cmu dot edu
Johanna Park, juhyunp at andrew dot cmu dot edu
Chad Truong, cbtruong at andrew dot cmu dot edu

Office Hours:
See Course page on Piazza.