Creative Coding

Queens College
ARTS 249
Creative Coding

Spring 2024
Thursday, 10:00 AM – 1:50 PM
Slack Channel
11:30 AM – 1:45 PM optional One-on-One Zoom: Schedule a time here

Class Code Examples on GitHub

YouTube Channel

No Class
February 22 (Follows a Monday Schedule)
April 25 (Spring Break)

Course Description
The computer is an amazing tool that most designers really do not use to its full potential. The software applications that are used by the masses are just that, created for the masses and are not perfect for every project. In this class we will be looking at using computational algorithms as a tool to create beautifully designed visual graphics.

Over the semester we will be exploring design topics like form, color, grids, typefaces and 3 dimensional objects and combining these with computational topics like randomization, repetition, transformation, generative and data manipulated design. Each class will consist of a lecture and live coding examples as well as student project presentations and critiques. We will be using p5js as our main platform to focus on the intersection between the visual arts and code.

Course Objectives
This course focuses on introducing students to the world of code and showing that code can also be used as a means to create art and beautiful designs. By combining design and artistic principles with programming principles students are able to learn coding while also creating beautiful and interactive artistic projects. Each week will be focusing on a new topic like color, typography, patterns or animation and talking about both the design principles and how to implement them with code using p5.js. Each week students will be required to program a new sketch based on the specific topic covered. Projects include designing posters, wrapping paper, custom drawing tools, audio visualizations, etc.

Learning Outcomes
This class is both an intro to design principles as well as an intro to programming. Students will come out of the class with a solid understanding of color theory, type design, interaction design, animation, game design, generative art, etc. They will also be comfortable with programming concepts like loops, random values, functions, objects, etc. The programming framework we will be using is p5js which is the JavaScript version of Processing so students will become very familiar with this programming framework.

Course Requirements
Class participation is mandatory. You are expected to be present, to participate in a positive, constructive manner, and to produce work that is full of energy, completed and presented to the best of your ability.

It is your responsibility to turn in work on time, to make up any missed assignments, and to catch up with the class in the event of an absence. Late work is unacceptable; however, this work can be turned in for partial credit. If you know you are going to be absent, contact the professor by email in advance. For the most up-to-date information (including what is due next class) visit the class website: creativecode.danne.design.

This is a hands-on course and regular attendance is necessary for participation. You will be graded on in-class participation. If you know you are going to be absent, contact the professor by email in advance. Students who miss numerous classes will find it difficult to pass the course. Visual assignments and projects will be graded based on: one for technical merit, concept and your demonstrated ability to understand the code. Your final grades will be calculated by the following: 80% project, 20% participation. You are expected to spend as much time working outside the classroom as you work inside the classroom. Schedule your time accordingly.

Suggested Reading
Getting Started with p5.js: Making Interactive Graphics in JavaScript and Processing
Processing: A Programming Handbook for Visual Designers and Artists, by Ben Fry and Casey Reas
Learning Processing, by Dan Shiffman
Generative Design, by Hartmut Bohnacker, Benedikt Gross, Julia Laub
Nature of Code, by Dan Shiffman

Professors Contact Info
Name: Danne Woo
Email: danne.[email protected]
URL: dannewoo.com
Office Hours: calendly.com/dannewoo/office-hours

Grading
Attendance:
Two (unexcused) absences result in grade drop and four absences result in a failing grade. Late or early departure from class (15 minutes) is the equivalent of ½ absence.

To earn an A:
All class work and homework is excellent. Projects have been completed when assigned. The work shows a development and understanding of the principles discussed in class. It is presented immaculately. There is regular and prompt attendance and participation during critiques and an enthusiasm toward the material being presented throughout the semester. This is exceptional work.

To earn a B:
All assigned work completed in a thorough manner. An understanding of the principles and lessons covered in class is evident. The student comes to class regularly and on time and participates in critiques and discussions. This is better than average work.

To earn a C:
Most class assignments and homework have been completed. Regular attendance but minimal or negative class participation. There is understanding of most of what’s being presented in class. This student shows some interest in the course content. This is average work.

To earn a D:
Most class assignments and homework have not been completed. Marginal effort made to understand the course objectives and very little or negative participation on behalf of the student. Spotty attendance. This means below average work.

To earn an F:
Student has not completed 1⁄3 of the course work and has missed too many classes. This student doesn’t participate or has a bad attitude and shows no interest. It means not enough work, attendance, and/or effort to pass the class.