Course
Javascript Novice to Professional
48 hours 37 minutes
Credits: Optional Learning
Description
This course teaches learners how to develop in JavaScript from the ground up, progressing from core language fundamentals through intermediate programming concepts, professional-grade testing practices, and interactive web development. Learners build practical skills through a combination of interactive courses and hands-on labs covering syntax, control flow, functions, objects, asynchronous programming, test-driven development using Mocha, DOM manipulation, form validation, and templating with Handlebars.
What Students Will Learn
Chapter 1 : Javascript Fundamentals
- Basic JavaScript Syntax
- JavaScript Variables
- JavaScript Basics Lab: Kelvin Weather
- JavaScript Basics Lab: Dog Years
- JavaScript Control Flow
- JavaScript Control Flow Lab: Magic 8 Ball
- JavaScript Control Flow Lab: Race Day
- JavaScript Functions
- JavaScript Functions Lab: Rock Paper Scissors
- JavaScript Functions Lab: Sleep Debt Calculator
- JavaScript Scope
- JavaScript Scope Lab: Training Days
- JavaScript Arrays
- JavaScript Arrays Lab: Secret Message
- JavaScript Loops
- JavaScript Loops Lab: Whale Talk
- JavaScript Higher-Order Functions
- JavaScript Iterators
- JavaScript Iterator Lab: Grammar Checker
- JavaScript Objects
- JavaScript Advanced Objects
- JavaScript Objects Lab: Meal Maker
- JavaScript Objects Lab: Team Stats
Chapter 2 : Intermediate javascript
- JavaScript Classes
- JavaScript Classes Lab: Build A Library
- JavaScript Classes Lab: School Catalog
- JavaScript Runtime Environments
- JavaScript Modules in Node.js
- JavaScript Modules in Node.js Lab: Message Mixer
- JavaScript Modules in ES6 Syntax
- JavaScript Modules in ES6 Lab: Workaround
- JavaScript Promises
- JavaScript Async-Await
- HTTP Requests
- JavaScript Requests with Fetch API
- JavaScript Requests Lab: Film Finder
- JavaScript Debugging
- JavaScript Error Handling
- JavaScript Currying
- JavaScript Design Patterns
- JavaScript Memory Management
- JavaScript Debugging Memory Issues
Chapter 3 : TDD and Unit Testing in JS
- JavaScript Testing
- JavaScript Testing Lab: Cake Clock
- JavaScript Mocha Testing
- JavaScript Assertion Testing
- JavaScript Mocha Testing Lab: Rooster Regulation
- JavaScript TDD with Mocha
- JavaScript TDD with Mocha Lab: Factorial
Chapter 4 : Interactiity with Javascript
- JavaScript: Working with the DOM & Events
- JavaScript DOM Lab: Chore Door
- JavaScript DOM Events Lab: Piano Keys
- HTML Forms
- JavaScript: Form Validation & Async Programming
- HTML Forms Lab: Form a Story
- Introduction to Handlebars
- Handlebars Lab: Musicon
Optional
- Basic JavaScript Syntax Cheatsheet
- JavaScript Variables Cheatsheet
- JavaScript Control Flow Cheatsheet
- JavaScript Functions Cheatsheet
- JavaScript Scope Cheatsheet
- JavaScript Arrays Cheatsheet
- JavaScript Loops Cheatsheet
- JavaScript Higher-Order Functions Cheatsheet
- JavaScript Iterators Cheatsheet
- JavaScript Objects Cheatsheet
- JavaScript Advanced Objects Cheatsheet
- JavaScript Classes Cheatsheet
- JavaScript Async-Await Cheatsheet
- JavaScript Promises Cheatsheet
- JavaScript Requests with Fetch API Cheatsheet
- JavaScript Debugging Cheatsheet
- JavaScript Error Handling Cheatsheet
- JavaScript Memory Management Cheatsheet
- JavaScript Currying Cheatsheet
- Javascript Design Patterns Cheatsheet
- JavaScript Mocha Testing Cheatsheet
- JavaScript Assertion Testing Cheatsheet
Overall Learning Outcomes
- Write JavaScript programs using core syntax, variables, control flow, functions, and scope
- Work with arrays, loops, higher-order functions, iterators, and objects in JavaScript
- Apply advanced object concepts and build programs using object-oriented principles
- Implement JavaScript classes, modules (Node.js and ES6), and runtime environments
- Handle asynchronous operations using Promises and Async/Await patterns
- Make HTTP requests using the Fetch API to interact with external data sources
- Debug and handle errors, manage memory, and apply currying and design patterns
- Write unit tests using Mocha and assertion libraries applying TDD principles
- Manipulate the DOM and handle browser events to build interactive web experiences
- Build and validate HTML forms with asynchronous programming support
- Implement dynamic templating using Handlebars

