Skip to content
Ellen Nickles edited this page Dec 1, 2025 · 23 revisions
Section 04 Info
Meeting Time Mon 12:20pm - 2:50pm
Location Room 411
Contact ellen.nickles@nyu.edu
On weekdays I aim to respond within 24 hours
Student Hours Fri 1:30pm – 3:30pm Sign up here
Support Resident office hours (schedule)
The Coding Lab (schedule or drop-in help, starts 9/22)
How to ask code-related questions (examples)
ICM Help Sessions Tue 3:00pm - 4:00pm @ Room 426
Additional Materials Submit creative assignments
Assignment responses
Our Miro board
Course syllabus
p5.js Reference / Web Editor
The Coding Train's Intro to p5.js
Allison Parrish’s Creative Coding Notes
Patt Vira's Make Art with Code
xin xin's Intro to p5.js
Jack B. Du's My Coding Show
Qtv's Creative Coding tutorials in Chinese (also on bilibili)
HappyCoding.io

Contents

About Our Section

Please read the ICM Media Syllabus for the course description, learning objectives, and all policies.

In addition, our course section embraces an active-learning approach with the belief that programming is best understood by doing. In keeping with this approach, class time will be structured as a workshop and seminar instead of a lecture, relying heavily on group discussion and participation. Weekly tutorials before our class sessions will introduce fundamental coding concepts. During class, supplemental code examples will be presented and discussed before hands-on work together. Time will also be allotted to share our weekly assignments. Examples and assignments will iteratively build upon lessons learned in preceding classes. I encourage you to reach out to me outside of class to ask questions, share your ideas and feedback, and discuss topics in detail.

Weekly Assignment Guidelines

All assignments will be posted on this page, and all are required. Unless otherwise stated, assignments are due the night before class so that I have a chance to review your questions before we meet. All assignments are expected to be submitted by the stated deadline. If you anticipate any challenges meeting the deadline, please reach out to me so that we can consider your options together.

Submitted assignments will be marked as complete (full credit), partially complete (half credit), or incomplete (no credit) in accordance with the Assignment Policy.

Reading and Video Tutorials

Before class, read and/or watch the assigned tutorials about computational media topics and programming techniques to practice together when we meet in class.

Worksheet

There are worksheets* to practice techniques introduced in this course. You are expected to add links to your p5 sketches directly in these documents.

Creative Assignments and Documentation

Each week there is an open-ended exercise to apply the concepts that we practice. You are expected to document your process, include a link to your p5 sketch, and answer these questions to complete the assignment:

  1. What did you do?
  2. What worked?
  3. What didn’t work, and what steps did you take to try to solve the issue?**
  4. Did any code-related questions come up for you?
  5. Be sure to cite your sources.

Submit the creative assignments using our homework form*.

A big part of learning at ITP is learning from each other. Share your work and in return you'll see everyone else's! Here is the spreadsheet with everyone's responses*.

*Log in to your NYU account to access the document.

**If you are struggling with the weekly assignments, put your energy into writing about what didn't work and how you tried to solve it. It is totally okay to vent your frustrations. Document your work to reference later and also to help you synthesize what you did and tried to do.

AI Guidelines

Adding on to the course AI Statement, cite your use of AI tools in accordance with our Citation Guidelines (see below).

Citation Guidelines

In accordance with the Statement of Academic Integrity, you are expected to cite your sources and note how you used them. For code references, a link to the online source along with a brief description will suffice. If you use any generative AI tools, e.g. ChatGPT, Claude, Gemini, Copilot, etc., please include the model name and version with description of why and how you used the model.

Week 8 • Oct 27 • Images, Pixels, Color

In class

  • Overview of ICM Media
  • Image files
  • Objects with images
  • Pixel regions
  • Pixel manipulation

Resources

Examples

p5 examples
Related projects

Assignment due the night before our next class

Week 9 • Nov 3 • Video and Pose Estimation

In class

  • Video
  • Webcam
  • Pose estimation with ml5.js
    • BodyPose
    • HandPose
    • FaceMesh
  • Related projects

Resources

Syllabus
Media Files
ml5 Pose Estimation

Examples

Thanks to IMA Intro to ML for the Arts (Fall 2024) for many of these examples and related project resources!

p5 examples
Related projects

Assignment due the night before our next class

  • No worksheet this week!
  • CREATE • BODY
    • The idea this week is to center an experience around the body--yours, someone else's, or a particular audience.
    • Choose the tools and techniques that make the most sense for the concept, keeping in mind that pose estimation extends choices for interactive design beyond the mouse and keyboard, which prioritize the hands and fingers for communication and expression in a very specific way.
    • Some questions to start brainstorming:
      • What are the private, public, and performative aspects of bodies?
      • How are bodies imagined, idealized, reflected, altered?
      • What is the personal and cultural significance of masks for ritual, to explore identity, hide, entertain, frighten...
      • In what ways can you use the body for expressive input? Consider choices for the part(s), position, distance between parts, direction of movement, and speed.
    • Submit on our homework form.
  • WATCH • Coding Train Videos 17.1 - 17.3, 17.5 - 17.8 on sound (code) ~90min

Week 10 • Nov 10 • Sound Synthesis

In class

  • Share homework
  • Quick survey for next week
  • Mic input
  • Sound output (samples and oscillators)
  • Making notes
  • Timing and patterns
  • Related projects

Resources

Examples

p5 examples
Related projects

Assignment due the night before our next class

Week 11 • Nov 17 • Data of Sound, Text, APIs

In class

  • Listen to homework
  • Data
    • of Sound
    • of Text
    • as JSON
    • from API
  • Final project overview

Resources and Examples

Sound

Resources, p5 examples, and related projects

Text

Resources
p5 examples
Related projects

Data & APIs

Resources
p5 examples
Related projects

Final Project Assignment

  • DESCRIPTION
    • Your final project is an open-ended creative project that builds off or is inspired by the concepts in this class. It is also an opportunity to push your abilities to produce something that utilizes what you have learned. The final project includes:
      • presenting a proposal to our class in Week 12,
      • user testing a prototype of the project with our class in Week 13,
      • and documenting your project in a blog post (or Notion, Google Doc, etc.) including your code contributions to the project, when the project is shared during final presentations in Week 14.
    • Focus on concept - There is no requirement to use a particular aspect of programming. Focus on an idea that excites you and choose the best programming concepts and tools to help you realize it.
    • Build or Create Anew - You can take something you’ve already made and develop it further or create something entirely new.
    • Final projects can be one part of a larger project integrated with a different class.
    • Option to Collaborate - Final projects can be collaborations with anyone in any class. Group projects are welcome and encouraged! It is expected that everyone will contribute and document their own code to the project.
    • Scope - It’s okay to keep things simple and small in scope. For example, if your project idea is a big one, document the larger idea and implement (and document) a smaller piece of it.
    • Audience - Also consider making a final project for a small audience such as our class or for a single person like a family member, friend, or yourself as a way to focus your idea and design process.
  • EXAMPLES from ITP/IMA/Low Res Spring Show 2020 | Winter Show 2020 | Spring Show 2021

Assignment due at the start of our next class

  • FINAL PROJECT PROPOSAL
    • PART 1 • Research your project and collect some notes, such as:
      • Inspirations • How did you become interested in this idea? quotes, photographs, products, projects, people, music, political events, social ills
      • Source material • Drawings, images, videos, sounds, text
      • Code • Your own sketches and/or other people's sketches
      • Ideas for title • And maybe a 1-sentence description?
      • Context • What is the story? Who's it for? How will people experience it? Is it interactive? Is it practical? Is it for fun? Is it emotional? Is it to provoke something?
      • Questions for your classmates • What are you unsure of, conceptually and technically? On what aspect(s) would you like feedback?
    • PART 2 • Add two (2) to three (3) slides to this deck to share your proposal. Consider using the list above as an outline to illustrate what’s in your head(s), e.g. include some keywords, images, or embed video, etc. Everyone will a few minutes each to share in our next class.

Week 12 • Nov 24 • Final Project Proposals

In class

  • Final project proposals
  • Discuss final project user testing

Assignment due at the start of next class

  • FINAL PROJECT PROTOTYPE
    • PART 1 • Create a working prototype of your final project to user test in class next week.
      • If your project is screen-based, be prepared to share a live sketch, full-screen if possible.
      • If your project involves some type of physical interaction, ideally bring it to class or show a short video (~2 min)
    • PART 2 • Prepare for user testing
      • Observing how others interact with your project is an incredibly valuable part of the design process to understand what’s working (and not) in order to improve the experience.
      • Sometimes unexpected user behaviors and interaction outcomes provide insights for developing projects in entirely new directions.
      • User testing is not about getting everything perfect the first time! It’s about learning, iterating, and improving based on these real-world insights.
      • Consider the kind of feedback that will be most useful for your project's development, and prepare at least two (2) open-ended, neutral questions for your user testers that focus on specific aspects of your project you're unsure of or wanting to know more about. This type of question often leads to more genuine and useful feedback than "yes/no" or leading questions. Some examples to consider:
        • What do you think the main goal or message of this project is?
        • What did you think was the first step?
        • Did any specific part of the experience (visuals, sound, interaction) evoke a particular reaction?
        • Did any particular part of the project capture your attention or make you curious? Why?
        • Did you notice any parts that didn’t work the way you expected?
        • Was there any point where you felt like you wanted to stop or didn’t know what to do next?
    • PART 3 • Document your prototype and your user-testing questions
      • Document what you created for this stage. Aim to clearly communicate your progress, what’s working so far, and what you’re still figuring out.
      • Your documentation should include:
        • A written description of what you built for your prototype and what specific aspect(s) you focused on developing this week.
        • Any relevant media such as photos, screenshots, short videos, and code that help show the current state of your project.
        • Your user-testing plan, including the two (or more) open-ended questions you prepared for our in-class testing.
      • Submit on our homework form.

Week 13 • Dec 1 • Final Project User Testing

In class

  • User testing
  • Discuss next week

Assignment due at the start of next class

  • FINAL PROJECT
    • PART 1 • Complete your final project.
    • PART 2 • Documentation. Write your final project documentation in the form of a blog post (or Notion, Google Doc, etc.). It's up to you to figure out how to best document your project. Here are some guidelines if you aren't sure what to include:
      • Title and a brief written description
      • Visual documentation such as a sketch running online, images, video, etc.
      • References such as links to related projects, code samples, etc.
      • What were some of the successes and challenges? What did you learn?
      • What do you find interesting about what you did?
      • How do you feel about WHY you want to use code in your work now compared with the beginning of the semester?
      • How did coding it make the final product different from using software?
      • If you are struggling with your project and can't get things to work, you should feel free to put your energy into writing about what didn't work (and vent any frustrations).
      • Describe next steps to further develop the project.
      • If the project is a collaboration, each person needs to contribute code and submit a post documenting their contributions to the project.
      • Be sure to cite the sources of any material / code you use with the exception of examples provided by the instructors or demonstrated for the course.
      • Submit on our homework form.
    • PART 3 • Presentation (3 Slides in 3 Minutes)*. To ensure everyone has time to present and receive feedback next week, we will stick to a structured format. Please add three (3) slides to this deck to demonstrate your project:
      • Slide 1 • Context. What is the story? Who is it for? Include the project title and a 1-sentence description.
      • Slide 2 • Demo. Embed a video or screen recording of the project in action (~1 min).
      • Slide 3 • Computation. Highlight a specific aspect of the code. Show us a snippet of logic, an algorithm, or a technical hurdle you solved to emphasize the computational aspects of the work.
      • *NOTE: If collaborating with a partner in our class, you should each have a separate "Computation" slide, so your presentation will be four (4) slides long.

Week 14 • Dec 8 • Final Project Presentations

In class

Clone this wiki locally