Skip to content
Lev Brie edited this page Feb 3, 2015 · 9 revisions

◄ Back (Course Overview)     Next (Github Workflow) ►

Table of Contents

This course is a thorough introduction to the Javascript programming language. It assumes knowledge of at least one programming language.

Topics Overview: Fundamentals of Javascript; Essential Concepts - hoisting, function versus block scope, scopes and closures, first-class functions, nested functions, prototypal inheritance, context and this; Asynchronous programming in Javascript - callbacks, promises, intro to generators; Design Patterns: chaining, asynchronous module definitions, dependency injection, pub/sub, req/res, the module pattern and the revealing module pattern, the observer pattern, additional patterns if time; Testing; Tooling; writing quality code in Javascript, techniques for controlling complexity

Prerequisite: W1004 or Equivalent

Week 1 (Class of Wed Jan 21): JavaScript Fundamentals

TOPICS

  • Setup and Tools
  • Course Overview
  • Resources and Recommended Reading
  • ColumbiaJS JavaScript style guide
  • Fundamentals of JavaScript: syntax, primitive data types, functions, objects
  • Essential Concepts: hoisting, lexical versus dynamic scope, function versus block scope, scopes and closures, first-class functions, nested functions, prototypal inheritance, context and this, asynchronous programming
  • Testing

Week 2 (Class of Wed Jan 28): Javascript Fundamentals Part 2

TOPICS

  • Essential Concepts, Part 2
  • A thorough introduction to Node.js
  • Some JavaScript History
  • ColumbiaJS github workflow
  • Finalize Teams

READINGS

OOJ: Chapter 2 (optional), Chapters 3-4

Chapter 2. (optional) Primitive Data Types, Arrays, Loops, and Conditions Chapter 3. Functions Chapter 4. Objects

Week 3 (Class of Wed Feb 4): Asynchronous Programming and JavaScript Design Patterns

TOPICS

  • Advanced asynchronous programming patterns and concepts
  • Design Patterns: chaining, asynchronous module definitions, dependency injection, pub/sub, req/res, the module pattern and the revealing module pattern, the observer pattern

READINGS (FOR WEEKS 3 and 4)

OOJ: Chapters 5, 6, and 7

  • Chapter 5. Prototype
  • Chapter 6. Inheritance and optionally
  • Chapter 7. The Browser Environment (optional/skim)

The Revealing Module Pattern

The Observer Pattern

References:

ALL-DAY INTENSIVE WORKSHOP ON Angular.js and Node.js: Sun Feb 8

TOPICS: See Workshops

READINGS AND SCREENCASTS: see Resources

Week 4 (Class of Wed Feb 11): Design Patterns Part 2

TOPICS

  • Design Patterns Part 2

READINGS (See Week 3 READINGS)

Week 5 (Class of Wed Feb 18): Design Patterns Part 3 & Project Discussions

TOPICS

  • Working with complex functions and objects
  • Tooling and techniques for managing and controlling complexity

READINGS AND SCREENCASTS - Project and Team Dependent - see Resources

Week 6 (Class of Wed Feb 25): Complex Functions and Objects & Project Discussions

READINGS AND SCREENCASTS - Project and Team Dependent - see Resources

ALL-DAY INTENSIVE WORKSHOP FOR TEAM PROJECTS Sat Feb 28

TOPICS: See Workshops

READINGS AND SCREENCASTS: see Resources

Week 7 (Class of Wed Mar 4): Advanced JavaScript JavaScript, Web Applications and the JavaScript Ecosystem

TOPICS

  • Advanced JavaScript

READINGS AND SCREENCASTS - Project and Team Dependent - [[see Resources|Resources]

Additional Resources: Resources

Clone this wiki locally