Skip to content
Ellen Nickles edited this page Dec 5, 2023 · 27 revisions
Section 03 Info
Meeting Time Tues 9:30am - 12:00pm EST
Location Room 408
Contact ellen.nickles@nyu.edu
On weekdays I aim to respond within 24 hours
Student Hours Mon 1:00pm – 3:00pm Zoom
Tue 1:00pm – 3:00pm Zoom or In person (Coding Lab)
Sign up here
Support Resident office hours (schedule)
The Coding Lab (schedule or drop-in help)
How to ask code-related questions: examples
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
xin xin's Intro to p5.js
Qtv's Creative Coding tutorials in Chinese (also on bilibili)
HappyCoding.io

Contents

About Our Course

Goals

Upon completion of the second half of the ICM course, Media, we will be able to:

  • apply fundamental programming concepts to generate and manipulate media including images, video, sound, text, and data.
  • experiment with media-specific, computational techniques and apply them to our creative work.

Format

ICM Media is a seven-week course that meets once a week in person at the scheduled time. We will have assignments to do before each class, and these assignments will build towards a final exercise to share at the end of the seven weeks.

This course 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 class sessions will introduce computational media topics. 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 ideas/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.

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.

Weekly Worksheet

There are worksheets* (linked below) 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

There are also open-ended exercises to explore the topics for creative expression. You are expected to document your process, include a link to your p5 sketch, and answer these questions:

  • What did you do?
  • What worked?
  • What didn’t work, and what steps did you take to try to solve the issue?
  • Did any code-related questions come up for you?
  • Be sure to cite (link to) any sources that you used.

Submit these assignments using our homework form*.

Here is the spreadsheet with everyone's responses*.

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

*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 to help you synthesize what you did and tried to do.

Week 8 • Oct 31 • Images, Pixels, Color

In class

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

Examples

Assignment due the night before our next class

Week 9 • Nov 7 • Video and Body Point Estimation

In class

  • Share our homework
  • Video files
  • Working locally with VS Code
  • Webcam
  • Body point estimation with the next-generation ml5.js library using Bodypose, Facemesh, and Handpose
  • Related projects

Examples

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 specific audience. Choose the tools and techniques that make the most sense for the concept, keeping in mind that body point 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 14 • Sound

In class

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

Examples

Assignment due the night before our next class

Week 11 • Nov 21 • Some Text, Mostly Data

In class

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

Examples

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.
    • 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.
    • 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.
    • Final projects can be collaborations with anyone in any class. Group projects are welcome and encouraged, and it is expected that everyone contribute their own code to the project.
    • It’s okay to keep things simple and small in scope. If your project idea is a big one, consider documenting the larger idea but implementing just a small piece of it.
    • 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/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 have ~4 minutes each to share in our next class.

Week 12 • Nov 28 • Final Project Proposals

In class

  • Final project proposals
  • Discuss final project user testing

Related projects and resources

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 • Consider the kind of feedback that will be most useful for your project's development. Prepare some open-ended questions for your testers that focus on specific aspects of your project that you’re unsure of or want to know more about, e.g. “What did you take away from this project?” instead of “Do you get that my project is about XYZ?​”
    • Submit on our homework form.

Week 13 • Dec 5 • Final Project User Testing

In class

  • User testing
  • Discuss final project documentation and presentations
  • Course evaluation

Assignment due at the start of next class

  • FINAL PROJECT
    • PART 1 • Complete your final project.
    • PART 2 • 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?
      • How do you feel about WHY you want to use code in your work now compared with the beginning of the semester?
      • 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).
      • 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.
    • PART 3 • Prepare a ~4-5 minute presentation to demonstrate what your project does that emphasizes its computational aspects. Feel free to include any questions to direct feedback after your presentation. How to create a first‐person perspective demo of your final.
      • If your project is interactive, be prepared to share a live sketch online. Aim to share a project running full-screen.
      • If your project involves physical interaction, as a backup, prepare a short video (~2 min) of the experience.
    • Submit on our homework form.

Week 14 • Dec 12 • Final Project Presentations

In class

  • Welcome and general notes
  • Final project presentations 🙌