Dynamic Web Development Spring 2018
Instructor: Shawn Van Every
Email: Shawn.Van.Every@nyu.edu
Office Hours: Sign Up
Tuesday Section GitHub
Thursday Section GitHub
Description
This course will provide a framework for learning how to develop and program web applications. It will focus on server side development using JavaScript, Node.js with the Express framework, and the MongoDB database on cloud based infrastructure. Additional topics will include login and session management, web services and APIs, and will lightly touch on front-end web development. The course will be a mixture of lecture and in-class collaborative coding, with weekly programming and reading homework.
Grades
Grades will be determined according to the following breakdown:
- Regular Assignments 33.3%
- Participation 33.3%
- Final Project 33.3%
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".
Git Repository
It is expected that everyone in the class create and maintain a git repository that includes your weekly assignments.
Be sure to enter your name, preferred email address, and the URL to your repo on this document: Name, Email, Repo URL - DWD Spring 2018
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.
Assignments
We will have 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 1/3rd of your grade.
Attendance
Attendance is mandatory. Please inform your me via email if you are going to miss a class. Two unexcused absences is cause for failing the class. (An unexcused lateness of 10 minutes or more is equivalent to 1/2 an absence.)
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 is 1/3rd 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 1/3rd of your grade.
Books/Websites
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
The Node Beginner Book
Lynda.com (Free access through NYU)
Weekly Schedule
Class 1
Introduction: Client-Server, TCP/IP, DNS, HTTP, Servers and Servers, Node.js, Basic Web Server, HTML, CSS, the JavaScript DOM, and git
Node.js, VPS, and Basic HTTP Server Notes
HTML Basics
CSS Basics
JavaScript DOM
git Basics
Assignments:
Add your name, preferred email address, and git repository URL to this document: Name, Email, Repo URL - DWD Spring 2018
Sign up for a VPS (Digital Ocean) account and create a server (Droplet). (Sign up for the GitHub Education Pack for a discount)
Create a simple webpage; perhaps a work of hypertext art, fiction, or poetry, put it online with a simple node based HTTP server (Digital Ocean is a good choice). Check your code into your git repository in a folder called "week1".
Some Inspiration may be found in Rhizome's Artbase, in particular their Hypertext Collection
Class 2
Webservers with Node and Express
Express Basics and HTML Forms
Assignments:
Build a simple Express application which takes in data from a form and outputs the results on an HTML page. An example might be a quote generator or a guestbook but feel free to build something of your own creation.
Class 3
Using Express Templates and Databases
Express Templates
Data Storage
Assignments:
Update your last project, now using a Mongo Database to store the data and a template to display.
Create or update a project to include a search function through records in a database
Class 4
AJAX with JQuery, Using Simple Web Services
Assignments:
Build a simple single page web application using jQuery with AJAX and an Express server.
Final Project Ideas: 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.
Class 5
Final Project Proposals
Cookies, Sessions, Logins, and HTTPS
HTTPS
File Uploads
Creating Node Packages
Assignments:
Try using some basic session management, track a user's search queries in a database and offer a history display
Final Projects!
Class 6
Final Project Workshop and Additional Topics
Using Web Services (OAuth, Facebook, Twitter, etc)
Assignment
Final Projects!
Document your final project, 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
Class 7
Final Project Presentations: Expect Guests