Detourning the Web

ITP/NYU - Spring 2018 - Mondays from 6:30pm to 9:25pm

Sam Lavigne - lavigne@nyu.edu

Detournement is the practice of "hijacking" cultural or artistic materials and reusing them to produce new works that both counter and explicate the original intent or ideology of the source material. In this class students will learn how to scrape massive quantities of material from the internet with Python, and then use that material to make satirical, critical and political projects. Each week we will cover a different web scraping technique, with production assignments relating to text, image and video.


Schedule

Week 1 - Jan 22

  • Intro & ground rules
  • HTML/CSS basics
    • Tags, attributes, classes, ids, css selectors
  • Using Chrome/Firefox developer tools
  • the DOM: what it is and how to modify it
    • Editing a single element
    • Editing multiple elements
    • Editing subelements

WEEK 1 HOMEWORK


Week 2 - Jan 29

  • opening video
  • Screenshot presentations
  • Command line basics
  • Python basics
  • Setting up our environments with pip and virtualenv
  • Intro to web scraping with Beautiful Soup

WEEK 2 HOMEWORK

  • Readings:
  • Project Two - The List (Part 1): Scrape the web, and then create a list with the material you collect.
    • Your list should be text only.
    • You list should be long

Week 3 - Feb 5

  • opening video
  • More web scraping with Beautiful Soup
  • Writing to a file
  • Dictionaries
  • JSON
    • writing to json
    • scraping from ajax/json
      • Fox News search
      • Instagram
  • Primer on manipulating text with TextBlob
    • getting words
    • getting parts of speech
    • most common phrases

WEEK 3 HOMEWORK

  • Project Two - The List (Part 2): Create a physical version of your list: for example, print it on roll paper, make a book, make a website, make a projection, recite it, etc.
  • Readings:

Week 4 - Feb 12

  • Project #2 due
  • Downloading files
  • Manipulating images
    • wth imagemagick
    • with Pillow
  • Calling external commands using subprocess.call

WEEK 4 HOMEWORK


Week 5 - FEB 26

  • Web scraping with Selenium and puppeteer

WEEK 5 HOMEWORK

  • Project Three - Image: Create a system that automatically manipulates images found online.
  • Readings:

Week 6 - Mar 5

  • Automating the online self
  • AJAX and how to deal with it

Week 7 - Mar 19

  • Project #3 due

Week 8 - Mar 26

  • Bots

WEEK 8 HOMEWORK

  • Project Four - Make a simple bot

Week 9 - Apr 2

  • Scraping and editing video

WEEK 9 HOMEWORK

  • Prepare a proposal for your final project.

Week 10 - Apr 9

  • Project proposals due
  • TBD

Week 11 - Apr 16

  • Lab day

Week 12 - Apr 23

  • Final presentations

Grading/Expectations

  • Each of the four main projects is worth 20% of your grade, and class participation is 20%.
  • More than one unexcused absence is grounds for failure :(
  • But no one will fail.
  • It's OK to show work that has sensitive or difficult content, but if you do so give everyone a quick heads up beforehand.
  • We will be critiquing each others work in the class. Be honest but friendly when critiquing other students. When receiving critique please listen and take feedback seriously.
  • Feel free to use your laptop in class to take notes or follow along when I'm covering programming topics. Please do not use your laptops to do stuff on social media unrelated to the class etc.
  • The only time laptop use is strictly prohibited is when other students are presenting their work.
  • Turn off your phones or put them on silent during class.
  • No projects about Trump.

Resources

Learning Python

Command Line

Scraping

Text Parsing

Image

Audio

Video