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:
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