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
andlighten
. - 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