Skip to content
Ellen Nickles edited this page Dec 9, 2021 · 31 revisions

ICM Section 06 • Meeting Thursdays 9:10AM - 11:40AM ET in Room 408


Contact Ellen

  • Email [email protected], and I'll do my best to respond within 24 hours except on the weekends, which might be longer.
  • Virtual office Hours in Zoom on Tuesdays and Fridays from 10:00AM - 12:00PM Sign up here
  • If no appointments are available or you need a different time, please email me with three good times for you, and I'll send you a calendar invite with a Zoom link.

About Our Course

Course Description and Our Goals

Here is the description for ICM from the ITP Schedule.

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 Media class, and these assignments will build towards a final project 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 video tutorials to watch before 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.

You are encouraged to reach out to me outside of class to ask questions, share ideas/feedback, and discuss topics in detail.

Homework Guidelines

Before class, read / watch the tutorials that we will practice together when we meet.

There are also weekly programming assignments to practice the weekly topics. Unless otherwise stated, assignments are due on Wednesdays at 11:59pm the day before our 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, and you should be prepared to show and talk about them in class. If you anticipate any challenges meeting the deadline, please reach out to me so that we can consider your options together.

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

  • Weekly Practice Questions. Unless otherwise stated, there are questions (linked below) to practice the topics introduced in this course. You are expected to add links to your p5 sketches directly to our weekly exercise documents.*
  • Weekly Creative Exercise and Blog Post.** Each week there is an open-ended, freestyle creative exercise to apply the concepts that we practice. You are expected to document your work online with a blog post and add links to your posts in our weekly exercise documents (linked below). Include a link to your p5 sketch in your blog post, and here are some guiding questions if you are not sure what to write about:
    • What did you originally intend to create?
    • Narrate the process of creating your sketch.
    • What resources and examples did you draw on to create your sketch?
    • What problems / discoveries did you encounter along the way?
    • (Source of prompts: Nature of Code syllabus)

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

**If you are struggling with your weekly exercise sketches, 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. Writing a blog post helps to remember and synthesize what you did and tried to do. Think of it as writing a reference guide for your future self.

Resources and Support


Week 8 • Oct 21 • Images

In class:

  • Welcome new students!
  • Overview of ICM Media course
  • Image file basics
  • Objects of images / pixel regions
  • Pixel by pixel manipulation
  • Related projects

Examples:

Homework assignment due Wednesday, Oct 27, at 11:59pm:

  • TEST YOURSELF • Complete the practice questions in Week 8 Exercises.
  • CREATE • The idea this week is to experiment with image files in the form of illustrations, photographic media, etc. Consider the image choice(s) carefully based on your topic(s) and goal(s). Why do you want to work with this particular imagery? In what ways can you go beyond the affordances of image editing or motion graphics software, such as Photoshop and After Effects, and use pixel data, animation, random(), and / or user interaction with your own programmed computation for creative expression or to tell a story? Here are a couple of ideas to get you started, but you can also create something from scratch. Feel free to incorporate p5's drawing capabilities in your sketch, as well!
    • Create a self-portrait or portrait of someone else. How do your computational design decisions contribute to an expression of the subject's mood, personality, dreams, current situation etc.?
    • Create a public service announcement or educational resource about an issue that is important to you or your community. What are ways to communicate an informative and engaging narrative?
    • Create an abstract work that engages with formal visual considerations, such as line, shape, composition, color, framing, perspective, light, etc.
    • Write a blog post that includes a link to your sketch. Document your process and include links to other projects that serve as references, inspiration, or engage with similar ideas.
    • Submit your post in Week 8 Exercises.
  • READ • Allison Parrish's Working with video
  • WATCH
    • Coding Train Video 11.1 on capturing your webcam ~10 min
    • Videos 0.1 and 7.1 from the Beginner's Guide to Machine Learning with ml5.js and an introduction and pose estimation with PoseNet ~40min
    • (OPTIONAL We won't cover these techniques in class, but they are super fun!) Videos 11.2, 11.4 - 11.7 on video photobooths, pixel mirrors, painting with pixels, and slit-scan video ~1hr 20min

Week 9 • Oct 28 • Video

In class:

  • Share our homework
  • Video file basics
  • Webcam basics
  • Brief introduction to machine learning
  • Body point estimation with PoseNet, Handpose, and Facemesh
  • Related projects

Examples:

Homework assignment due Wednesday, Nov 3, at 11:59pm:

  • TEST YOURSELF • No practice questions this week!
  • CREATE • Create a full-screen experience manipulating image(s) and / or video(s) that tells a story (interpret that as you wish). At a minimum it should have a beginning, a middle, and an end. You are welcome to use material and resources from Weeks 8-9 and beyond.
    • Work with a partner or group of 3. If you already have a group, mark yourself green here by October 29 at 5:00pm ET. After that I will assign unpaired folks to random groups.
    • Questions to consider:
      • How might you use color to evoke a specific feeling or a series of changing emotions as the experience progresses?
      • If there is interaction (mouse, keyboard, movement, etc.), how might the type and manner of interaction(s) contribute to the intended experience of the piece?
    • Technical notes for fullscreen:
      • createCanvas(windowWidth, windowHeight);
      • Position and size screen elements in relation to the canvas width and height.
      • If the experience does not fill the entire screen (e.g. pixel by pixel manipulation can be computationally expensive in the browser), be mindful about the color you select for the canvas.
      • These p5 functions might be useful, too: windowResized and fullscreen.
    • Everyone should write their own blog post describing their work and code contribution with a link to a sketch. Be sure to include links to other projects that serve as references, inspiration, or engage with similar ideas.
    • Submit your post in Week 9 Exercise.
  • WATCH • Coding Train Videos 17.1 - 17.5, 17.8 - 7.11 on sound file basics and visualizations (code) ~1hr 45min

Week 10 • Nov 4 • Sound Analysis and Visualization

In class:

  • Share our homework
  • Sound file basics
  • Sound analysis and visualization
  • Related projects

Examples:

Homework assignment due Wednesday, Nov 10, at 11:59pm:

  • TEST YOURSELF • Complete the practice questions in Week 10 Exercises - last ones!
  • CREATE • This week, use the properties and data sound as integral components of your sketch. Some ideas:
    • Create a sketch that analyzes sound and translates it into something visual. Use live or recorded audio. Use color, video, images, pixels, or whatever you fancy to represent the sound. Some ideas: imagine you are visualizing music for people who cannot hear. Can your visualization be as expressive as the music itself? Or maybe visualize the differences in noise pollution from different cities, e.g. what do the sounds of different cities look like?
    • Revisit a former sketch with mouse interaction and replace the mouse input with audio input such that the action is driven by sound instead. For example, if you can paint with your mouse, then can you draw with some type of audio input instead? Go beyond adding sound effects, and be intentional about your sound choices.
    • Create a blog post documenting your work with a link to your sketch. Link to other projects that serve as references, inspiration, or engage with similar ideas.
    • Submit your post in Week 10 Exercise.
  • INTERACT / READ / LISTEN
  • WATCH • Coding Train Videos 17.6 and 17.7 on sound synthesis and ADSR envelope (code) ~26 min

Week 11 • Nov 11 • Sound Synthesis

In class:

  • Share our homework
  • Making notes
  • Sound effects
  • Timing and patterns
  • Related projects
  • Discuss final projects

Examples:

Homework assignment due Thursday, Nov 18, at the start of class:

  • FINAL PROJECT • Prepare a proposal for your final project.
    • Your final project is an open-ended creative project that builds off or is inspired by by the concepts in this class. It is an opportunity to push your abilities to produce something that utilizes what you have learned. 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.
    • Read the Final Project Guidelines and Schedule for all the details, including how to prepare a proposal to share in class next week.
  • READ
    • Allison Parrish's tutorial on Text and Type
    • Review these syllabus examples and tutorials for Text and Data. We'll cover a couple topics, but you might want to go further with the materials posted here.

Week 12 • Nov 18 • Text / Data / Final Project Proposals

In class:

  • Text
  • Data
  • Final project proposals
  • Discuss user testing for final projects

Examples:

Homework assignment due Thursday, Dec 2, at the start of class:

  • FINAL PROJECT • Create a working prototype of your final project to user test in class next week. Read the Final Project Guidelines and Schedule for general considerations on user testing, the (tentative) format for next week, designing your testing sessions, as well as a framework for providing feedback on others’ projects.

Week 13 • Dec 2 • Final Project User Testing

In Class

  • Group 1 creators
  • Group 2 creators
  • Group 3 creators
  • Glitch.com demos
  • Discuss final project presentations

Examples

Homework assignment due Thursday, Dec 9, at the start of class:

Week 14 • Dec 9 • Final Project Presentations 🙌

In class: