-
Notifications
You must be signed in to change notification settings - Fork 0
Homework Ellen 02
| Section 02 Info | |
|---|---|
| Meeting Time | Monday 9:30am - 12:00pm |
| Location | Room 411 |
| Contact |
ellen.nickles@nyu.edu On weekdays I aim to respond within 24 hours |
| Student Hours | Monday 1:00pm – 3:00pm Sign up here |
| Extra Support | ICM Help Sessions Friday 1:00pm - 3:00pm @ Rm 450 Resident office hours (schedule) The Coding Lab (schedule or drop-in help) How to ask code-related questions (examples) |
| Our Section |
Submit assignments here See everyone's responses Our Miro board Course syllabus |
| General Resources | 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 |
- About Our Section
- Week 1 • Sept 14 • Introduction and Drawing in p5.js
- Week 2 • Sept 21 • Animation with Variables
- Week 3 • Sept 28 • Interaction with Conditionals
- Week 4 • Oct 5 • Repetition with Loops
- Week 5 • Oct 14 • Organization with Functions
- Week 6 • Oct 19 • More Repetition with Classes
- Week 7 • Oct 26 • Share Assignments / AI-Assisted Coding
Please read the ICM Code 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 video 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.
- Show up on time
- participate in class by sharing and discussing your work, asking your peers questions, asking Ellen questions, giving feedback, and helping others when you can
- and submit homework on time and document your process (see below)
Here’s the evaluation breakdown on our syllabus, but if you are engaged in ways described here, you’ll be on your way!
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.
Video Tutorials
Before class, watch the assigned tutorials about fundamental coding concepts and creative programming techniques to practice together when we meet in class.
Worksheets
There are worksheets* to practice the concepts introduced in this course. You are expected to add links to your p5 sketches directly in these documents.
Creative Exercise and Video Walkthrough
Each week there's an open-ended exercise to apply the concepts we practice in class. You'll record a short video walkthrough of your sketch to practice talking about your work and the code behind it.
- Record a ~3-5 minute screen recording where you share your sketch and answer the following:
- What did you do?
- How is your program structured? What is the story of your code? Walk through the parts and how they relate to one another, using the vocabulary we've been building in class (functions, variables, conditionals, loops, arrays, etc.) Name what you used and why.
- What didn’t work, and what steps did you take to try to solve the issue?
- A couple easy ways to record: QuickTime for screen recording on Mac (or the equivalent for Windows) or even your phone pointed at your screen is fine as long as the code is clearly readable. Keep it casual: no script and no editing needed, and you don't have to be on camera. If recording is a barrier for any reason, reach out and we'll find an alternative.
- If you are struggling with the exercise, put your energy into talking through what didn't work and how you tried to solve it. It is totally okay to vent your frustrations. Narrating where you got stuck can help you synthesize what you did and tried to do, and gives the people supporting you the context to help. Think of it as a reference guide for your future self.
- Submit the creative exercises using our assignment form*.
- A big part of learning at ITP is learning from each other. Here is the spreadsheet with everyone's responses*.
*Log in to your NYU account to access the document.
Adding on to the course AI Statement, our section will offer the use of emerging generative AI tools after introducing and practicing the basic programming control structures in Weeks 1-7 (ICM Code).
AI tools can be useful for coding, especially once you've developed a foundation to describe what you want and how to evaluate the output. In this course, we will approach AI as an optional tool for extending your creative work rather than a substitute for learning how to code. A structural understanding of coding concepts is necessary and important before incorporating any AI-assisted programming. Being able to code is what helps you get more out of AI, so we will build that understanding first.
In Weeks 1-7 (ICM Code), we will set AI aside and work through the material ourselves, practicing foundational concepts and developing computational thinking. Learning takes effort and happens by incremental doing and making: trying, achieving small wins, stumbling into small mistakes, and trying again. That friction is what makes learning stick, and we'll celebrate all of it! Reaching for AI too early can skip past that understanding and the reward of working something out yourself. Much like practicing math before using a calculator, once you can describe basic coding concepts and assemble simple programs on your own, you'll be better equipped to use AI to develop your ideas with code.
As we transition to ICM Media (Weeks 8-14), we'll discuss how AI works, its benefits and limits, along with strategies for incorporating AI into a creative coding practice. During ICM Media, you may choose whether and how to use AI tools as part of your process.
Using AI is entirely optional. If you do use it, please be transparent about how and where, so we can learn from each other about how these tools can support creative work.
Using AI also does not lower the bar for understanding your own work. Whether or not you use it, you're expected to stay in control of your projects and to be able to answer these questions:
- Do I understand how this program is structured and how its parts relate?
- Can I explain and defend the choices in this code?
- Am I making the creative decisions, or is the tool making them for me?
This statement is adapted from the Creative Coding Statement on AI Use, co-created with Carrie Wang in Summer 2026, and is influenced by the IMA Low Res Statement on AI.
The field of creative technology thrives on community and the open sharing of code. You are encouraged to learn from the work of others and leverage existing tutorials, examples, libraries, and documentation like the p5.js language reference as you build. The purpose of our exercises, however, is to demonstrate your own problem-solving, creative thinking, and technical understanding. Whenever something outside your own work helps you, cite it: provide a link along with a quick note on how it helped, so we can learn from each other’s sources. The same goes for AI tools.
Adapted from Dan Shiffman's Code! course at NYU and Golan Levin's Interactivity and Computation course at Carnegie Mellon.
- Welcome! and introductions
- Course overview + AI policy
- What is p5.js (p5)?
- p5 web editor
- p5 functions
- Syllabus + schedule
- Assignment
- HTML, CSS, JavaScript / p5.js Website Demos | Code
- p5 getting started sketch
- DO (if you haven't already)
- Complete a very quick pre-class survey (NYU login required) to tell me a little bit about yourself.
- Create a p5 web editor account.
- WATCH (BEFORE EXERCISES) • Coding Train videos 1.1-1.6 ~1hr 20min
- PRACTICE • Week 1 Worksheet
- CREATE • SELF-PORTRAIT
- Draw a simple “self-portrait” with a pen/pencil on paper.
- Then, try your best to recreate it in code using p5.
- Think about what a self-portrait means to you. Is it a depiction of what you look like? A bridge between your private and public regard? Or a collection of your lived experiences?
- Consult the p5 Reference.
- Add comments to your code to describe the different parts.
- Reflect a little on the process: How did it feel to translate an idea into code? What’s the difference between sketching something with pen and paper, and drawing with code?
- Submit your documentation on our assignment form.
- Here are Ellen's examples:
- self-portrait drawing | self-portrait p5 sketch
- example walkthrough video of another self-portrait (my video is a bit longer to review points from class 🙂)
- WATCH (AFTER EXERCISES)
-
Coding Train Videos
2.1-2.5
about variables,
random(), andmap()~1hr - Optional: Variable by Patt Vira ~9min
-
Coding Train Videos
2.1-2.5
about variables,
- Share our homework
- Logging values to the Console
- Introduction to variables
-
setup()vsdraw() - Animating shapes
- Variable scope
- p5 system variables
- Week 2 Syllabus Resources
- console.log with variables
- animated shape
- variable scope
- style settings in
draw() - responsive rect
- Rotating and drawing custom shapes (and using the
translate()function)- Coding Train Videos 9.1-9.3 and 9.22
- Rotating shapes p5 example demo series
- Other portraits Garbage Selfie by Jenny Odell | Data Selfie by Hang Do Thi Duc and Regina Flores | Stranger Visions by Heather Dewey-Hagborg | Weird Faces by Matthias Dörfelt | parametric expression by Mike Pelletier | Emoji Script by Travess Smalley | Más Que la Cara by Zach Lieberman | Aspire Mirror by Joy Buolamwini
- WATCH (OPTIONAL) • Coding Train Videos 16.1-16.2 about keywords let, var, and const ~20 min
- PRACTICE • Week 2 Worksheet
- CREATE • OPPOSITES
- Choose a pair of words with opposite meanings, such as “order” and “chaos,” “ascend” and “descend,” “empty” and “full”, or your own! Create one sketch to represent the pair of your choice.
- Consider illustrating the opposite meanings through composition of elements, selection of colors, or any time-based change or movement.
- Think about what you can do to make your audience sense or think of the two words without having to spell them out.
- Submit on our assignment form.
- WATCH
- Coding Train Videos 3.1-3.4 about conditional statements ~1hr
- Optional: Patt Vira’s tutorials on Conditionals (Boolean Expression) and Conditionals (If, Else If, Else) ~20min
- Problem decomposition
- Relational expressions and conditional statements
- Boolean variables
- Combining expressions
- Share homework
- Week 3 Syllabus Resources
- p5 Reference tutorial: Interactivity with the mouse and keyboard events (mousePressed vs mouseClicked, etc.)
- problem decomposition 1
- problem decomposition 2
- random number generator
- opposites: order vs chaos with reset
- checking multiple conditions, hover columns
- another way to draw columns - thanks, Oliver!
- Boolean variables with if statements
- light switch
- PRACTICE • Week 3 Worksheet
- CREATE • CHOICES
- Two roads diverged in a yellow wood, And sorry I could not travel both... Life is full of difficult choices, use conditional statements to control the flow of your programs. Create a sketch that asks people to make choices that have consequences.
- Which choices are easier, harder? Which choices are false choices?
- What internal or external factors influence the choice? How do others’ choices affect your choices?
- What choices surprise you with unexpected outcomes?
- Can you combine choices to create hard-to-predict results? (Hint: Use
&&and||) - Submit on our assignment form.
- WATCH
- Coding Train Videos 4.1-4.2 about loops ~25min
- Optional: Patt Vira’s tutorials on While Loop, For Loop, Nested Loop, 2D Grid with Nested Loop ~28min