Published using Google Docs
js
Updated automatically every 5 minutes

Software Engineering in JavaScript

This course focuses on developing server side applications in JavaScript. The course focuses on node.js and its complementary libraries, such as Express.js, Restfy.js, Mongoose and others. This course includes 140 academic hours organized in 9 parts, that take place in class, and 560 academic hours (and beyond) that take place at home. The training material (slides, video clips, assignments, solutions and code samples) for the entire course is organized in small online courses on the e-learning platform we use during the course. Candidates without background in JavaScript should take the HTML5 Cross Platform Mobile Applications course before taking this one.  


JavaScript Programming (1th Part) 
JavaScript is one of the most popular programming languages in the world. Many developers already have a general knowledge in JavaScript. The first part of this course covers overviews the topics in JavaScript required for server side development. (20 academic hours)

Classic Design Patterns in JavaScript (2th Part)

Design patterns are reusable solutions for commonly occurring problems. This part overviews some of the more popular classic design patterns’ implementation in JavaScript. (5 academic hours)

Node.js Server Side Development (3th Part)

Node.js is the most popular framework for server side development in JavaScript. This is the basic part of the course all most of the following parts are based on. This part includes the coverage for other relevant libraries. (35 academic hours)

Databases Connectivity (4th Part)

Most of today server side node.js based applications use MongoDB, one of the most popular no-sql database. This part includes an in-depth coverage for the MongoDB database as well as various tools and libraries, such as the Mongoose.js library, that are relevant for using it. (15 academic hours)

Web Applications Development (5th Part)

Most of today server side development in Node.js is involved with the development of web applications. This part of the course focuses on web applications development using the Express.js framework. (20 academic hours).

REStful Web Services (6th Part)

During the last years many new client side platforms have emerged. In addition, the popularity of one page web applications has increased. As a result of these changes more and more systems are based on REStful web services running on the server side. This part of the course provides the participants with in-depth understanding of REStful web services. In addition, this part provides with the knowledge and the experience in developing REStful web services using popular frameworks, such as Restify and Express. (20 academic hours)

Software Development Tools (7th Part)

The development process of software applications includes the use of various tools for testing, building and for generating API documentation. This part focuses on tools such as QUnit, Grunt, JSDoc, JSLint, Mocha, ShouldJS, Git and Nock. (15 academic hours).


Node.js Design Patterns (8th Part)

When developing the server side using Node.js, most of the programming problems we face relate to the unique asynchronous nature of our code. This part covers some of the most popular Node.js design patterns that emerged during the last years. (5 academic hours).

Analysis & Design using UML (9th Part)

This part summarizes the course and provides the students with Node.js server side development relevant analysis and design capabilities. This part focuses on UML, SysML and SoaML.  (5 academic hours)


Meeting

Topic

Online Course

1

JavaScript Programming

JavaScript Programming
Introduction
Basic Elements
Object Oriented Programming

2

JavaScript Programming

JavaScript Programming
Object Oriented Programming
Arrays

Functions

3

JavaScript Programming

JavaScript Programming
Anonymous Functions
Errors Handling
Asynchronous Programming
Lambda Expressions

4

JavaScript Programming (ECMA6)

### Topics To Be Added ###

5

Classic Design Patterns in JavaScript

Design Patterns in JavaScript
Introduction
Classic Design Patterns
JavaScript MV* Patterns

6

Node.js Server Side Development

Node.js Basics
Introduction

### Topics To Be Added ###

7

Node.js Server Side Development

Node.js Basics
Introduction

### Topics To Be Added ###

8

Node.js Server Side Development

Node.js Basics
Jump Start

### Topics To Be Added ###

9

Node.js Server Side Development

Node.js Basics
Basics

### Topics To Be Added ###

10

Node.js Server Side Development

Node.js Basics
MySQL

### Topics To Be Added ###

11

Node.js Server Side Development

Node.js Basics
Debugging


### Topics To Be Added ###

12

Node.js Server Side Development

Node.js Basics

Timers

### Topics To Be Added ###

13

Database Connectivity

Mongo DB Basics
Introduction
Jump Start
MongoDB Shell
Data Types
CRUD Operations
Querying
Indexing
MongoDB PHP

14

Database Connectivity

Mongoose Basics 
Introduction
Jump Start

15

Database Connectivity

### Topics to Be Added ###

16

Web Applications Development

### Topics To Be Added ###

17

Web Applications Development

### Topics To Be Added ###

18

Web Applications Development

### Topics To Be Added ###

19

Web Applications Development

### Topics To Be Added ###

20

REStful Web Services

Restify Basics
Introduction
Jump Start

21

REStful Web Services

### Topics to Be Added ###

22

REStful Web Services

### Topics to Be Added ###

23

REStful Web Services

### Topics to Be Added ###

24

Software Development Tools

Grunt Basics
Introduction
Jump Start

### Topics To Be Added ###

25

Software Development Tools

Introduction to JSDoc
Introduction
Jump Start

### Topics To Be Added ###

26

Software Development Tools

QUnit Testing Framework
Introduction
Jump Start

### Topics To Be Added ###

27

Node.js Design Patterns

### Topics To Be Added ###

28

Analysis & Design using UML

UML Fundamentals
Use Case Diagram
Class Diagram
Activity Diagram
Package Diagram

SOAML Fundamentals
Introduction
Basics

SysML Fundamentals
Introduction
Basics


Changes Logs:

October 10th, 2014:

The first version of this document was created.

Jume 8th, 2015:

More hours were added to JavaScript covering more topics as well as the new ECMA6 topics.