Programing in Kotlin
- Jiří Daněček (guarantor)
- Jiří Daněček (guarantor)
- Department of Software Engineering
Kotlin is a modern, statically-styled object-functional language that exploits the extensive Java language ecosystem while delivering a number of advanced language constructions. The language is fully Java compliant and allows for mixed projects that preserve existing parts written in Java, and continue with the development of a modern, object-functional way with minimum of boiler-plate code. Last but not least, Kotlin is suitable for designing of DSLs (Domain-Specific Languages).
- Syllabus of lectures:
1. Basics of functional programming, overview of the Kotlin language.
2. Structure of applications, control structures, language conventions, keywords, operators.
3. Classes, data classes, enum classes, objects, fields and properties, modifiers.
4. Declaration of functions, implicit and name parameters, procedures, simple functions, variable number of parameters.
5. Infix calls, local functions, generic functions, inline functions, extension functions, lambda expressions, HOF.
6. Destructive Declaration, nullability.
7. Standard types and conversions.
8. Overloading operators, delegations.
9. Generics, subtyping.
10. Collections and sequences, common operations.
11. Annotation and reflection.
12. Standard library.
13. Design of domain-specific languages.
- Syllabus of tutorials:
1. Basic construction
2. Classes and Objects
4. Lambda expressions and HOF
7. Standard library
8. Design of DSL example
9. KotlinTest - test framework
10.TornadoFX - adapter for JavaFX
11. KotlinPrimavera - adapter for Spring
- Study Objective:
- Study materials:
Dmitry Jemerov and Svetlana Isakova: Kotlin in Action, Kotlin Tutorial and Kotlin Specification on www.kotlinlang.org.
- Further information:
- Time-table for winter semester 2019/2020:
- Time-table is not available yet
- Time-table for summer semester 2019/2020:
NBFIT PC učebnaroomT9:351
NBFIT PC ucebnaroomT9:351
NBFIT PC ucebna
Tue Fri Thu Fri
- The course is a part of the following study plans:
- Bc. Programme Informatics, in Czech, Version 2015 to 2020 (elective course)
- Bc. Branch Security and Information Technology, in Czech, Version 2015 to 2020 (elective course)
- Bc. Branch Computer Science, in Czech, Version 2015 to 2020 (elective course)
- Bc. Branch Computer Engineering, in Czech, Version 2015 to 2020 (elective course)
- Bachelor Branch Information Systems and Management, in Czech, Version 2015 to 2020 (elective course)
- Bachelor Branch Knowledge Engineering, in Czech, Version 2015, 2016 and 2017 (elective course)
- Bachelor Branch WSI, Specialization Software Engineering, in Czech, Version 2015 to 2020 (elective course)
- Bachelor Branch, Specialization Web Engineering, in Czech, Version 2015 to 2020 (elective course)
- Bachelor Branch WSI, Specialization Computer Grafics, in Czech, Version 2015 to 2020 (elective course)
- Bachelor Branch Knowledge Engineering, in Czech, Version 2018 to 2020 (elective course)