Introduction

Person of the Year: You

Web 2.0 is about collaboration, community, and putting users in control. But it goes beyond editing and contributing content: many modern websites are designed to be malleable. Their presentation can be customized and their information can be accessed, transformed, and recombined to create new experiences never envisioned by the original site creators.

Perhaps you've visited a website that provided a useful service or offered engaging content, but whose usefulness was crippled by design flaws or arbitrary usage restrictions. “This website could be so perfect,” you find yourself thinking, “if only it did things a little bit differently.” Wouldn't it be great if you could fix or extend it yourself?

Perhaps you are tired of shuffling data from one online location to another: from a photo site to a social networking site, from an online word processor to your blog, from your email to your calendar. Wouldn't it be helpful to create automated connections between these sites and services, fusing their content automatically?

In H79.2802, you will learn to take these matters into your own hands. You will tweak, tune, remix, hack, dissect, recombine, and merge web sites and services, fixing flaws, creating new experiences, and bending the web to your wishes. In true Web 2.0 fashion, you will make the web your own.

Course Objectives

The primary objectives of H79.2802 are:

  1. To learn how to reformat and repurpose the content of existing websites, and recombine elements from multiple websites to create new applications.
  2. To develop an understanding of Web 2.0 concepts including data access APIs, web services, feeds, content syndication, and tagging.
  3. To become proficient in the client and server-side technologies used in developing web applications, including HTML, CSS, PHP, and Javascript.
  4. To build a unique and exciting new website incorporating this knowledge.

Instructor

Dan Maynes Aminzade

 

Dan Maynes Aminzade (monzy at nyu dot edu)

Office Hours: Mondays 6:30pm- 8:30pm in the ITP adjunct faculty lounge, or by appointment.

Links

Course website: http://webremix.org

Course mailing list: itp-mashups-fall10 at lists dot nyu dot edu

Course Calendar

Lectures are held on Wednesday from 6:30pm-9:00pm in ITP Room 447. For some of the hands-on lab exercises, we will adjourn to Tisch LC19 beginning at 8:00pm.

The “Nuts & Bolts” workshop sessions are interactive tutorials. If you have a laptop computer, you are encouraged to bring it to these sessions, but you are welcome to follow along on the lab computers if you prefer.

Date Topic Slides Coursework Due Readings
Sep 8 Introduction to Mashups and Web 2.0: What Makes a Mashup?
Nuts & Bolts Exploring and Dissecting Popular Mashups
PDF
Course Sign-up Merrill, Yu
Sep 15 Modern Web Development: The Web Standards Model
Nuts & BoltsIntro to HTML, CSS, and Javascript
PDF
  Frere-Jones, Lane
Sep 22 Parsing Feeds and Data Exchange Formats
Nuts & BoltsServer-side Data Processing with PHP
PDF
Assignment #1 Sklar (Chapter 1)
Sep 29 Introduction to APIs and Web Services
Nuts & BoltsUsing the Flickr API
PDF
  Wilkinson (Chapters 2 & 4)
Oct 6

Javascript Fundamentals
Nuts & BoltsClient-side Data Processing with Javascript

PDF
Assignment #2 Weinberger (Chapter 1), Hammersley (Chapter 1), O'Connor (Chapter 1 & 2)
Oct 13 Introduction to AJAX
Nuts & BoltsGoogle and Yahoo AJAX search APIs for web and images
PDF
Interim Course Evaluation Holdener (Chapter 1), Marlow
Oct 20 Online Maps Overview: Geotagging, Geocoding, Google Maps API
Nuts & BoltsVisualizing Geotagged Content on Google Maps
PDF
Gibson (Chapter 2)
Oct 27 Processing Refresher
Nuts & BoltsAccessing Web APIs using Processing
PDF
Team Registration, Assignment #3 Marshall, Lethem
Nov 3 Project Proposal Presentations and Discussion   Project Proposal Sunstein, Howe
Nov 10 Introduction to jQuery
Nuts & BoltsAnimation using jQuery and Processing.js
PDF
Hartmann (07),
Hartmann (08)
Nov 17 Mobile mashups: SMS, GPS, Location-Aware, with Guest Lecturer John Britton
Nuts & BoltsVoice & SMS Apps with the Twilio API
PDF
Project Checkpoint #1, Assignment #4 Bolin, Wong
Nov 24 Automating and Customizing the Web, with Guest Lecturer Michael Bolin
Nuts & Bolts Interim Project Demos
PDF
Technology Proof-of-Concept Barabasi, Viegas
Dec 1 Cloud Computing and Deploying Web Applications at Scale, with Guest Lecturer Kushal Dave
Nuts & Bolts Google App Engine
PDF
Project Checkpoint #2 Adar, Maximilien
Dec 8 Final Project Presentations
Final Report and
Team Evaluation
 

Course Assignments

H79.2802 has three types of coursework requirements.

Readings: Readings are assigned to correspond to each lecture topic. Students should complete the readings before lecture and be prepared to participate in class discussion of the readings.

Individual Assignments: Four individual “problem sets” are assigned during the first half of the semester. Each of these assignments has a written portion and an implementation portion. The written portions involve reflection, problem solving, and idea generation based on the readings. The implementation portions are mini-projects that allow students to become familiar with various web development tools and techniques.

Project Assignments: During the second half of the semester, students will form project teams and build a working prototype of a web mashup site. This six-week design project includes four milestones: an initial written project proposal, two intermediate checkpoints, and a final presentation and written report.

For more details on these coursework requirements and how they contribute to final grades, refer to the assignments page.