Homework 07

Due: 2024/10/28 - 5PM

Programming (10 points)

Intro:

For this assignment we are going to practice working with arrays by drawing with words.

We’ll pick a text, and then, using only the words or characters from this text we’ll create an animation that’s related to the content of the text.


Getting Started and Submitting:

First, we’ll pick a text: it can be a poem, a story, a news article, an academic article, a chapter from a book, lyrics from a song, a list of our favorite words, etc. The text can be in any language.

We’ll have to prepare a .txt file with this text, so we can load it using the loadStrings() function in p5.js.

Start coding by cloning our template into a repo called HW07. The original single-sketch template is fine since there’s only one exercise this week.

Please enable GitHub pages on your GitHub repo and use Brightspace to submit a GitHub link to your repository.


Evaluation:

This assignment will be graded on a scale from 0 to 10, taking the following criteria into account:

  • README: repository includes a README.md file that specifies the chosen text and the animation strategy.
  • Compliance: work follows the requirements specified in the assignment description.
  • Implementation: work shows evidence of understanding programming concepts and you are fully using them to express your ideas.
  • Thoughtfulness: project demonstrates your personality and it’s not a straightforward re-implementation of someone else’s idea.
  • Craft: code and results show care and consideration for presentation and professionalism, and work doesn’t look like it was rushed.

HW07

Drawing with Words

Once you have a text, using only words or characters from this text, create an animation that’s related to the content of the text.

You can write the whole text out and animate certain words to emphasize a particular reading; or, like Young-Hae Chang, you can use rhythm to add tension to the text by controlling when and how certain words show up:

You can create visualizations in the style of Concrete Poetry as long as there’s an animated or interactive aspect to it:

It’s very challenging, but you can even use the words to actually draw pictures, like Evan Roth did for Jay-Z’s Brooklyn Go Hard:

Another possibility is to use one of Sol LeWitt’s instructions to create visuals using words and letters instead of points and lines:

There shouldn’t be any shapes (ellipse(), rect(), etc) in your drawing; unless there’s a really good reason for it.

The visualization doesn’t have to incorporate all of the words in the text, but should be “alive” and do something related to the text.

The animation also doesn’t have to be super complicated. Sometimes a slight change in color or size at the right moments can be very expressive.

Read & Respond (5 points)

How does technology change the way we look at art and media?

Watch and write a 200-word response to the following:

1. Ways of Seeing (Part 1) by John Berger
Optional Readings:
1. Ways of Seeing (Part 2) by John Berger
2. Ways of Seeing (Part 3) by John Berger
3. Ways of Seeing (Part 4) by John Berger

You can use the following rubric to guide your response:

  • Short summary: in one or two phrases, what is the video about? When was it made?
  • Did you learn something new? What?
  • What do you agree or disagree with? Why?
  • How is this related to programming?
  • Is the video related to any of the other readings we’ve done so far?
  • If you were to look up another thinker/author, were there any references in the video that intrigued you?

Please submit your response via Brightspace.

Alternatively, you may create a reading.md file in your HW07 repo and write your response in markdown. Just make sure to submit a link to the file using Brightspace.

Project (10 points)

Milestone 2 (due: 2024/10/28)
Pseudo-code, planning and organizing (10 points)

Continue working on the mid-term project.

You should have a MidTerm repository already set up from last week’s assignment, and now you are starting to add some code to your sketch.

By the end of this milestone you should have a pretty solid grasp of the logic that will be required to implement your idea:

  • Is your project split into different moments? or scenes?
  • Which interactive events will you respond to? mouse? keyboard? time?
  • Do you need any special files, arrays or objects?
  • What are the custom functions that you’ll have to write?

For full credit, projects should use custom functions, some arrays or objects, for() loops and if() statements, and demonstrate forethought and planning.

Your code won’t be finished, but you have started to write it and have implemented some of the shapes or functions that you will use. The rest of your file has placeholders, pseudo-code or simplified versions of your final implementation.

Add a progress writeup at the beginning of your README.md file with:

  • what you’ve done this week
  • description of the files, classes, objects or arrays you will use
  • description of any interactivity or time-based logic
  • description of functions you have written or will write

Please submit the link to your project repository via Brightspace.