Objektumorientált programozás
A tantárgyleírás hatályossága
| Tantárgy neve (magyarul, angolul) |
Objektumorientált programozás
Object Oriented Programming
|
||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Tantárgykód | BMEVIIIBA02 | ||||||||||||
| 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 | 7 | ||||||||||||
| Tantárgyfelelős |
DR. Goldschmidt Balázs
beosztás: egyetemi docens
elérhetőség:
goldschmidt.balazs@vik.bme.hu
|
||||||||||||
| Tantárgyat gondozó oktatási szervezeti egység |
Irányítástechnika és Informatika Tanszék
|
||||||||||||
| Kar | Villamosmérnöki és Informatikai Kar | ||||||||||||
| Tantárgy weboldala | — | ||||||||||||
| 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
Az előadások
tematikája:
|
Előadás |
Előadás anyaga |
| 1 |
Bevezetés. Hello World Java nyelven, ennek
kapcsán a legalapvetőbb Java jellemzők bemutatása. Típusosság alapjainak bevezetése,
Java primitív típusok, operátorok, vezérlési szerkezetek. |
| 2 |
Java OO jellemzőinek megalapozása. Objektumok
és osztályok fogalmának bevezetése egyszerű példán (Complex szám),
attribútumok, metódusok jellemzői. String és tömb mint objektumok. |
| 3 |
Az objektum-orientáltság további elemei: öröklés,
kései kötés, metódusok felüldefiniálása, virtuális
függvények, absztrakt osztályok, interfészek. UML osztálydiagram alapelemei. |
| 4 |
Kivételkezelés Java
nyelven. Input-output kezelés Java nyelven, ennek objektumorientált megoldása
(InputStream, OutputStream, Reader, Writer és leszármazottaik). Pipe-ok,
filterek, File. |
| 5 |
Hatékony
szövegfeldolgozás Java nyelven: String osztály vonatkozó metódusai,
StringTokenizer, Scanner. |
| 6 |
Heterogén kollekció fogalma, használata. Az Object
osztály elemzése és metódusainak felüldefiniálása, klónozás (equals, clone,
stb.) |
| 7 |
Kollekciók keretrendszere az Object
használatával: Collection, List, Set, Map, Iterator, Iterable, Comparator, Comparable. Primitív
típusok wrapper osztályai, előnyök-hátrányok. |
| 8 |
Genericitás alapjai,
a kollekció keretrendszer generikussá tétele, az ezzel kapcsolatos
(öröklésből fakadó) problémák és megoldásaik. |
| 9 |
Alapvető utility
osztályok és használatuk: LocalDate, LocalTime, Calendar, Random, BigInteger,
BigDecimal, stb.). |
| 10 |
Annotációk
használata Java nyelven. Objektumok állapotának kimentése és visszatöltése
szabványos eszközökkel. |
| 11 |
Automatizált
tesztelés megvalósítása és végrehajtása Java környezetben. JUnit. JUnit
fogalmai, hibatípusok, closure-ök, stb. |
| 12 |
Szálkezelés
alapjainak bemutatása. Kölcsönös kizárás, szinkronizálás, jelzések küldése
kezelése. Szálbiztos kollekciók. Speciális szálosztályok
(java.util.concurrent) |
| 13 |
Kitekintés a
hatékony nyelvi eszközök irányába: lambda kifejezések, stream-ek, újabb Java
verziók újításai (var, stb). |
| 14 |
Kitekintés a nagyméretű rendszerek irányába:
Jakarta Enterprise Edition (JEE) alapjai. |
A
gyakorlatok (laborok) tematikája:
|
Gyakorlat |
Gyakorlat anyaga |
| 1 |
Ismerkedés
a fejlesztőezközzel (eclipse). Python példák Java nyelven. |
| 2 |
Egyszerű
OO alkalmazás készítése és tesztelése. Python függvények Java metódussá
alakítása. |
| 3 |
Örökléssel
kapcsolatos feladatok: ember-alkalmazott, stb. Interfészek és absztrakt
osztályok. |
| 4 |
I/O
feladatok: beolvasás különböző fájlokból, filterek és pipe-ok alkalmazása
(tömörítés, kódolás, stb.) |
| 5 |
Szövegfeldolgozó
alkalmazás készítése, kisméretű shell-szerű alkalmazás készítése. |
| 6 |
Heterogén
kollekció példája: állatkert, bevásárlás, stb. Klónozás gyakorlása. |
| 7 |
Kollekció-keretrendszer
feladatok: kis parancssori nyilvántartás készítése a List, Iterator,
Comparator gyakorlása. |
| 8 |
Kollekciós
feladat átalakítása generikussá. |
| 9 |
Kollekciós
feladat kibővítése naplózással, dátumkezeléssel, stb. |
| 10 |
Kollekciós
feladat kibővítése szabványos állapotmentéssel és -visszatöltéssel.
Hatékonyságvizsgálat. |
| 11 |
Előre
elkészített alkalmazáshoz JUnit tesztek készítése, futtatása, hibák javítása. |
| 12 |
Egyszerű termelő-fogyasztó
feladat megoldása többszálú alkalmazásban. |
| 13 |
HF beadása |
| 14 |
HF beadása |
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
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.