K-INFO
HU
EN
Belépés

A programozás alapjai 3

Programming 3
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)
A programozás alapjai 3
Programming 3
Tantárgykód BMEVIIIAB00
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 2
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 5
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 https://www.iit.bme.hu/targyak/BMEVIIIAB00
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

Előadás

1.      Java alapok. Bevezető. Típusok, operátorok, utasítások. Objektumok, osztályok, Interfészek. Package-ek. Kivételkezelés, kódolási stílus.

2.      Java I/O. System Class. I/O Basics. I/O filters. Speciális osztályok: pipe, file. Serialization.

3.      Utilityk..(Scanner, Random, BigInteger, BigDecimal, szövegfeldolgozás).

4.      Java generikus osztályok. Genericitás és öröklés. Összevetés C++ generikus megoldásával. Megközelítések: heterogén kollekció, kasztolás, template.

5.      Java kollekciók.. Kollekció-keretrendszer. Collection, Iterator, List, ListIterator, Set, SortedSet, Map, SortedMap. Kollekciók kezelése (java.util.Collections).

6.      UML és Java kapcsolata. Asszociációk, aggregációk megvalósítása, jelölése. C++ visszatekintés (kompozíció, destruktor, deep és shallow copy)

7.      Szálkezelés. 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)

8.      Java GUI alapfogalmak. Componensek és konténerek, layout-ok. Esemény-kezelés. Alacsony szintű grafika.

9.      Speciális komponensek: menü, dialógbox, stb. Swing és AWT. Swing MVC modellje, JList, JTable, JTree.

10.  Automatizált tesztelés Java nyelven. JUnit.

11.  XML feldolgozása Javaban: SAX, DOM és JDOM.

12.  Naplózás. Log4J. Naplózási szintek. Nemzetköziesítés, lokalizáció.

13.  Kitekintés: relációs leképezés JPA-ban, hálózati kommunikáció, RMI.

Labor

1.      Eclipse alapok, intellisense, help, felépítés, projektfájlok.

2.      Hello World, parancssori fordítás, eclipse Java támogatás, csomagkezelés.

3.      Java öröklés, kivételek: C++ heterogén kollekciós vizsgapélda Java megoldása.

4.      Java IO gyakorlatok (beolvasás fájlból, kiírás, szerializálás, parancssori argumentumok)

5.      Java Util: kollekciókezelés, rendezés, iteráció.

6.      Java-UML kapcsolat gyakorlása, UML modellező eszközből egyszerű kódgenerálás.

7.      Java szálkezelés példa: termelő-fogyasztó, szinkronizálás.

8.      Swing alapok. Egyszerű SWING példa: titkosító alkalmazás (Caesar kódoló)

9.      SWING MVC: JTable feladat megoldása: rendezés, megjelenítés, speciális renderelés.

10.  Alacsonyszintű grafika: egyszerű vektorgrafikus alkalmazás készítése (kör, vonal, négyzetrajzolás)

11.  JUNIT példa: kész szoftver JUnit tesztjeinek előállítása, kipróbálása.

12.  (XML példa: feldolgozás, generálás.)

13.  Feladatbeadás

A tárgy alapvető célja, hogy alapozó tárgyként folytassa a számítógépes problémamegoldás módszereinek és alapvető eszközeinek előző félévekben megkezdett megismertetését olyan szinten, hogy azt a hallgatók további tanulmányaik során képesek legyenek hatékonyan alkalmazni. Ezen félév alapvető célkitűzése, hogy további gyakorlatokkal mélyítse az objektumorientált problémamegoldási képességet, megismertesse a hallagtókkal a Java programozási nyelvet, megismertesse a nagymértékben osztálykönyvtárak használatára épülő programfejlesztést, ezen belül az általános megoldásokon (kollekciók, IO, stb) túl speciális problémákra (szálkezelés, XML feldolgozás, grafika és GUI) nyújtott lehetőségeket. Cél továbbá a Szoftvertechnológia c. párhuzamos tárgyban tanult UML modellek Java nyelven való megvalósításának képessége is. Célkitűzését a tárgy az előző félévekben megszerzett C és C++ nyelvi tudásra alapozva, a Java nyelv megismertetésével éri el. A laborok anyaga folyamatosan követi az előadások tematikáját, azok mélyebb megértését teszi lehetővé.

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

Tanulástámogató anyagok

Online források
Előadásfóliák; Gyakorlati feladatsorok; Szoftverfejlesztés Java SE platformon, Kövesdán Gábor, Szak Kiadó, 2014.; Java útikalauz programozóknak,; ELTE TTK Hallgatói Alapítvány, Budapest; Glenn Rowe: Java programozás,; PANEM

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)
C++ programozási gyakorlat
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)
C++ programozási gyakorlat
Általános szabályok
Követelmények: a. A szorgalmi időszakban:   Az előadáson a jelenlét nem kötelező. 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 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árthelyit í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. Minden hallgatónak egy nagy házi feladatot is meg kell oldania. A nagy házi feladatokat a 13. heti laboralkalom végéig kell beadni. A házi feladatok pótlólagos beadására a 14. heti laboralkalom végéig különeljárási díj megfizetésével van mód. A félév elismeré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 félévközi jegy kiszámításának módja a következő: 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 alapján. Az így kialakuló pontszámnak az alsó egész része adja az érdemjegyet..   b. A vizsgaidőszakban:  Nincs. Pótlási lehetőségek: Az ellenőrző dolgozatok és a kis zárthelyik nem pótolhatók (az összes dolgozat maximum 2/3-a számít bele a végső jegybe). Az elmulasztott laborgyakorlatok nem pótolhatók. A házi feladatok pótlólagos beadására a 14. heti laboralkalom végéig különeljárási díj megfizetésével van mód. A pótlási héten – a laborvezető oktatóval egyeztetett időpontban – már csak olyan programok és/vagy dokumentációk pótolhatók, melyek hiányosság, vagy működési hiba miatt kerültek elutasításra. A pótlási héten túl a nagy házi feladat nem pótolható.
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: Az IMSc programban részt vevő hallgatók számára az előadásokon további elmélyülést biztosító irodalmat ajánlunk. Igény szerint ezek feldolgozásához a laborok alkalmával konzultációt is biztosítunk. A laboratóriumi gyakorlatokon a program hallgatói a megoldandó feladatok mellé további, a téma  mélyebb megértését és elsajátítását lehetővé tevő extra feladatokat kapnak. IMSc pontok: Az utolsó három számonkérésen extra IMSc feladatot biztosítunk, amelyre az adott számonkérés alapfeladataira elérhető pontszám 30%-át lehet kapni. Az extra IMSc feladatokat csak akkor javítjuk, ha az adott számonkérést beleértve a megelőző kiszh-k közül a 4 legjobb esetében a hallgató átlagosan a megszerezhető pontok legalább 80%-át megszerezte.  A három utolsó kisZH extra IMSc feladataira kapott pontok közül a két legnagyobb értékű számít. Ezek összegéből egyenes arányosítással áll elő a tárgyból megszerezhető maximum 25 IMSc pont. Az IMSc pontok megszerzése a programban nem résztvevő hallgatók számára is biztosított.
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.