MAT594X Special Topics:

Computational Systems for Visual Art and Design

Zoom Link:

Github Organization Link:

Instructor: Jennifer Jacobs (

TA: Stejara Dinulescu (

Lecture Time: Tuesday-Thursday 3:30-5:20PM

Office Hours: Tuesdays 11:00-12:00 PM (by appointment only)


Course Registration Survey

Course Description

Computational systems of rules, relationships, and behaviors can extend traditional art and design practices or support new creative workflows and outcomes. In this course, we will explore the creation of computational systems for visual art and design. Following a studio format, we will use creative coding platforms and algorithms to create visual works that are flexible, dynamic, and generative. In the process, we will touch on the design philosophy and abstractions of existing creative coding platforms and examine methods to create alternatives. Students will learn basic approaches to modify creative programming languages and frameworks or develop new software interfaces for visual expression. Technical production will be complemented by readings on computational art and design theory and review of seminal works in computational art and design.

Course Goals

  • Examine concrete opportunities and challenges of using computer programming to create works of visual art and design through creative practice.

  • Contextualize practical approaches to creative coding within the history and theory of computational art and design.

  • Introduce students to techniques for modifying existing programming languages, tools, and interfaces to support new audiences and new forms of expression

  • Engage in critical reflection on the dominant paradigms and approaches in computational art and design and explore alternatives.

  • Provide an opportunity for students to develop their own artworks, software applications, and programming representations.

Course Components

Course Structure

The course is divided into bi-weekly class meetings (via zoom) on Tuesdays and Thursdays from 3:30-5:20 PM Pacific Daylight Time, with a 10 minute break in between.

The Zoom link for these meetings is:

On Tuesdays, the course time will be split into discussions of weekly project assignments during the first half and lecture during the second half. Assignments should be posted to GitHub before Tuesday by 10AM. There are 7 total weekly assignments. By Tuesday's course, students should also provide comments on the reading reflections of other students from the past week's reading.

On Thursdays, the course time will be split into discussion of the readings during the first half and lecture during the second half. Readings and reading reflection slides should be completed before 6pm on Wednesdays. There are 7 total weekly reading reflections.

Asynchronous: Instructor / TA support.

Final Project: Please see Final Project detail page.

Online and Remote Instruction

Due to pandemic restrictions, this course will be taught entirely online. Online teaching presents unique challenges for a course focused on a studio and project-based learning format. The instructor will adjust the course format, timing, and content throughout the quarter as the class experiments with the online format.

Zoom course sessions will be recorded and uploaded to the class google drive.

If you require any accommodation for the remote format, please contact the instructor directly.

Readings and Discussions

Students will be assigned weekly readings drawn from Fine Art, Computer Graphics, Computational Design and Human Computer Interaction texts. Students are expected to complete the required readings and a reading reflection slide by Wednesday at 6pm, as well as engage in group discussions in class on Thursday. Students should also leave comments on at least 2 other reading reflection from their peers by the following Tuesday.

Reading reflections should focus on analysis and response of resonant themes in the reading, or provide comparisons or contrasts between readings. Required and optional readings can be found in the Schedule tab, as well as in the daily overview pages (subtabs of the Schedule tab).

Code Assignments

Students will be assigned a weekly project on Thursday, to be completed by the following Tuesday by 10AM. We will discuss projects in-class the following Tuesday.

Code assignments should be uploaded to the class GitHub organization. Instructions on how to do so can be found in the January 7th class detail page.


A portion of the class will be devoted to small group discussion of readings and concepts from the lecture (on Thursdays, in class), and group critique of peer work and presentations (on Tuesdays, in class). Students are responsible for actively and thoughtfully contributing to these discussions and critiques. Students are also responsible for providing feedback on reading reflections and course assignments by other students. Students will also receive participation credit for supporting other students in addressing technical challenges or coding questions via the class slack, or in class sessions.

Course Evaluation

Final grades will be calculated as follows

Weekly assignments (evaluated for completion, creativity, and variety) 35%
Reading reflections (evaluated both for quality and completion) 20%
Participation 15%
Final Project 30%