Networked Media Spring 2017

Instructor: Shawn Van Every
Email: Shawn.Van.Every@nyu.edu
Office Hours: Sign Up
Group/Listserv: https://groups.google.com/a/itp.nyu.edu/forum/#!forum/networkedmedia
Class Wiki: https://itp.nyu.edu/~sve204/cgi-bin/pwiki/wiki.pl?Networked_Media_Spring_2017_Class_Wiki

Description

The network has become a fundamental medium for interactivity. It makes possible our interaction with machines, data, and, most importantly, other people. Though the base interaction it supports is simple, a client sends a request to a server, which replies; an incredible variety of systems can be and have been built on top of it. An equally impressive body of media theory has also arisen around it's use.

This hybrid theory and technology course will be 50% project driven technical work and 50% theory and discussion. The technical work will will utilize JavaScript as both a client and server side programming language to build creative systems on the web. Technical topics will include server and client web frameworks, such as Express and Angular, HTML, CSS, templating, and databases. The theory portion of the course will include reading and discussion of past and current media theory texts that relate to the networks of today; included in this will be works by Marshal Mcluhan, Wendy Chun, Lev Manovich, Philip Agre, Tiziana Terranova, and more.

In short, this course will be about developing full-stack web applications (such as anything from the beginnings of Google, YouTube, and Twitter to class registration systems and other purpose built system) as well as thinking, reading, and discussing the implications with a culture and media theory perspective.

Grades

Grades will be determined according to the following breakdown:
Please see ITP's statement on Pass/Fail which states that a "Pass" is equivalent to an "A" or a "B" while anything less would be considered a "Fail".

Weblog

It is expected that everyone in the class will create and maintain a blog for their assignments.

Be sure to enter your name, preferred email address and the URL to your blog (you can always edit this later) on the class wiki.

Listserv

This class is very participatory in nature and discussions will certainly take place outside of the classroom. Along with the blog, one of the primary vehicles for these discussions (as well as administrative issues) will be the listserv.

Laptops and WiFi

Laptops and WiFi available are valuable tools for use in the classroom. Unfortunately, they can very easily be a distraction as well. Since this class is technical in nature and we'll likely be trying code and looking at online resources laptops use will likely be very useful. We should though be courteous to one another and when we have outside guests, during discussion or student presentations laptops use should be curtailed.

Weekly Technical Assignments

We will have weekly assignments that are relevant to material from the previous class. These assignments are required and you should be prepared to show/talk about them in class. This is 25% of your grade.

Presentations

Each week, staring the 3rd week we'll have student lead presentations on the readings assigned the previous week. The format should be a short summary presentation (10-15 minutes) on the reading and then to lead the class in a discussion around the reading and the topics introduced/presented (15-20 minutes).

Here is the current list of chapters/articles that you'll choose from. (This list is still evolving and will be complete by the end of the week for you to choose): https://itp.nyu.edu/~sve204/cgi-bin/pwiki/wiki.pl?Networked_Media_Spring_2017_Reading_Schedule

Weekly Reading

Each week, there will be assigned reading and student lead presentations and discussion. You are expected to do the reading and write a short (300 word) response on your blog in preparation for the discussion.

Attendance

Attendance is mandatory. Please inform your teacher via email if you are going to miss a class. Habitually showing up late for class or an excessive number of absences will adversely affect your grade.

Class Participation

This class will be participatory, you are expected to participate in discussions and give feedback to other students both in class and participate with their projects. This (along with attendance) is 40% of your grade.

Midterm Projects

Half way through the course we'll have midterm projects. These will be 1 week projects, essentially the same effort as a weekly homework assignment but one of your own choosing that you This will comprise 20% of your grade.

Final Projects

Class will culminate final projects. You are expected to push your abilities to produce something that utilizes what you have learned in the class that is useful in some manner to yourself or the world. This will comprise 20% of your grade.

Books/Websites

Reading assignments will be given out on a weekly basis and in general will be handouts and/or online articles. No books are required for this course but here is a list of other resources that might come in handy:

  • HTML & CSS Book
  • JavaScript and JQuery Book
  • Lynda.com (Free access through NYU)
  • More to come...
  • Weekly Schedule

    Week 1

    Introduction: What is "networked media", Client-Server, TCP/IP, DNS, HTTP, Servers, Node.js, Basic Web Server
    Week 1 Notes
    Screen Cast
    Assignments:
  • Add your name, preferred email address, and blog URL to the class wiki
  • Sign up for the Listserv
  • Read and respond to Vannevar Bush's As We May Think on your blog.
  • Make a work of hypertext art, fiction, or poetry, put it online with a simple node based HTTP server and link to it from your blog. Some Inspiration may be found in Rhizome's Artbase, in particular their Hypertext Collection
  • GitHub Education Pack

  • Week 2

    Server Side JavaScript with Node.js, NPM and Node Packages, Using Git, Express Basics, and HTML Forms
    Week 2 Notes
    Screen Cast
    Assignments:
  • Pick a reading and date and add yourself to the class wiki
  • Do the reading for next week, create a short (300 word) blog post in response
  • Build a simple Express application which takes in data from a form and outputs the results on an HTML page. One example might be a quote generator or you could build a guestbook.

  • Week 3

    CSS and the JavaScript DOM
    Week 3 Notes
    Assignments:
  • Do the scheduled reading and write your (300 word) response: class wiki
  • Get your previous assignment working and add front-end layout and design elements to it using HTML/CSS/and JavaScript where appropriate

  • Week 4

    Express Templates Week 4 Notes
    Week 4 Code
    Screencast 1 and Screencast 2
    Assignments:
  • Do the scheduled reading and write your (300 word) response: class wiki
  • Continue building your projects, now using databases and templates.
  • Midterm Project Ideas!

  • Week 5

    Midterm Project Ideas
    Data Storage
    Week 5 Notes
    Screencast
    Current Server from Class
    Assignments:
  • Midterms - Schedule a presentation slot

  • Week 6

    Midterms
    Assignments:
  • Midterm Documentation - Make sure your midterm documentation is linked on the presentation schedule wiki
  • Do the scheduled reading and write your (300 word) response: class wiki

  • Week 7

    AJAX with JQuery, Building Simple Web Services
    Week 7 Notes
    Screencast
    Current Server from Class
    Assignments:
  • Build a simple single page web application using jQuery with AJAX and an Express server.
  • Do the scheduled reading and write your (300 word) response: class wiki

  • Week 8

    Cookies and Sessions
    Week 8 Notes
    Screencast
    Assignments:
  • Try out cookies/sessions
  • Do the scheduled reading and write your (300 word) response: class wiki

  • Week 9

    Logins and File Uploads
    Week 9 Notes
    Screencast
    Assignments:
  • Do the scheduled reading and write your (300 word) response: class wiki

  • Week 10

    Using advanced Web Services (OAuth, Facebook, Twitter, etc)
    Week 10 Notes
    Screencast
    Assignments:
  • Do the scheduled reading and write your (300 word) response: class wiki
  • Final Project Ideas: On your blog, detail your final project idea(s). Start with a description, consider why you want to do this and how you are going to accomplish it. Perhaps draw a system diagram and/or wireframes.

  • Week 11

    Final Project Proposals
    Assignments:
  • Work on your final projects!
  • Do the scheduled reading and write your (300 word) response: class wiki

  • Week 12

    Work Better: Creating Node Packages, Using Git
    Notes
    Week 12 Screencast
    Assignment
  • Work on your final projects!
  • Sign up for a final presentation slot

  • Week 13

    Final Project Workshop
    Additional Topics
    Assignment:
  • Final Projects!
  • Document your final project on your blog, start with the idea, include some demonstration documentation (pictures/video), described how you feel about the project and where you want to go with it next
  • Sign up for a final presentation slot

  • Week 14

    Final Project Presentations Expect Guests