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/fall2020/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.

Mondays, Wednesdays and Fridays, 9:20-10:10am Eastern,
All sections: Online via Zoom (address to be provided via email)
Notes for Fall 2020:
Lectures will be Remote Only for the entire semester due to the overall class size. If you cannot attend during the official lecture time slot due to a time zone difference, you will be able to watch the video of the lecture online afterwards. Students must attend live if at all possible or watch the video before the following lecture. There will be Canvas mini-quizzes to check for attendance.

Section A: Tuesdays, 8:00am-9:20am Eastern, GHC 4307
Section B: Tuesdays, 9:50am-11:10am Eastern, GHC 4307
Section C: Tuesdays, 1:30pm-2:50pm Eastern, GHC 4215
Section D: Tuesdays, 7:00pm-8:20pm Eastern, PH 100
Notes for Fall 2020:
Recitations will be remote only during the first week of classes and after Thanksgiving Break. Watch for additional changes in the schedule, subject to university mandates.
Recitations are taught in In-Person-Remote mode so remote students will attend via Zoom via in-person students are in class at the same time. If you cannot attend during your registered time slot, please email your instructor for accommodations.

Tom Cortina, tcortina at andrew dot cmu dot edu

Teaching Assistants:
Sun A Cho, sunac at andrew dot cmu dot edu
Peter Sauer, psauer at andrew dot cmu dot edu
Charlotte Simpson, csimpson at andrew dot cmu dot edu
Vicky Zhou, vzhou at andrew dot cmu dot edu

Zoom Office Hours:
See Staff page on Piazza.