Course Outline


Pre-requisites

  • Participants must be comfortable in some programming language preferably a scripting language
  • Knowledge of HTML and CSS is required if you are interested in learning JavaScript in the browser

Duration

2-5 days (covering a subset of the topics - contact us for more information/customization)

Lab Setup

Hardware Configuration

Participants must have access to a system with the following hardware configuration:

  • 2GB of free RAM, 20GB of free disk space and full network connectivity

Software configuration

  • Ubuntu 16.04 Desktop Edition (sudo/root access required)
  • Firefox and Chrome browsers
  • Firebug

Course Outline for JavaScript

Introduction to JavaScript
  • Why Java? Why Script?
  • Important features of JavaScript
Basic Language Constructs
  • Values
  • Numbers
  • Strings
  • Booleans
  • Objects
  • null
  • undefined
  • Typing
  • Reserved Words
  • Comments
  • Operators
  • Statements
  • Expressions
  • Conditionals
  • Looping
Objects
  • Understanding Primitive Types
  • Composite Types
  • Object Internals ‐ Use of Hashtables
  • Predefined objects
  • Ways to create Objects
  • Ways to iterate Objects
  • Pass by reference
Functions and Functional Programming
  • Function syntax
  • Return values of functions
  • Anonymous Functions
  • Inner Functions
  • Function Scope
  • Globals and how to avoid them
  • Functions as Objects
  • call and apply
Arrays
  • How JavaScript arrays are different
  • Multidimensional arrays
Closures
  • What are closures
  • Examples of closures
  • Practical uses of closures
  • Emulating private methods using closures
Prototypes and Prototypal Inheritance
  • Inheritance in JavaScript
  • Difference from classical inheritance
  • Constructor functions
  • The prototype link
  • The object Function
  • The this keyword
JavaScript Programming Paradigms
  • Object oriented programming in JavaScript
  • Functional programming in JavaScript
  • Aspect oriented programming in JavaScript
Document Object Model
  • Introduction to DOM
  • A little history of the web
  • Levels (or types) of DOM
  • Nodes
  • Elements
  • Attributes
  • Text
  • Comment
JavaScript and DOM
  • Parsing XML in JavaScript
  • Create elements
  • Retrieve elements
  • Delete elements
  • Work with attributes
  • A few examples
Event Handling in JavaScript
  • Adding event handlers
  • Asynchronous handling of events with callbacks
  • Event bubbling
  • Event capturing
JavaScript Libraries
  • The need for libraries
  • Handling cross-browser issues with JS libraries
  • jQuery UI
  • jQuery mobile
  • YUI
  • GWT
  • Node.js
  • Coffeescript
  • Backbone
  • Angular
  • Knockout
  • Modernizr
  • CSS Libraries
  • Bootstrap
  • CSS Resets
  • Normalise.css
  • HTML5 Boilerplate
  • LESS
  • SASS
AJAX and XMLHttpRequest
  • The components - XMLHttp, JavaScript, XML (or JSON) and DOM
  • Intelligent clients with AJAX
  • Examples of AJAX usage
  • The future - Websockets and real-time applications
Data Formats
  • What are data formats?
  • Difference from data structures
  • Serialization and deserialization
  • Maps as generic data containers

The classroom training will be provided in Bangalore (Bengaluru), Chennai, Hyderabad or Mumbai and will be conducted in the client's premises. All the necessary hardware/software infrastructure must be provided by the client.