Tentative Schedule


Week 1

By the end of this week students should understand:

  • HTML/CSS basics
  • basic navigation and tasks in Terminal
  • using basic Git and GitHub workflows
  • large PSD-to-semantic-markup-and-css projects
  • pixel perfect work on any layout their given
  • quality documentation and resources (MDN, Stackoverflow, etc.)

Week 2

By the end of this week students should understand:

  • Responsive web development
  • SCSS syntax, Sass mixins, variable, and functions like darken and lighten.
  • refactoring plain CSS into well-written SASS
  • Bourbon and Neat

Week 3 Goals

By the end of this week students should understand:

  • ES3/5/6/7
    • 3: core
    • 5: array/object methods
    • 6: so many new things, syntax
    • 7: async, observe, comprehensions
    • to use: transpiler (compatibility), linter (safety), modules (reusability)
    • MS TypeScript, FB Flow, Google SandScript??? (types, typechecking)
    • CoffeeScript (moon orbit.. compiles to JS)
    • Dart (comet orbit ... OOP, imperative)
    • CLJS (functional, immutable, etc)
  • basic JavaScript types, operators, statements, and expressions
  • jQuery-less DOM traversal (getElementById, querySelectorAll, etc.)
  • iteration in JS
  • Array.prototype.map, Array.prototype.reduce, Array.prototype.filter, etc.
  • Handlebars.js

Week 4 Goals

By the end of this week students should understand:

  • DOM-related jQuery
  • Underscore as a fallback for native methods like Array.prototype.map
  • Underscore chaining
  • datamining a large set of JSON objects using Underscore to find average prices, materials etc (generally done with data from Etsy.com)
  • Gulp basics
  • the basics of HTTP and AJAX
  • non-DOM-related jQuery
  • building a simple, polling-based chat application using GET and POST HTTP methods
  • JS promises (jQuery-flavored)

Week 5 Goals

By the end of this week students should understand:

  • team-based workflow with Git/GitHub
  • git rebase, git pull --rebase, git merge
  • JS constructors and the new keyword
  • this
  • scope
  • closures
  • currying and partial application

Week 6 Goals

By the end of this week students should understand:

  • Backbone.Router
  • hashbangs vs HTML5 Pushstate API

  • Backbone.Model

  • Backbone.Collection
  • using Backbone's Model and Collection constructors to refactor a previous AJAX project

  • basics of JavaScript unit testing

  • Mocha and Chai

  • Backbone.View

  • Building a small JavaScript MVC "todo" app.

  • Using REST APIs (with jsonp, CORS, or some other x-domain circumvention method)

Week 7 Goals

By the end of this week students should understand:

  • all aspects of Backbone.js
  • reading and understanding the Backbone.js source code
  • using Parse's REST API and datastore
  • relational vs non-relational databases

Week 8 Goals

By the end of this week students should understand:

  • basics of user authentication, cookies, and localStorage
  • building a small-scale social network with Parse.
  • complex queries on relational Parse data
  • ember-cli
  • Ember object model and computed properties
  • using Ember Components to refactor a previous Backbone project

Week 9 Goals

This week is a week for review and catch-up. Things will fall through the cracks during the previous 8 weeks, and so we have this week as a flex week to make sure we cover everything we've missed.

By the end of this week students should understand:

  • ember-data
  • Ember Router and Routes
  • Using JavaScript libraries with Ember (e.g. Google Maps)
  • ember-cli addons
  • Deploying ember-cli apps
  • cloud modules with Parse
  • building an HTTP proxy in node.js

Week 10, 11, 12

The last three weeks are for final projects. Each student will design, build and deploy a major project of their own, using as much tech from the previous nine weeks as possible. Lecture is light and mostly Q&A based on problems students encounter. The rest of the time is spent working on final projects and prepping demos