Easy learning by examples

What you will learn

Basic programming principles, such as code simplicity and Object-Oriented Programming

Basic coding concepts, using real-life examples to learn in fun

Basic TypeScript, practicing each concept with simple exercises, 100% online – no installations required

Become proficient in the basic studies, and ready to learn more advanced concepts

Description

Why take a course with ‘Coding in Fun’?

  • The biggest advantage of this course is that on top of the built-in quizzes, there is a dedicated course website with hundreds of exercises for the different lessons.
  • The course breaks subjects down into mini-topics, making it simple and easy  to follow.
  • The course follows a unique learning by examples methodology, using real-life examples to illustrate the concepts we learn.

Who is this course for?

This course was built so it’s suited for everyone – kids and adults.

Whether you want to start studying programming from scratch; or to improve your base; or you already have a good understanding of the basics and you’d like to learn TypeScript; or just have fun studying something new – this course is for you.

No prior knowledge or skill is required.

What does this course cover?

This course focuses on basic programming principles, coding concepts, and TypeScript.

What we’ll cover:

  1. Programming principals:
    • Code readability, simplicity, and correctness
    • Object-Oriented Programming (OOP)
    • APIs
  2. Basic coding concepts and TypeScript:
    • Code Conventions and Comments
    • Variables
    • Operators
    • Conditionals
    • Functions
    • Arrays
    • Loops
    • Object-Oriented Programming: Objects and Classes
    • Object-Oriented Programming: Encapsulation and APIs
    • Object-Oriented Programming: Inheritance

What is the ‘Easy learning by examples’ methodology?

What I’ve realized during many years of developing software and teaching, is that by using real-life examples, learning is made into fun and is easier to connect with, and therefore easier to follow. We will keep examples to a maximum, and explanations to a minimum. Therefore, this is not a tutorial, but rather a practical course, and you can expect to have a good understanding of basic programming and TypeScript.


Get Instant Notification of New Courses on our Telegram channel.


Why break a subject down into mini-topics?

If there’s one thing students don’t like – it’s a long lecture. It’s exhausting and ineffective.

In my courses, I always break topics down into mini-topics, each one forms a short lesson, accompanied by examples, and followed by a quiz and a practical test.

This way guarantees that we only move on to the next mini-topic, after we completely apprehend the current one.

Smaller and focused lesson content -> shorter lesson -> easier to follow the examples given -> successful quiz and practice.

Why TypeScript?

TypeScript is an advanced form of JavaScript, and is the language used both in Node.js (backend) and React.js (frontend). If one day you decide to develop your own app or website, or both, then with TypeScript you could do both and not have to learn another language.

What is the course structure?

Each section focuses on a coding concept:

  1. The first lesson is always a video explaining the concept in general, using an example from real life, with no reference to TypeScript.
  2. The next lessons are a breakdown of the coding concept into mini-topics, always using examples to make the subject clear, while explaining relevant programming principals along the way.Almost all lessons are followed by a quiz and a reference to practical exercises on the course dedicated website.

My goal is for you to enjoy the course, and become proficient in the material by the time you finish it!!

English
language

Content

Introduction

Programming and course introduction
A word about TypeScript vs JavaScript
Basic terms

Code comments and code conventions (styles) – not less important than code

My wife and my mother-in-law – Introducing coding concept: Code Comments
Code comments – they are for yourself as much as for others
Code comments – when to add them and how
Order vs chaos – Introducing coding concept: Code Conventions
Code conventions (styles) – pick one convention and stick with it
Code conventions – line indentation
Code conventions – spacing rules
Code conventions – newlines
Code conventions – camelCase vs CamelCase
Code comments and code conventions – summary

Variables – the very basic of any programming

Kitchen storage – Introducing coding concept: Variables
Constant variables
Variables – code conventions
Constant variables
Giving variables meaningful names
Giving variables meaningful names
Non-constant variables
Non-constant variables
Constant vs non-constant
Primitive types – numbers, strings, booleans
Primitive types
‘null’ value
‘null’ value
Union type – multiple possible types for a single variable
Union type – multiple possible types for a single variable
Variables – summary

Operators

Calculators – Introducing coding concept: Operators
Operators definitions
Basic arithmetic operators – a way to calculate numeric values
Operators – code conventions
Basic arithmetic operators
Operators precedence
Operators precedence
Arithmetic operators – increment and decrement
Arithmetic operators – increment and decrement
Assignment operators – a way to initialize and edit variables
Assignment operators
Comparison operators – a way to evaluate certain conditions as true/false
Comparison operators
Logical operators – a way to evaluate multiple boolean values
Logical operators
String concatenation operator – a way to join string variables
String concatenation operator
Operators – summary

Conditionals statements – a way to add logic

Lisa crossing the traffic light – Introducing coding concept: Conditionals
‘if’ statement
If statement- code conventions
‘if’ statement
‘if…else’ statement
‘if…else’ statement
‘if…else if…else’ statement
‘if…else if…else’ statement
Nested ‘if’ statements
Tip: when to use nested ‘if’ statements and when to use ‘if…else if…else’
Nested ‘if’ statements
‘if…else’ scope
‘if…else’ scope
Conditionals – summary

Functions – a way to separate code into logical, readable blocks

Cars and bodies components – Introducing coding concept: Functions
Functions declaration and invocation
Functions – code conventions
Functions declaration and invocation
Passing parameters to functions
Passing parameters to functions
Functions return value
Functions return value
Functions return value when using conditionals
Functions return value when using conditionals
Union type as return-type
Union type as return-type
Using functions to simplify code
Functions scope
Functions scope
Code reusability – using functions to avoid code duplication
TypeScript vs JavaScript – now explaine
Functions – summary

Arrays – a way to store a sequence of values of the same type in 1 variable

Harry Potter – Introducing coding concept: Arrays
Arrays
Arrays – code conventions
Arrays
Retrieving the size of an array
Retrieving the size of an array
Retrieving the value of an array item
Retrieving the value of an array item
Changing the value of an array item
Changing the value of an array item
Adding and removing items from an array
Adding and removing items from an array
Finding out whether an array includes a specific value
Finding out whether an array includes a specific value
Arrays – summary

Loops – a way to make the same operation several times, with an end condition

Formula 1 races – Introducing coding concept: Loops
‘for’ loops basics
‘for’ loops – code conventions
‘for’ loops basics
‘for’ loops afterthought
‘for’ loops iterating over arrays
‘for’ loops iterating over arrays
‘for’ loops and functions
‘for…of’ loops iterating over arrays
‘for…of’ loops iterating over arrays
‘while’ loops
‘while’ loops – code conventions
‘while’ loops
Infinite loops
Infinite loops
Loops scope
Loops scope
Loops – summary

Object-Oriented Programming (OOP) and Classes

Who doesn’t like animals? Introducing OOP and concept #1: Objects
Introducing OOP concept #2: Classes
Class definition – a new type that bundles state and functionality
Class definition – code conventions
Class definition
Class constructors
Class constructors
Class constructors with parameters
Class constructor with parameters
Class member properties – a way to keep the state of an object
Class member properties
Accessing member properties using the keyword ‘this’
Accessing member properties using the keyword ‘this’
Class member properties initialization
Class member properties initialization
Class constructors with parameter properties
Class constructors with parameter properties
Class member methods – a set of instructions that perform a task
Class member methods – code conventions
Class member methods
Class member methods accessing other members
Class member methods accessing other members
Class member methods editing member properties
Class member methods editing member properties
Where to initialize member properties
Classes – summary
Classes

Encapsulation – hide implementation, expose behavior

Contracts – Introducing OOP concept #3: Encapsulation
‘private’ accessibility modifier
‘private’ accessibility modifier
Advantages of using ‘private’ accessibility modifier
External vs internal member properties
External vs internal member properties
Member properties getters and setters
Member properties getters and setters
Class access rule number 1: all member properties – ‘private’
Class access rule number 1: all member properties – ‘private’
Class access rule number 2: API/getters/setters – ‘public’, the rest – ‘private’
Class access rule number 2: API/getters/setters – ‘public’, the rest – ‘private’
API – summary

Inheritance

Let’s take a ride with Uber – Introducing OOP concept #4: Inheritance
Class inheritance
Class inheritance
Class constructors when using inheritance
Class constructors when using inheritance
Parametrized class constructors when using inheritance
Parametrized class constructors when using inheritance
Accessing parent members inside the child
Accessing parent members inside the child
‘protected’ accessibility modifier
‘protected’ accessibility modifier
When to use ‘protected’ access?
Class member override
Class member override
Access overridden parent members using ‘super’
Access overridden parent members using ‘super’
Class inheritance – the birds example
Class inheritance – the Uber example
Designing a class

Putting it all together – here we will examine an idea and implement it in TS

An animal sanctuary
Requirements
Initial design
Improved design
Animal objects
Living space object
Location object
Animal sanctuary object
Sample program

Summary – what we’ve covered, and what’s next

Overview of what we’ve covered
Bonus lecture