K-INFO
HU
EN
Belépés

Objektumorientált programozás

Object Oriented Programming
A tantárgyleírás hatályossága
Hatályosság kezdete:
2026. March 21.
Hatályosság vége:
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)
Kurzustípus elmélet gyakorlat laboratóriumi gyakorlat
óraszám (heti) 2 0 3
jelleg (kapcsolt/önálló) kapcsolt
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
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

Tantárgyprogram

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

A tantárgy célkitűzése az objektumorientált gondolkodásmód és az OO programozási nyelvek lehetőségeinek kihasználására való készség kialakítása, amihez a Java nyelv ad szintaktikai és szemantikai keretet. A tárgyat sikeresen elvégző hallgatók megismerik: ·         a típusos nyelvek és a Java szintaxis alapjait (konstrukciós szint - K4) ·         OO programozás alapelveit. Ezen belül az objektum fogalmát (az adatok és műveletek egységbezárása, információrejtés, láthatóság), az osztály és példány kapcsolatát (pl. konstruktor), az osztályhierarchia, öröklés fogalmát (késői kötés, metódusok felüldefiniálása,virtuális függvények, absztrakt osztályok, heterogén kollekció, interfészhasználat). (konstrukciós szint - K4) ·         Kivételkezelés alapjait (alkalmazás szint - K3) ·         Java I/O és serialization alapjait. (alkalmazás szint - K3) ·         Alapvető segédosztályok használatát (Scanner, Random, BigInteger, BigDecimal, szövegfeldolgozás) (konstrukciós szint - K4) ·         Genericitás alapjait (genericitás és öröklés, kollekció-keretrendszer). (konstrukciós szint - K4) ·         Szálkezelés alapjait (szál fogalma, 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) (alkalmazás szint - K3) ·         Automatizált tesztelés menetét Java nyelven (JUnit) (alkalmazás szint - K3)

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

Előadás és laboratórium. A házi feladat elkészítése során az adott feladattól függően az elérhető osztálykönyvtárak és megoldások használatához a szakirodalom önálló feldolgozására is szükség lehet.

Tanulástámogató anyagok

Online források
·        ; Kövesdán Gábor: Szoftverfejlesztés; Java SE platformon, SZAK Kiadó, 2014.; Nyékyné Dr. Gaizler Judit; (szerk.): Java 2 I-II. Útikalauz programozóknak 5.0, ELTE TTK Hallgatói; Alapítvány, 2009; Glenn Rowe: Java-programozás,; Panem Kiadó, 2002

A tantárgy teljesítéséhez ajánlott előzetes ismeretek

Tudás típusú kompetenciák
(azon előzetes ismeretek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
Programozás alapjai: egyszerű és összetett adatszerkezetek (változók, listák, fák), alapvető algoritmusok (kiválasztás, rendezés, rekurzió), vezérlési szerkezetek (szekvencia, iteráció, szelekció).
Képesség típusú kompetenciák
(azon előzetes képességek és készségek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
nincs
Ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák
(azon ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák összessége, amelyek jelentősen hozzájárulnak a tantárgy eredményes teljesítéséhez)
Programozás alapjai: egyszerű és összetett adatszerkezetek (változók, listák, fák), alapvető algoritmusok (kiválasztás, rendezés, rekurzió), vezérlési szerkezetek (szekvencia, iteráció, szelekció).
Általános szabályok
Követelmények: A szorgalmi időszakban: A laboratóriumi foglalkozásokon való megjelenés kötelező, az elmulasztott laborgyakorlatok nem pótolhatók. A laboratóriumi foglalkozáson a laborvezetők ellenőrző méréssel (az előírt feladatok egy megadott részének elkészülte) ellenőrzik a hallgatók felkészültségét. A félév teljesítésének feltétele, hogy az ellenőrző mérések legalább 2/3-a sikerrel záruljon. A félév során 6 előre meghirdetett alkalommal kis zárthelyi dolgozatot íratnak a laborvezetők. A kis zárthelyi dolgozatokból a 4 legeredményesebb eredményét (dolgozatonként 0-5 pont között) vesszük figyelembe. Ha valaki 4-nél kevesebb ellenőrző dolgozatot írt, akkor a meg nem írt dolgozatok eredményét 0-nak tekintjük. A dolgozatok egyéb időpontban nem pótolhatók. Minden hallgatónak egy nagy házi feladatot is meg kell oldania. A nagy házi feladatokat a 13. heti laboralkalom kezdetéig kell beadni. A házi feladatok pótlólagos beadására a 14. heti laboralkalom kezdetéig van mód. A félévelismerést jelentő félévközi jegy megszerzésére a következők együttes teljesülésekor van lehetőség: ·         a legjobb 4 kis zárthelyi dolgozat átlaga legalább 2,00, ·         az ellenőrző mérések legalább 2/3-a sikeres volt, ·         a nagy házi feladat a kiírás szerint elkészült, a laborvezető a kijelölt laboralkalommal személyesen átvette, ellenőrizte és elfogadta a hiánytalan dokumentációt és az elkészített programot, melyet együtt ki is próbáltak, ·         a hallgató a programozási laborgyakorlatokat rendszeresen látogatta (hiányzása nem haladja meg a TVSz szerint megengedett 30%-os mértéket). A fenti feltételek bármelyikének nem teljesülése esetén a félévközi jegy elégtelen ill. a tárgyat a hallgató nem teljesítette. A vizsgaidőszakban: Nincs Az osztályzat megállapításának módja: A 4 legjobb kis zárthelyi dolgozat pontszámának átlaga  határozza meg az alapot, amelytől a laborvezető legfeljebb 1,0 ponttal eltérhet a hallgató laborgyakorlatokon tanúsított felkészültsége, teljesítménye és aktivitása, valamint a házi feladat minősége alapján. Az így kialakuló pontszámnak az alsó egész része adja az érdemjegyet. Pótlási lehetőségek: Laboralkalmak és az ellenőrző mérések nem pótolhatók. A házi feladat kései beadására vagy pótlására legkésőbb a 14. heti laboralkalmon van lehetőség.
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
IMSc program: - IMSc pontok: -
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
Tantárgykövetelmények hatályosságának kezdete:
Tantárgykövetelmények hatályosságának vége:
Tantervi elhelyezés

Nincsenek rögzített tantervi elhelyezések ehhez a tárgyverzióhoz.