Advanced Web Development

Title Advanced Web Development (52554)
Quarter Autumn 2017
Instructor Jeffrey Cohen (jeffcohen@cs.uchicago.edu)
Website

Syllabus

This course builds upon MPCS-52553 to enable students to gain mastery over modern web architectures, web services, and visual design.  

Today's consumer-facing and business applications must consume external services and publish services of their own.  Students will build interconnected chains of services, with a particular emphasis on efficiency, security, and sustainability using modern web frameworks such as Rails, React, Node, and more.

 

Course Contents

The primary topics to be covered are:

  • Modern Front-End Development: Javascript framworks, CSS frameworks
  • Javascript ES6 and beyond
  • AJAX and the asynchronous web
  • Advanced HTTP semantics and implementation
  • CORS and related security essentials
  • Consuming web services both client-side and server-side
  • Publishing RESTful web services with Rails, Node, and/or other platforms
  • "Single-Page App" architecture using React, Vue.js, and/or other frameworks
  • HTTP 2.0 binary protocol architecture

Some examples of the kind of services we will use and/or rebuild are:

  • Traffic statistics (Google Analytics, Clicky, etc.)
  • Link shortenting   (bit.ly, etc.)
  • Stock exchange simulation with HTTP streaming
  • Credit card processing (Stripe, PayPal, BrainTree, etc.)
  • Weather data (OpenWeatherMap, Forecast.io, etc)
  • Messaging (Twilio, Mandrill, etc.)
  • Geolocation and Geocoding (Google Maps, OpenMaps, etc.)

 

Coursework & Grading

 

1. Three programming assignments, worth 20% each.  All assignments start with a prewritten
Rails application which must be modified according to certain requirements.

2. Three brief, in-class quizzes are administered at the beginning of weeks 3, 6, and 9.  Quizzes are worth 5% each and consist of fixing a small program that's broken, a set of multiple choice quesitons, or a combination of both.

3. One Final Project worth 25%.  The project consists of a Rails (or equivalent) application, deployed to a live internet address, that provides as useful service, provided as a REST-compliant JSON endpoint, allowing for public signups and providing an admin interface to its users.

Required Textbooks

* "RESTful Web Services Cookbook" by Subbu Allamaraju; O'Reilly/Yahoo Press, 2010.  Amazon link: http://www.amazon.com/gp/product/0596801688

* "JavaScript and JQuery: Interactive Front-End Web Development" by Jon Duckett; Wiley 2014. Amazon link: http://www.amazon.com/gp/product/1118531647

Prerequisites (Courses)

MPCS 52553 - Web Development

Students who have not taken Web Development but can demonstrate proficiency in a suitable web framework (Rails, Django, Node, .NET MVC, or a Java framework) can request permission from the instructor. Permission is not guaranteed, and will require submission of at least one live web application complete with source code.

Prerequisites (Other)

Satisfies

Elective

Time

Thursday 5:30-8:30 pm

Location

Young 302