-
Notifications
You must be signed in to change notification settings - Fork 4
Syllabus
◄ Back (Course Overview)
Next (Github Workflow) ►
- Week 1 (Class of Wed Jan 21): JavaScript Fundamentals
- Week 2 (Class of Wed Jan 28): Javascript Fundamentals Part 2
- Week 3 (Class of Wed Feb 4): Asynchronous Programming and JavaScript Design Patterns
-
ALL-DAY INTENSIVE WORKSHOP ON Angular.js and Node.js: Sun Feb 8
- TOPICS: See
- [READINGS AND SCREENCASTS:](#see Resources|Resources)
- Week 4 (Class of Wed Feb 11): Design Patterns Part 2
-
Week 5 (Class of Wed Feb 18): Complex Functions and Objects & Project Discussions
- TOPICS
- [READINGS AND SCREENCASTS - Project and Team Dependent -](#see Resources|Resources)
-
Week 6 (Class of Wed Feb 25): Advanced JavaScript & Project Discussions
- [READINGS AND SCREENCASTS - Project and Team Dependent -](#see Resources|Resources)
-
ALL-DAY INTENSIVE WORKSHOP FOR TEAM PROJECTS Sat Feb 28
- TOPICS: See
- [READINGS AND SCREENCASTS:](#see Resources|Resources)
-
Week 7 (Class of Wed Mar 4): JavaScript, Web Applications and the JavaScript Ecosystem
- TOPICS
- [READINGS AND SCREENCASTS - Project and Team Dependent -](#see Resources|Resources)
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
- 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
- Essential Concepts, Part 2
- A thorough introduction to Node.js
- Some JavaScript History
- ColumbiaJS github workflow
- Finalize Teams
OOJ: Chapter 2 (optional), Chapters 3-4
Chapter 2. (optional) Primitive Data Types, Arrays, Loops, and Conditions Chapter 3. Functions Chapter 4. Objects
- 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
OOJ: Chapters 5, 6, and 7
- Chapter 5. Prototype
- Chapter 6. Inheritance and optionally
- Chapter 7. The Browser Environment (optional/skim)
References:
- MDN Promise Article
- Promise References: https://www.promisejs.org/, https://github.com/kriskowal/q
TOPICS: See Workshops
READINGS AND SCREENCASTS: see Resources
- Design Patterns Part 2
- Working with complex functions and objects
- Tooling and techniques for managing and controlling complexity
READINGS AND SCREENCASTS - Project and Team Dependent - see Resources
READINGS AND SCREENCASTS - Project and Team Dependent - see Resources
TOPICS: See Workshops
READINGS AND SCREENCASTS: see Resources
Week 7 (Class of Wed Mar 4): Advanced JavaScript JavaScript, Web Applications and the JavaScript Ecosystem
- Advanced JavaScript
Additional Resources: Resources