Coding Art Fundamentals sits at the intersection of computer science, digital graphics, and creative expression. The course is built for beginners and introduces foundational programming concepts through visual art, motion design, and interactive media.
Code is treated here as a creative medium, not strictly as an engineering tool. The course draws on a long history of creative coding environments, from early tools such as Lingo to foundational texts like Daniel Shiffman’s The Nature of Code, and uses that history to build a flexible way of thinking about programming, one that transfers to any language or environment a student picks up afterward.
All class code examples live in the class code repository. The course divides into two halves, moving from core programming logic to a more advanced, performance oriented creative toolkit.
The first half focuses on core programming logic, taught in p5.js, a JavaScript framework built for visual artists. Each project builds in immediate visual feedback while covering:
Midterm Project. This is where the first half’s skills come together. Skills don’t build if a student only memorizes what’s on the screen or repeats what’s demonstrated in class. Here, each student creates their own challenge: developing a story, building something they personally resonate with, at any level. Working through that idea means running into real problems to solve, and that’s where the logical thinking built over the first six weeks actually gets applied. The goal is to create something, simple or not, that the student is proud of and enjoys, built in a way that requires solving their own problems to reach their own goal. See the Midterm Project page for the full assignment.
The second half moves into openFrameworks, a compiled, strongly typed C++ environment, based on the first two chapters of Daniel Shiffman’s The Nature of Code (natureofcode.com):
See the Course Schedule page for the week-by-week breakdown of this half.
Final Project. The final project is done in groups, intentionally. Collaboration and co-creation are a core part of any art practice, and one of the things that keeps human made work different from anything a machine can produce on its own. Working in a group also builds skills every professional needs: communicating clearly, solving problems together, asking for help, and reaching decisions as a team. See the Final Project page for the full assignment.
A GitHub Pages link for each weekly sketch builds a public, web accessible portfolio of working code, not files on a hard drive. The final project adds a digital recording of the performance as part of that same portfolio.
The logic and mathematical foundations built in this course carry directly into later specializations, including:
By the end of this course, BFA students will be able to:
MFA students, in addition, begin building toward:
Every class is recorded, and the recording stays available afterward for students who want to revisit it.
Students are encouraged to understand the logic behind each class’s coding concept rather than just copying what’s on the screen. In the weekly assignment, students can watch the recording and pause at each section to copy the code as shown, then are encouraged to adjust it in any way to experiment and understand the concept more deeply.
Students need a laptop capable of running both the p5.js web editor, which works in any modern browser, and, from Week 8 onward, openFrameworks, which requires a Mac or Windows laptop able to compile C++ and run Xcode or Visual Studio. No computer lab is available this semester, so this must be a student’s own machine.
Canvas is used for all weekly assignment instructions. No textbook purchase is required. A pre-recorded walkthrough of how to submit through GitHub Pages lives in Canvas, linked from every assignment. See the Resources page for class links.
Each week’s assignment is submitted through GitHub, via Canvas, turning that week’s coding concepts into an original piece. The Midterm and Final projects are both presented in person; see their own pages for details.
This is a 3-credit course, following CalArts’ standard credit-hour policy: 45 hours of work per credit for BFA students, 60 hours per credit for Masters students. That comes to 135 total hours for BFA students and 180 for Masters students across the semester. In-class time adds up to about 25.7 hours over the semester. The rest is independent work: roughly 7.8 hours a week for BFA students, and roughly 11 hours a week for Masters students.
The weekly assignments category splits evenly across however many weekly assignments actually run that semester, not a fixed per-assignment percentage.
All assignments are posted in Canvas with their instructions and deadline, and are submitted digitally through Canvas. The Midterm and Final projects additionally include an in person presentation. The Week 14 AI workshop doesn’t have its own assignment; attendance that day counts as that week’s assignment, within the weekly assignments category above.