Live Web - Summer 2021 - Syllabus
Instructor: Shawn Van Every
Office Hours: Signup for an appointment
The World Wide Web is a great platform for asynchronous communication such as email and message boards and extended into media posting and sharing. With the rise of broadband, more powerful computers, always on and connected mobile devices, synchronous communications have become more viable. Streaming media, audio and video conferencing and realtime chat give us the ability to create new forms of live interactive experiences for participants.
Grades will be determined according to the following breakdown:
- Regular Assignments 30%
- Participation 20%
- Presentation 20%
- Final Project 30%
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 on this Google Doc. (Note: You must be using Google Docs with your NYU login in order to edit this document).
Laptops and Mobile Devices
I think laptops and mobile devices are a valuable tool for use in the classroom; unfortunately, they can very easily be a distraction. We are going to be exploring a variety of models for live interaction online and therefore laptops and mobile devices will prove very useful not to mention for taking notes and following along with examples. We should though be courteous to one another though and when we have outside guests, during discussion or student presentations laptop and phone use should be avoided.
We will have weekly assignments that are relevant to material from the previous class. Due to the nature of the assignments, it is likely that you will want to work with other students as well as participate with the projects of your fellow students as testers.
Attendance and Tardiness
Attendance is mandatory. Please inform me via email if you are going to miss a class. Habitually showing up late for class or absences will adversely affect your grade. Two lates equals one absence and two unexcused absences will lead to a failing grade.
As if I haven't stated this enough. 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 20% of your overall grade.
Starting on the 3rd class, we will have group project presentations. I will divide the class up into groups and each week one or two groups will be expected to present and have the class test a project utilizing technology from the previous class. Some ideas are to reimagine chat with emoji, develop a multiplayer game, put on a live interactive game show, and so on.
Class will culminate final projects. It is expected that these will be both technology and concept driven.
I will periodically assign readings (handouts and/or online articles).
Class 1: May 25
Introductions What is the "live" web? (Synchronous vs. Asynchronous)
Add your name, preferred email address, and blog URL to this Google Doc. (Note: You must be using Google Docs with your NYU login in order to edit this document).
Find a live or synchronous site or platform online. Try it out. Describe it on your blog. How is it used? What do you find interesting about it? Come to class prepared to discuss.
Class 2: May 27
The foundation: Chat
Get up and running with Node.js on Digital Ocean and the example Chat Application. Try to extend it a bit, make it better, more fun.
Class 3: June 1
Transmitting Other Data Types: Collaborative Drawing, Mouse Events, Other data: Notes
Continue with the project you started in class - sharing/displaying cursors. Take it in a direction of your chosing.
Email me your NetID and Digital Ocean Server IP and I'll setup YOURNETID.itp.io to point to your server. We'll need this done for next class!
Class 4: June 3
The Live AV Web: HTML5 Audio and Video with WebRTC and HTTPS
Enhance one of your last 2 assignments (or create a new one) with the ability to share camera images.
Class 5: June 8
The AV Web Part 2: Involving Everyone: Multiuser Audio/Video
Get up and running with Live Audio/Video
Class 6: June 10
Guest Presentation: Billy Clark from CultureHub
Web Audio API
Prepare a final project proposal; in a blog post include a short description of the idea, a bit of background (why you want to make it), include any references, and start thinking about how you will develop it.
Class 7: June 15
Final Project Proposals
Manipulating Video and Saving Files on Node.js
Guest Presentation: John Henry Thompson - DICE + p5 + WebRTC
Try out some video manipulation on the Canvas or in p5.
Class 8: June 17
WebRTC Data Channels: Notes
Create a new project or update an existing project saving image files or using Media Recorder
Class 9: June 22
Aidan Nelson - three.js and WebRTC together (and YORB 2020)
Going Beyond: Mobile and Live Data from other sources (Web Services) Notes
Work on Final Project
Class 10: June 24
Simple Server Side Databases and Chat + Database Example
Work on Final Project
Class 11: June 29
Final Project Workshop
Going Beyond: Live Data from the physical world (Arduino) Example
Sign up for Final Project Presentation Slot
Class 12: July 1
Final Project Presentations - Expect Guests
Final Project Presentation Schedule
Documentation due July 2. Update link in document.