Kotlin alapú szoftverfejlesztés
A tantárgyleírás hatályossága
| Tantárgy neve (magyarul, angolul) |
Kotlin alapú szoftverfejlesztés
Kotlin-based Software Development
|
||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Tantárgykód | BMEVIAUAV41 | ||||||||||||
| Tantárgyjelleg | — | ||||||||||||
| Képzési szint | — | ||||||||||||
| Kurzustípusok és óraszámok (heti/féléves) |
|
||||||||||||
| Tanulmányi teljesítmény/értékelés típusa | félévközi érdemjegy | ||||||||||||
| Tantárgy kreditértéke | 2 | ||||||||||||
| Tantárgyfelelős |
DR. Ekler Péter
beosztás: egyetemi docens
elérhetőség:
ekler.peter@vik.bme.hu
|
||||||||||||
| Tantárgyat gondozó oktatási szervezeti egység |
Automatizálási és Alkalmazott Informatikai Tanszék
|
||||||||||||
| Kar | Villamosmérnöki és Informatikai Kar | ||||||||||||
| Tantárgy weboldala | https://www.aut.bme.hu/Course/kotlin | ||||||||||||
| Tantárgy elsődleges mintatantervi jellege | — | ||||||||||||
| Közvetlen előkövetelmények – Erős előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Gyenge előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Párhuzamos előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Mérföldkő előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Kizáró feltétel | nincs |
Célkitűzés
|
Hét |
Előadás
anyaga |
|
1. |
A
nyelv kialakulása, jellemzők, támogatott környezetek, eszközök, REPL. A
szintaxis alapjai, változók, függvények, vezérlési struktúrák, kivételek.
Primitív típusok, típus kikövetkeztetés. |
|
2. |
Osztályok, interfészek, data class, object, companion object, enum,
class delegation. Constructorok típusai és szabályai. Typealias, property,
custom getter/setter, const, beépített delegate-ek. Típus ellenőrzés és
konverzió. |
|
3. |
Nullable típusok. Safe call operator, null-coalescing operator,
non-null assertion, smart cast, safe cast, lateinit. Java interoperabilitási
megfontolások, platform típusok. |
|
4. |
A függvény mint elsőrangú nyelvi elem. Lambdák. SAM conversion és SAM
constructor. Extension, higher order, és inline függvények. A standard
library collection típusai. Sequence. |
|
5. |
Lokális függvények, lambdas with receivers, infix függények, tailrec.
let, apply, use és egyéb standard library függvények. |
|
6. |
Stringek és fájlok egyszerű kezelése. A Java kóddal való
interoperabilitás részletes szabályai és lehetőségei. |
|
7. |
A típusrendszer speciális elemei: Any, Unit, és Nothing. Típus
paraméterek, generikus függvények, típusok. Kovariancia, kontravariancia, és
invariancia. Use-site variance, type projection. Type erasure, reified
típusok. |
|
8. |
Operátorok felüldefiniálása, destructuring declarations, invoke,
Comparable, Range, saját delegate implementációk. |
|
9. |
Aszinkron programozás a nyelv beépített lehetőségeivel. Suspending
function, CoroutineContext, CoroutineScope, Channel. |
|
10. |
Domain specifikus nyelvek készítése a nyelv fejlett funkcióinak
felhasználásával. Gradle Kotlin DSL. |
|
11. |
Népszerű Kotlin könyvtárak: Spek, Ktor, mockk, Koin, Arrow, Exposed. |
|
12. |
JVM környezetek: Android, Spring, JavaFX: Anko, Kotlin Android Extensions,
Android-KTX. Spring Boot, routing DSL, Spring Fu. TornadoFX. |
|
13. |
Kotlin Multiplatform: KotlinJS és Kotlin/Native: multiplatform
projektek felépítése és lehetőségei. JavaScript interoperabilitás, ts2kt,
tesztelés. Kotlin natív környezetben. |
|
14. |
Érdekességek, a nyelv újdonságai. Contract, inline class, unsigned
típusok. |
Tanulmányi eredmények
Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:
Tudás
Nincsenek rögzített tanulási eredmények.
Képességek
Nincsenek rögzített tanulási eredmények.
Attitűd
Nincsenek rögzített tanulási eredmények.
Autonómia és felelősség
Nincsenek rögzített tanulási eredmények.
Oktatási módszertan
Tanulástámogató anyagok
Online források
A tantárgy teljesítéséhez ajánlott előzetes ismeretek
Általános szabályok
Teljesítményértékelési módszerek
Szorgalmi időszakban végzett teljesítményértékelések részletes leírása
Nincs megadva részletes értékelés.
Szorgalmi időszakban végzett teljesítményértékelések részaránya
Nincs megadva részarány.
Vizsgaidőszakban végzett teljesítményértékelések részletes leírása
Nincs megadva részletes értékelés.
Vizsgarészek részaránya
Nincs megadva részarány.
Érdemjegy megállapítása
Nincs megadva érdemjegy határ.
Jelenléti és részvételi követelmények
Nincs megadva jelenléti követelmény.
Javítás, ismétlés és pótlás különös szabályai
Nincs megadva.
Rövid leírás
Nincs megadva.
Részletes leírás
Nincs megadva.
Ajánlott tantárgyak
Nincs megadva.
A tantárgy elvégzéséhez szükséges tanulmányi munka
Nincs megadva munkaidő bontás.
Tantárgykövetelmények hatályossága
Tantervi elhelyezés
Nincsenek rögzített tantervi elhelyezések ehhez a tárgyverzióhoz.