Full Stack Development 

This course provides its participants with the basic general understanding for most of today most popular software technologies and programming languages you can find in complex software applications. It is an excellent course for every business manager and every ‘old school’ programmer who want to have a better understanding of how today’s applications work. In addition, this course covers the very basic of procedural, object oriented and functional programming. By doing so it helps those without any background in software development to acquire a general understanding of this domain before they pick those specific topics they want to specialize in.The entire course is delivered in Hebrew using simple step by step explanations.

This document is available online at http://tinyurl.com/lifemichaelfullstack.

You can find the website we developed for this course at http://fullstack.course.lifemichael.com.


Topic

Online Course

1

Procedural Programming


Do you want to become a professional JavaScript developer?
http://fed.course.lifemichael.com 

JavaScript Programming

Introduction
History
Netscape
JScript
ECMAScript
HTML
IDEs (IntelliJ, Eclipse, Sublime, WebStorm, PHPStorm, VisualStudio, VisualStudio Code)


Basics
ECMAScript                                                                                        
Case Sensitive
Comments
Statements
The typeof Operator
Variables
Data TypesThe null Value
Values Converted to Boolean
The Number Type
The String Type
The Object Type
Operators
Unary Operators
Binary Operators
Boolean Operators
Relational Operatoers
Assignment Operators
The if Statement
The do while loop
The while loop
The do..while Loop
The for Loop
Function Definition
Garbage Collector

Arrays

Introduction
Literal Notation
Accessing Arrays Values
The length Property
Arrays Functions

2

Object Oriented Programming

JavaScript Programming

Object Oriented Programming
What is an Object?
The Object Type
The Brackets Notation
Simple Object Creation
The Factory Design Pattern
The Constructor Design Pattern
The prototype Property
Class Definition
The class Keyword
Inheritance
The extends Keyword
The constructor Keyword
The super Keyword

3

Functional Programming

JavaScript Programming

Functions
The Function Type
Function is an Object
Anonymous Function
Overloading
The arguments Array
The apply Function *
Single Execution Function
The Function Constructor Function


Anonymous Functions  
Introduction
What is an Anonymous Function?
Closures


Lambda Expressions
Introduction
The Syntax
Shorter Code

4

The Web

Do you want to become a professional front end developer?
http://fed.course.lifemichael.com 





















HTML

Introduction to The Internet

Internet History
ARPANET
NIC
IANA


The Web
What is the web?
HTTP, HTML and WWW
Mosaic,Netscape,IE,Chrome,Opera,Firefox  and Edge
W3C


HTTP Protocol
The Hypertext Transfer Protocol
The Client
The Server
Unified Resource Locators


Web Services
What is a web service?
REStful Web Services
SOAP Web Services
Web Services Mashups


Websites
What is a website?
Websites Types (Blogs, eCommerce, Social Networks, Portals)


XHTML Fundamentals

Introduction
HTML Overview
What is XHTML?
XHTML & HTML
DTD

Headings
H1,H2...H6
Search Engines
Rules
Comments


Images
The Image Tag

The width and height Attributes


Links
Hyperlink
The target Attribute
The Anchor Element


Tables
The <table> Tag
The border Attribute
The Headings
Table Rows
Table Data Elements
Table Caption


Lists
Unordered List
Ordered List
List Items


Forms

Overview
Text Fields
Radio Buttons
Checkboxes
The action Attribute
The method Attribute
The submit Button

5

CSS

Do you want to become a professional CSS developer?
http://css.course.lifemichael.com 









Ajax

CSS Basics

Introduction
CSS Overview
Priorities
Syntax
CSS Grouping
The class Selector
Particular Attribute Values
The id Selector
Comments
External CSS
Internal CSS

Inline CSS

Ajax Fundamentals
Introduction to Ajax
What is Ajax?
The Classic Synchronous Model
Partial Screen Update
The Asynchronous Ajax Model
Simple Demo
The XHR Object
Ajax Advantages

6

PHP

Do you want to become a professional PHP developer?
http://php.course.lifemichael.com 

PHP Fundamentals

Introduction to PHP
What is PHP?
PHP History
PHP IDEs

PHP Basics
PHP Syntax
PHP Tags
PHP Short Tags
Script Structure
Comments
Compound Statement
The echo Statement
Data Types
Type Conversion Operator
Variables
Constants
Operators
The if Statement
The if else Statement
The while Statement
The do..while Statement
The for(..;..;..) Statement
The include and require Statements
The include_once Statement
The require_once Statement


Forms
Introduction
The $_GET Super Global Array
The $_POST Super Global Array
Input Validation
Passwords Hashing

7

Node.js

Do you want to become a professional Node.js developer?
http://nodejs.course.lifemichael.com 

Node.js Basics

Introduction
What is Node.js?
Asynchronous Programming
The Module Architecture

Jump Start
JavaScript V8
Hello World in Node.js
The Query String

Basics
Installing Node.js
The Node.js CLI
The npm Manager
HTTP Server on Our Desktop

8

Relational Databases

SQL Fundamentals

SQL Basic Concepts
What is a Database?
The Database Server
The Database Management Tool

Relational Database Objects
Relational Databases v NoSQL Databases
MySQL/MariaDB
PHPMyAdmin

SELECT Query
Theoretical Explanation
Syntax
Practice

INSERT INTO Statement
Theoretical Explanation
Syntax
Practice

UPDATE Statement
Theoretical Explanation
Syntax
Practice

DELETE Statement
Theoretical Explanation
Syntax
Practice


PHP Fundamentals

Databases Connectivity
PHP and MySQL
The MySQL Extension
The MySQLi Extension
Connecting MySQL DB
Closing MySQL DB Connection
Simple Queries
MySQLi Prepared Statements
PHP Data Objects

9

No-SQL Databases

MongoDB Basics

Introduction
What is NoSQL Database?
What is MongoDB?
Document Oriented Database
Flexibility and Scalability
Performance
Simple Administration
                   

Jump Start
Documents
The Keys
The Values
Case Sensitivity
Collections
Databases
Installing MongoDB
MongoDB Atlas
Starting MongoDB

MongoDB Shell
The mongo Utility
The test Database
JavaScript and MongoDB
The db Variable
The use Command
The insert Function
The find Function
The findOne() Function
The update Function
The remove Function
The help Function
The getCollection Function

Data Types
Introduction
Basic Data Types
The null Data Type
The boolean Data Type
The float Data Type
The string Data Type
The object id Data Type
The date Data Type
Regular Expressions and MongoDB

CRUD Operations
Creating Documents
Batch Inserts  
Removing Documents
Update Documents
Replacing Documents
Updating with Modifiers
The $set Modifier
The $unset Moeafier
The $=$inc Modifier

10

REStful Web Services

RESul Web Servicess

Introduction                                                    
What is a REStful Web Services?
The Drive for REStful Web Services
Constraints
Constraints Driven Architecture
Separation of Concerns

Stateless Constraint
Caching Constraint
The Uniform Interface Constraints
The Layered Systems Constraint
The Code on Demand Constraint
Characteristics
The Components
The Resources
The Representation
Control Data
Hypermedia
Web Services Mashup
What is Mashup?
Real World Examples (e.g. Zapier)
Practical Example
Developing a REStful Web Service       

11

MVC Architecture

Server Side Architectures

Model View Controller
What is MVC?
Developing a MVC based web application

12

Microservices Architecture

Server Side Architectures

Microservices

What is the Microservices Architecture
Real World Examples

13

Java

Do you want to become a professional Java developer?
http://java.course.lifemichael.com 





















Scala

Do you want to become a professional Scala developer?
http://scala.course.lifemichael.com 

Developing Java SE Applications

Introduction
What is Java?
The JVM
Garbage Collector
JDK and JRE
Classes & Packages
API Documentation


Basics
Simple Output
Comments
Native Data Types
Declaring Variables
Operators
If Statement
If Else Statement
Switch Case
The for Statement
The while Statement
The do..while Statement


Classes
Class Definition
Class Type Variable
Calling Methods
Accessing Variables
The this Keyword
Methods Overloading
Constructors

Scala Fundamentals

Introduction
What is Scala?
Scala Advantages Over Java
Scala History
Hello World

Scala Basics
Define Variables
Variables Type Inference
Specifying Variables Type
Define Functions
Define Classes
                             

14

Kotlin

Do you want to become a professional Kotlin developer?
http://kotlin.course.lifemichael.com 
















Swift

Do you want to become a professional Swift developer?
http://swift.course.lifemichael.com 

Kotlin Fundamentals

Introduction
What is Kotlin?
Learning Curve

IDE
Android
JavaScript
Native

Jump Start
Defining Functions
Unit Type
Local Variables
Comments
Strings Templates
The if Statement
Nullable Values
Type Checking
The for Loop
The while Loop
The when Expression
Ranges
Collections
Object Oriented

Swift Fundamentals

Introduction
Background
The XCode IDE


Basics
Hello World
The Playground
Variables & Constants
Types
The print Function
Comments
Primitive Types
Type Safe
Type Conversion
Type Aliases
Boolean
Tuples
Optionals
The nil Value

Functions
The func Keyword
Default Parameter Values
Variadic Parameter
The Function Type

15

Python

Do you want to become a professional Python developer?
http://python.course.lifemichael.com 

Python Fundamentals

Introduction

What is Python?

Why Python?

Real World Examples

Python History

Python Domains

Database Programming

The Python Software Foundation

The First Program

The Python Virtual Machine

Jython

IronPython

SL4A

Modules Import

Pythons Versions

Comments

The Python Package Index

The Interactive Console

Types

Introduction

The Program Structure

The Built-in Types

The type Function

Dynamically Typed

Types Categories

The Numbers Category

The Sequences Category

The Set Category

The Mappings Category

Numeric Types

Numeric Literals

Mixed Types Conversion

Types Conversion

Variables

Complex Numbers

Hexadecimal, Octal and Binary

Binary Operations

Built-in Numeric Tools

Decimal Type

Fraction Type

Boolean Type

Numeric Extensions

Dynamic Typing

Variables, Objects and Refrence

Objects are Garbage Collected

Shared References

The sys.getrefcount() Function

Working with Files

Common File Operations

16

Android

Do you want to become a professional Android developer?
http://android.course.lifemichael.com 

Android Fundamentals
Introduction
What is Android?
Android SDK
Android Runtime
The Android Software Stack
Android Development Tools
Android UI
Federation of Components
Android Activities
The AndroidManifest.xml File
The Entry Point Activity
Activities Stack
Intents


WebView
Introduction
The WebView Class
The loadUrl Method
Calling Java from JS
Calling JS from Java

17

Cloud

Amazon Web Services
Introduction
The Cloud Computing Model
Today Available Clouds

Jump Start
First Steps with Amazon

18

Quality Assurance







Logging Messages

JUnit
Introduction
Unit Testing
Assertions
Unit Testing in PHP/.NET/CPP/JS

Jump  Start
Practical Exercising using IDE

Log4J Basics
Introduction
The Importance of Logs
Log4J Alternatives
Logging in Other Programming Languages

Logging Messages Levels
Appenders

Jump Start
Practice using Log4J


Changes Logs:

April 7th, 2018:

The course detailed plan was created.

April 10th, 2019:
The list of subtopics to be covered in each topic was added