Programing in Kotlin
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
BI-KOT | Z,ZK | 4 | 2P+2C | Czech |
- Garant předmětu:
- Lecturer:
- Tutor:
- Supervisor:
- Department of Software Engineering
- Synopsis:
-
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).
- Requirements:
- 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
3. Function
4. Lambda expressions and HOF
5. Generics
6. Collection
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.
- Note:
- Further information:
- https://courses.fit.cvut.cz/BI-KOT/
- No time-table has been prepared for this course
- The course is a part of the following study plans:
-
- Bachelor program Informatics, unspecified branch, in Czech, 2015-2020 (elective course)
- Bachelor branch Security and Information Technology, in Czech, 2015-2020 (elective course)
- Bachelor branch Computer Science, in Czech, 2015-2020 (elective course)
- Bachelor branch Computer Engineering, in Czech, 2015-2020 (elective course)
- Bachelor branch Information Systems and Management, in Czech, 2015-2020 (elective course)
- Bachelor branch Web and Software Engineering, spec. Software Engineering, in Czech, 2015-2020 (elective course)
- Bachelor branch Web and Software Engineering, spec. Web Engineering, in Czech, 2015-2020 (elective course)
- Bachelor branch Web and Software Engineering, spec. Computer Graphics, in Czech, 2015-2020 (elective course)
- Bachelor branch Knowledge Engineering, in Czech, 2018-2020 (elective course)
- Bachelor specialization Information Security, in Czech, 2021 (elective course)
- Bachelor specialization Management Informatics, in Czech, 2021 (elective course)
- Bachelor specialization Computer Graphics, in Czech, 2021 (elective course)
- Bachelor specialization Computer Engineering, in Czech, 2021 (elective course)
- Bachelor program, unspecified specialization, in Czech, 2021 (elective course)
- Bachelor specialization Web Engineering, in Czech, 2021 (elective course)
- Bachelor specialization Artificial Intelligence, in Czech, 2021 (elective course)
- Bachelor specialization Computer Science, in Czech, 2021 (elective course)
- Bachelor specialization Software Engineering, in Czech, 2021 (elective course)
- Bachelor specialization Computer Systems and Virtualization, in Czech, 2021 (elective course)
- Bachelor specialization Computer Networks and Internet, in Czech, 2021 (elective course)
- Study plan for Ukrainian refugees (elective course)
- Bachelor specialization Information Security, in Czech, 2024 (elective course)
- Bachelor program, unspecified specialization, in Czech, 2024 (elective course)
- Bachelor specialization Management Informatics, in Czech, 2024 (elective course)
- Bachelor specialization Computer Graphics, in Czech, 2024 (elective course)
- Bachelor specialization Software Engineering, in Czech, 2024 (elective course)
- Bachelor specialization Web Engineering, in Czech, 2024 (elective course)
- Bachelor specialization Computer Networks and Internet, in Czech, 2024 (elective course)
- Bachelor specialization Computer Engineering, in Czech, 2024 (elective course)
- Bachelor specialization Computer Systems and Virtualization, in Czech, 2024 (elective course)
- Bachelor specialization Artificial Intelligence, in Czech, 2024 (elective course)
- Bachelor specialization Computer Science, in Czech, 20214 (elective course)