Kotlin alapú szoftverfejlesztés
A tárgy célja, hogy a hallgatók mélységében megismerjék a Kotlin nyelvet, és képesek legyenek idiomatikusan használni, alkalmazásokat fejleszteni vele. Bemutatásra kerülnek a különböző nyelvi elemek implementációs részletei a JVM platformra koncentrálva, valamint a nyelv lehetséges felhasználási környezetei. A nyelv a modern programozási nyelvek mintapéldajaként szolgál, és megismerhető rajta keresztül számos olyan funkció és paradigma, amely más kortárs nyelvekben is elérhető.
Követelmények
- Előkövetelmény: A tárgy erősen épít a Java és Objektum Orientált ismeretekre, ezért azok számára javasolt a tárgy felvétele, akiknek már van egy erős alaptudásuk ezekben a témakörökben.
- Jelenlét: Az előadások látogatása nem kötelező, de erősen ajánlott.
- NagyZH: A kredit megszerzéséhez egy 50 pontos nagyzárthelyit kell megírni órán a 14. hét környékén, melyen legalább 40%-ot el kell érni. A félév során egy pótlási lehetőség van, közvetlen az eredeti zárthelyi időpontja után egy héttel.
- Házi feladat: A félév során el kell készíteni egy kisebb Kotlin nyelven írt házi feladatot (nem lehet Android alkalmazás, arra van egy külön tárgy), mely követelmény a jegy megszerzéséhez 50 pontért. Félév közepéig le kell adni egy specifikációt, 14. hétig a kész programot. Ha nem adsz le specifikációt időre, akkor sikertelen lesz a házi feladatod, bukod a tárgyat. Fizetős pótleadás egy héttel későbbig érvényes (természetesen a specifikációnál nincs pótleadás).
- Végső jegy: A végső jegyet a képlet határozza meg a következő ponthatárok szerint:
Pont Jegy 0 - 39 1 40 - 54 2 55 - 69 3 70 - 84 4 85 - 5
Segédanyagok
A tárgyra való felvétel után kapsz hozzáférést a tárgy GitHub repository-jához, amelyben angol nyelven elérhető a tárggyal kapcsolatos összes információ. Példák házifeladat-választásra, angol nyelvű, roppant alapos jegyzet, forrásokkal, nyelvi újdonságokkal és tippekkel tűzdelve.
A tárgy során ajánlott IDE az IntelliJ IDEA, amelynek megszerezheted az Ultimate kiadását, ha ezen a weboldalon igényeled a tanulói licenszedet. Használd az egyetemi e-mail címed, vagy a kollégiumi AdminSCH-sat.
Témakörök
- Bevezető a nyelvbe: miért jött létre, alapvető szintaxis
- Objektumorinentált programozás
- Nullabilitás
- Funkcionális programozás
- Collections
- Több részlet a függvénytípusokról, beépített függvényekről
- Standard Library csodái
- Operátorok, delegátok, propertys
- A típusrendszer
- Generikus típusok
- Szálkezelés: Coroutines
Tapasztalatok
2020/21 tavasz
A félévem egyik leghasznosabb tárgya volt. Modern szemlélet, hasznos nyelv, real-life usecase bemutatók. Személyes élmény: a nyelv annyira kényelmes típuskezelést engedélyez és olyan jó beépített könyvtára, nyelvi elemei vannak, hogy talán az eddig legkellemesebb nyelv azokhoz képest, amikkel eddig ismerkedtem (C++, C#, Java, TypeScript, JavaScript, Ruby). A házi feladat nem nehéz, nem kell túlvállalnod magad, azonban lehetőséged van webalkalmazás; JavaFX, TornadoFX, egyéb grafikus desktop alkalmazás; saját apró library fejlesztésére (az Androidos alkalmazásfejlesztésnek nem itt van a helye). Azonban az már a te felelősséged, hogy a frameworköt, amit felhasználsz a házidhoz, megismerd, ugyanis frameworkökre (ktor, JavaFX, TornadoFX, Spring, Retrofit ...) nem kerül sor az előadások során - azonban az előadások ennek ellenére nagyon alaposan átjárják a nyelvet, platformot, és extra anyagot is találsz a tárgy githubos repójában, hogyha úgy érzed, tovább szeretnél foglalkozni a témával (ezek az extra anyagok egyébként kifejezetten igényesen vannak összeválogatva). Ha lemaradnál előadásról, ott vannak az videós előadások, az alapos jegyzet, amiben pontosan arról van szó, amiről az órán is, és külön megmelengette a szívem, hogy angolul van a jegyzet. Nem jársz rosszul, ha felveszed a tárgyat és odafigyelsz az időpontokra. A ZH-ra józan ész, és az előadásanyag végigolvasása/végighallgatása szükséges, nincs több stressz. 5/5
Piller Trisztán (vita) 2021. május 16., 01:21 (CEST)