NYU Tandon School of Engineering

Integrated Design & Media

DM-GY 6063 A | Creative Coding | Fall 2025, Section D

Course Overview and Goals

This is an introductory programming course that emphasizes the creative possibilities of code. Unlike a typical software engineering course, this course is a hands-on studio that challenges students to go beyond linear thinking around algorithms. We will examine and discuss code-based art and design and write and iterate code-based projects through creative experimentation. By the end of the course, students will be empowered to interpret and create code-based artworks including: interactive installations, gestural interfaces, generative visualizations, experimental games, A/V experiences and more.

Upon completion of this course, students will be able to:

  • Understand and apply the basics of coding in JavaScript and p5.js
  • Create code-based artworks that creatively engage with the possibilities of p5.js and other creative coding tools
  • Learn best practices for designing software within an event-driven, object-oriented, real-time framework
  • Experiment with different techniques for user input and output
  • Develop an awareness of historical and contemporary artistic practices that use interactive technology and code
  • Propose and develop a complete software experience as a final project

Course Requirements

Class Participation and Code Review

Class participation counts towards your grade. You are invited, encouraged, and expected to engage actively in discussion, activities and student presentations. The classroom will be established as a comfortable and respectful environment for discussion. You are encouraged to seek and provide help from your peers whenever possible.

Each student’s participation grade will start at 15/15. Each week, one to three students will be selected randomly for Code Review, in which you will walk through the code you wrote to create your assignment. This serves two purposes: for one, it allows students the opportunity to showcase their work for the class. It also serves as a countermeasure to plagiarism and inappropriate use of LLMs. If you have written your code yourself, you should have no problem at all walking through your process. Sufficient description of your process will result in no penalty, while inability to walk the class through your code will result in a penalty of 10 points.

Additionally, the participation grade will decrease by 1 each time the student arrives late, and if the student is observed engaging in distracting, unprepared or disengaged conduct during class time.

GitHub Portfolio

Each week a coding exercise will be assigned that relates to the week’s technical topic. Many of these exercises are iterative and will be expanded upon each week. Each stage of iteration must be documented in your GitHub repository. You can think of these as your notes from class lectures. Weekly exercises are due before class at the beginning of each week in a corresponding folder in the student’s GitHub repo. Late exercises are not accepted. It is much better to turn in a finished exercise than a perfect exercise. Exercises are graded on completion It is important that you keep up with the weekly schedule as things move quickly in this class.

Unit Assignments

Unit assignments expand on in-class coding exercises, inviting students to creatively engage with programming concepts. Unit assignments are graded equally in terms of creative engagement and technical proficiency. As such, students are encouraged to create work that reflects their own aesthetic and conceptual interests in these assignments. A detailed description of each assignment will be distributed on the class GitHub site. Students will upload their assignments to GitHub, and will share a URL to their project to Brightspace where feedback will be provided by the instructor.

Due dates:

  • Geometric Abstraction (due September 24 - 10%)
  • Generative Pattern (due October 1 - 10%)
  • Abstract Clock (due October 8 - 10%)
  • Object factory (due October 22- 10%)
  • Projection mapping (due October 29 - 10%)

Final Project

The final project invites students to expand on one or more aspects of the course in greater depth. There are three suggested formats / conceptual frameworks that I encourage you to explore for your final project:

  • MIRROR: create an interactive experience that reflects something back to the user. This shouldn’t behave as a typical visual mirror, but should modify the user’s image or gesture into an unexpected output.
  • INSTRUMENT: expanding on the instrumentation exercises from class, create an instrument that transforms a gesture into some form of audio/visual expression. This does not have to be a typical musical instrument. Experimentation with different generative and interactive possibilities is encouraged!
  • CHOOSE YOUR OWN ADVENTURE: create an interactive narrative that invites the user to make choices that influence their journey. This narrative should make use of dynamic user input and should include sound and visual forms. Students are also encouraged to bring their own formats and ideas to the table – I am open to all kinds of project ideas, so long as they demonstrate several technical approaches from the course and are feasible within the given time frame. Students will be asked to turn in a project proposal mid-semester that outlines their ideas for the final project.

Final project proposal (due November 12 - 5%) Final Project presentation (due December 15 – 20%)

Grading of Assignments

Assignments/Activities % of Final Grade
Attendance and participation 15%
GitHub Pages Portfolio 10%
Unit Assignments 50%
Final Project Proposal 5%
Final Project 20%

Letter Grades

Letter grades for the course are assigned as follows, per NYU Tandon policy:

Letter Grade Points Percent
A 4.00 95% and higher
A- 3.67 90 – 95%
B+ 3.33 87% - 90.0%
B 3.00 83% - 87%
B- 2.67 80% - 83%
C+ 2.33 77% - 80%
C 2.00 73% - 77%
C- 1.67 70% - 73%
D+ 1.33 67% - 70%
D 1.00 63% - 67%
D- .67 60% - 63%
F .00 60% and lower

Grades will be distributed on Brightspace.

Course Schedule

Topics and Assignments

Week 1
September 3
Intro:
• Overview of class syllabus
• Introduction to code-based artworks
• Resources: Github, VSCode, Github Pages, Markdown
• Human computer exercise
Week 2
September 10
Creative Coding Tools:
• AI discussion
• Coding resources continued
• Hello world
Week 3
September 17
Drawing Machines:
• The coordinate system
• P5.js drawing functions
• Color, line, form
• The p5.js canvas
• Assignment 1: Machine drawing assignment
Week 4
September 24
Making Things Generative and Interactive:
• Variables
• Booleans
• Mapping
• Conditionals
• Loops
• Random numbers
• Iteration
• Assignment 2: Generative pattern assignment
Week 5
October 1
Transformations and Time:
• Manipulating the coordinate matrix
• Working with JavaScript math and time functions
• Polar Coordinates
• Assignment 3: Clock assignment
Week 6
October 8
Arrays, Functions, Objects:
• Built-in p5 functions
• Creating your own functions
• Introducing object-oriented programming
• In-depth on objects and constructors
• Assignment 4: Object generator assignment
Week 7
October 15
Objects Continued:
• Object oriented programming continued
• Assignment 4 continued
NOTE: THIS CLASS WILL BE HELD VIA ZOOM!
Week 8
October 22
The DOM, Libraries:
• The DOM
• Introduction to p5.js libraries
• Assignment 5: Projection mapping mini-sketches
Week 9
October 29
Projection Mapping Workshop:
• Projection mapping Workshop
Week 10
November 4
Arduino Workshop:
• Working with Arduino
• Final project discussion
Week 11
November 12
Machine Learning and AI:
• Final Project Proposal due!
• ml5.js library
• PoseNet, Handpose and FaceAPI
• Gestural instrument workshop
Week 12
November 19
Final Project Check-in and Pen Plotter Demo:
• Pen plotter demo
November 26 NO CLASS (Legislative Friday)
Week 13
December 3
Final project studio day
Week 14
December 10
Final project studio day
Week 15
December 15-17 (tbd)
Final project presentations

Course Materials

Expectations for work outside the classroom

Students should expect to spend roughly 5 hours each week on supplemental work in this course. This may include reading assignments, writing, exam preparation, research, homework assignments, building, writing code, study time, unsupervised lab work, unsupervised group work, etc.

Optional textbooks

Resources

Course Policies

Attendance and Tardiness

Your attendance is important. Notify me of all absences prior to class. Each unexcused absence after your first will impact your final grade by a third of a letter (ex. one unexcused absence will drop a final grade of A- to B+, two unexcused absences would drop that A- to a B). If you have 5 or more unexcused absences, you fail the course automatically.

If you’re more than 10 minutes late for class, you will be considered tardy. Two instances of tardiness = one unexcused absence.

Things happen and we all slip up sometimes. If you miss a class – let me know ASAP. I am generally understanding, but I always want to know what is going on.

Late Assignments

Weekly exercises will not be accepted past their due date unless a valid reason has been discussed in advance with your instructor.

Every day the final project or final project proposal is overdue, it will lose a letter grade. If the final project is turned in more than 3 days late, it receives an F. If you turn nothing in at all, you will receive a 0 for the assignment. Nobody wants that, so be sure to turn your work in on time. Anything is better than nothing.

Academic Honesty and Plagiarism

Violations of academic integrity are considered to be acts of academic dishonesty and include (but are not limited to) cheating, plagiarizing, fabrication, denying other access to information or material, and facilitating academic dishonesty, and are subject to the policies and procedures noted in the Student Handbook and within the Course Catalog, including the Student Code of Conduct and the Student Judicial System. Please note that lack of knowledge of citations procedures, for example, is an unacceptable explanation for plagiarism, as is having studied together to produce remarkable similar papers or creative works submitted separately by two students, or recycling work from a previous class.

Please review NYU Tandon’s academic dishonesty policy in its entirety. Procedures may include, but are not limited to: failing the assignment, failing the course, going in front of an academic judicial council and possible suspension from school. Violations will not be tolerated.

All work for this class must be your own and specific to this semester. Any work recycled from another, non-original source will be rejected with serious implications for the student. Plagiarism, knowingly representing the words or ideas of another as one’s own work in any academic exercise, is absolutely unacceptable.

This includes copying code for other sources, using code from other sources with only slight modifications and using code from other sources without a reference. It is very easy to find code examples on the internet, especially for beginner-level p5.js concepts. It is very important that you write your own code for the fundamentals portion of the semester (weeks 1-10) and do not copy and paste code from other sources. This is a matter of fully understanding the fundamentals of coding – if you rely too heavily on copying and pasting code from examples, you will not be able to write code independently and fluently. Every assignment you submit until week 10 should be hand typed by you.

For your advanced assignments and final project, there may be instances where you wish to adapt an example or use a snippet of code found online. You must cite the work and author and comment each line of code to explain what it is going on programmatically. Each comment should describe what the specific line of code is doing. The expectation, when working from examples, is to apply code examples towards unique and novel ideas. If you are using borrowed code in your assignments, its use should not determine the look and feel of your work. It should, instead, be modified to help you achieve your own personal creative vision. If you use code from online sources, I expect to see a link to its source in the comments. Failure to attribute other peoples’ code will result in failure of the assignment. Likewise, you should never borrow more than 30% of your code from other sources, even if properly attributed.

Statement on LLMs / ChatGPT / etc

The primary objective of this class is to equip students with coding skills, so that they can advance in this program and in their future careers as independently-capable programmers. Learning in this class is structured around assignments that challenge students to synthesize course material through creative problem solving and creative exploration. Put simply, you will not learn how to code if you rely on LLMs to do your work for you. And, since the point of this course is to teach you how to code, you will not succeed in this course if you rely on LLMs to complete your work.

Students should not use ChatGPT or other AI assistants to:

  • Generate project content based on assignment prompts
  • Generate code based on assignment prompts
  • Comment or modify existing code to match assignment specifications
  • Translate or “clean up” your code

I read and review all assignment code in detail. There are many telltale signs when work is generated by ChatGPT or LLMs, such as the inclusion of outdated or rarely-used syntax, use of techniques that exceed the scope of this course, and sprawling, inaccurate code. When tasked to respond to creative prompts, LLMs produce generic results that are not reflective of students’ personal artistic voices. Effectively, code generated by ChatGPT is equivalent to student work that is not engaged in learning, nor reflective of creative intention. If your work reads as though it was written by AI, it will receive no more than a C- grade. If you require assistance with coding, please reach out to me. I am happy to meet with students to work through problems, or to point you towards resources that can help you to learn better coding habits.

Academic Accommodations

If you are a student with a disability who is requesting accommodations, please contact New York University’s Moses Center for Students with Disabilities at 212-998-4980 or mosescsd@nyu.edu. You must be registered with CSD to receive accommodations. Information about the Moses Center can be found at http://www.nyu.edu/csd. The Moses Center is located at 726 Broadway on the 2nd floor.

If you are experiencing an illness or any other situation that might affect your academic performance in a class, please email the Office of Advocacy, Compliance and Student Affairs: eng.studentadvocate@nyu.edu.

Statement on Inclusion

The NYU Tandon School values an inclusive and equitable environment for all our students. I hope to foster a sense of community in this class and consider it a place where individuals of all backgrounds, beliefs, ethnicities, national origins, gender identities, sexual orientations, religious and political affiliations, and abilities will be treated with respect. It is my intent that all students’ learning needs be addressed, and that the diversity that students bring to this class be viewed as a resource, strength and benefit. If this standard is not being upheld, please feel free to speak with me.