Repository for ITP Comm Lab: Networked Media, Fall 2014
The network is one of our most fundamental mediums 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. In this course, students will utilize JavaScript as both a client and server side programming language to build creative network systems. Additionally, HTML and CSS will be used to define the structure and look.
##Evaluation
Grades will be determined according to the following breakdown:
- Regular Assignments 40%
- Participation and Attendance 40%
- Final Project 20%
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".
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. It is expected that everyone in the class will create and maintain a blog for their assignments.
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.
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.
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.
##Syllabus
###Week 1 (10/28): Intro, HTML, CSS, client-server
Getting started
- Github student developer pack - includes Digital Ocean $100 credit and more.
- Digital Ocean referral
- Download a code editor like TextWrangler or Sublime Text.
- Download an FTP client like Cyberduck, Filezilla, Fetch - mac only, etc.
- Basic unix commands - We'll be using the command line regularly in this class. Nothing too fancy; just the basics. Get familiar, at the very least, with the commands
ls
,cd
, andmkdir
. - Download servi.
Server setup
###Week 2 (11/4)
Intro to p5.js and canvas
- Download p5.js. The download comes with a copy of p5.js, you can also use a statically hosted version from the CDN, more info on that here.
- Getting started with p5.js
- Processing <> p5.js transition
- FYI: HTML5Canvas without p5.js
###Week 3 (11/11)
- HTML and CSS continued
- JavaScript events - manipulating the Document Object Model
###Week 4 (11/18)
- HTML forms
- Web services: AJAX and JSON
###Week 5 (11/25)
- Server-side JavaScript writing basic HTTP servers with Servi and Node.js
- Data storage
- Query strings, GET vs. POST
###Week 6 (12/2)
- WebSockets realtime interaction in the browser
- Serial interfacing with the Arduino
###Week 7 (12/9)
Final project presentations
##Resources
###p5.js
###Servi.js
###JS Learning / Intro
- CodeAcademy: JavaScript
- How to learn JavaScript properly
- JavaScript the right way
- Code School
- JavaScript garden
- A re-introduction to JS by Mozilla
- JavaScript 101 from JQuery
- JavaScript: The Definitive Guide
- Eloquent JavaScript, Marijn Haverbeke
- Beginning JavaScript, Paul Wilton and Jeremy McPeak
- HTML & CSS book
- JavaScript book
###General
- http://www.nyu.edu/lynda - lots of great tutorials here. Log in with your normal nyu net-id/password for full access.
- CodeAcademy
###Tools
- Github student developer pack - includes Digital Ocean $100 credit and more!
- Checking code: JSLint / JSHint
- Browser debugging: Chrome Developer Tools (tutorial) / Firebug (tutorial)
- Mobile debugging jsconsole.com
- Sharing code snippets (useful for asking questions): gist.github.com