Curriculum

4 Topics
Introduction to the course
What is Kotlin?
History of Kotlin
Developing Kotlin

22 Topics
From Java to Kotlin
Introducing Kotlin to an existing project
"Hello world" example
Variables
Functions
Named & default arguments
Conditionals: if & when
Loops
'in' checks & ranges
Exceptions
Extension Functions
Examples from the Standard Library
Calling Extensions
Importance of extensions
Solution: Mastermind
Solution: Checking identifier
Solution: Sum as an extension function
Setting up programming assignments
Mastermind game
Kotlin Playground: Checking identifier
Kotlin Playground: Sum as an extension function
Kotlin Playground: Mastermind in a functional style

26 Topics
Nullable types
Nullable types under the hood
Safe casts
Importance of nullability
Lambdas
Common Operations on collections
Operations Quiz - I
Operations Quiz - II
Function Types
Member References
return from Lambda
Is Kotlin a functional language?
Solution: Nice String
Solution: Taxi Park tasks 1-3
Solution: Taxi Park tasks 4 & 5
Solution: Taxi Park task 6
Solution: Checking whether string is null or empty
Solution: Safe casts
Solution: Interchangeable predicates
Mastermind in a functional style
Nice String
Taxi Park
Kotlin Playground: Checking whether string is null or empty
Kotlin Playground: Safe casts
Kotlin Playground: Interchangeable predicates
Taxi Park. Pareto Principle task

25 Topics
Properties
More about Properties
Lazy or late initialization
OOP in Kotlin
Constructors Inheritance syntax
Class modifiers - I
Class modifiers - II
Objects object expressions & companion objects
Constants
Generics
OOP design choices
Operator Overloading
Conventions
(Not)using operator overloading
Solution: Rationals
Solution: Unstable val
Solution: Using lateinit property
Solution: NPE during initialization
Solution: Equality
Rationals
Board
Kotlin Playground: Unstable val
Kotlin Playground: Using lateinit property
Kotlin Playground: NPE during initialization
Kotlin Playground: Equality

23 Topics
Library functions looking like built-in constructs
The power of inline
Inline or not inline?..
Collections vs Sequences
More about Sequences
Creating Sequences
Library Functions
Lambda with receiver
More useful library functions
Basic types
Kotlin type hierarchy
Nullable Types
Collection types
Solution: Inlining of the 'filter' function
Solution: Fibonacci sequence
Solution: Working with auxiliary functions
Solution: Member extensions
Conclusion
Game 2048 & Game of Fifteen
Kotlin Playground: Inlining of the 'filter' function
Kotlin Playground: Fibonacci sequence
Kotlin Playground: Working with auxiliary functions
Kotlin Playground: Member extensions

  Write a Review

Kotlin for Java Developers

Go to Free Course