Introduction
  • Welcome to Class!
  • Class Organization
  • Overview of Kotlin
  • Language Features
  • Object Oriented Programming
  • Functional Programming
  • Advantages of Using Kotlin
Installing the Required Software
  • Installing the JDK (Java Development Kit)
  • Intstalling the IntelliJ IDEA (Integrated Development Environment)
Starting to Write Code
  • Kotlin Tools
  • Creating an IntelliJ Project
  • Exploring the IntelliJ Environment
  • Compiling and Running your first application (Hello World)
  • Variations of the Hello World Program (code along)
Miscellaneous
  • Packages
  • Comments
Variables and Data Types
  • Overview
  • Static Typing and Type Inference
  • Mutable and Immutable Variables
  • Basic Data Types
  • Program to print the area of a rectangle (Code Along)
  • A program to convert minutes to years and days (code along)
  • String and String Templates
  • A program that demonstrates Strings and String Templates (code along)
  • Any and Any? Types
  • The Unit Type (void)
  • The Nothing Type (never returns)
  • Explicit Casts and Smart Casts
  • SmartCast Example (code along)
Operators
  • Basic Operators
  • Other Operators (in, index, invoke, is)
  • Using the in Operator, Example (code along)
Nullability
  • Nullable Types
  • Safe Call Operator (?)
  • Elvis Operator (?:)
  • as? (Safe Cast) Operator
  • Not Null Assertions (!!)
  • A program that demonstrates Null Safety (code along)
Control Flow
  • Overview
  • If Statements and Expression
  • When Statement and Expression
  • A program that demonstrates the When construct (code along)
  • While and Do-While loops
  • Ranges and Progressions
  • For Loop
  • return and jump
  • Guess the Number Program (code along)
Functions
  • Basics
  • Top Level Functions
  • Member and Local Functions
  • Named Parameters/Arguments
  • Default Parameters/Arguments
  • Infix Calls
  • Variable Arguments (var-args) and the Spread Operator
  • Overloaded Functions
  • A program that demonstrates method overloading (code along)
  • Extension Functions
Standard Library Functions
  • apply, let, and with
  • run, lazy, and use
  • repeat, (require, assert, and check)
Operator Overloading
  • Overview
  • Compound Assignment Operators and Unary Operators
  • Comparison Operators
Lambda Expressions
  • Overview
  • Higher Order Functions Part I
  • Higher Order Functions Part II
  • Variable Scope
  • Use in the Java APIs
  • Returning Functions from Functions
  • Inline Functions
Object Oriented Concepts
  • Overview
  • Classes
  • Encapsulation
  • Constructors
  • Abstraction
  • Interfaces
  • Inheritance
  • Polymorphism
Object Oriented Programming in Kotlin
  • Classes and Constructors
  • Properties
  • Visibility Modifiers
  • Inner and Nested Classes
  • Interfaces
  • Inheritance
  • A Bank Account Program (code along)
  • Data Classes and Delegation