Szoftver laboratórium 2.

A tantárgy angol neve: Software Laboratory 2.

Adatlap utolsó módosítása: 2012. február 10.

Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar
mérnök-informatikus szak, BSc. alaptárgy
Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIIIA115   0/0/2/f 2  
3. A tantárgyfelelős személy és tanszék Dr. Szeberényi Imre,
A tantárgy tanszéki weboldala http://infocpp.iit.bme.hu/
4. A tantárgy előadója
Dr. Szeberényi Imreegyetemi docensIIT
5. A tantárgy az alábbi témakörök ismeretére épít A C programozási nyelv ismerete
6. Előtanulmányi rend
Kötelező:
(TárgyEredmény( "BMEVIEEA112" , "jegy" , _ ) >= 2
VAGY TárgyEredmény( "BMEVIIIA114" , "jegy" , _ ) >= 2 )

ÉS NEM (TárgyEredmény( "BMEVIIIAA00" , "jegy" , _ ) >= 2
VAGY
TárgyEredmény("BMEVIIIAA00", "FELVETEL", AktualisFelev()) > 0
VAGY
TárgyEredmény( "BMEVIIIAA03" , "jegy" , _ ) >= 2
VAGY
TárgyEredmény("BMEVIIIAA03", "FELVETEL", AktualisFelev()) > 0)


ÉS Training.Code=("5N-A8")
VAGY Training.Code=("5N-MGAIN")

A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

Ajánlott:

A kötelező előtanulmányi rend alapján a tárgyat csak azok vehetik fel, akik az alábbi követelmények valamelyikét teljesítik:

  • VIIIA112 Programozás alapjai 2 c. tárgyból kredit pontot szerzett, vagy azt az aktuális félévben felvette
  • VIEEA112 Programozás alapjai II c. tárgyból kredit pontot szerzett
  • VIEE1240 Programozás alapjai II c. tárgyból kredit pontot szerzett
  • VIMH1507 Programmplanung II.c. tárgyból kredit pontot szerzett
7. A tantárgy célkitűzése A tantárgy célkitűzése, hogy a hallgatók megfelelő gyakorlati jártasságot szerezzenek a Programozás alapjai 2 c. tárgy előadásain és tantermi gyakorlatain megismert módszerek kipróbálása és begyakorlása által, annak érdekében, hogy a megszerzett ismereteket további tanulmányaik során hatékonyan, készség szinten képesek legyenek alkalmazni az objektum-orientált programok C++ nyelven történő megvalósítása során. A laborgyakorlatok kiemelt célja, hogy a megismert fejlesztőeszközök és fejlesztőkörnyezet használatát begyakoroltassa.

Az anyag jobb elsajátítása érdekében a hallgatóknak több kisebb és egy nagyobb házi feladatot is meg kell oldaniuk.

8. A tantárgy részletes tematikája
  • Fejlesztési környezet megismerése, gyakorlás. Modulok, könyvtárak használata, készítése. 
  • Függvény overload gyakorlása. Default argumentumok gyakorlása.
  • Referencia típus gyakorlása. Konstansok.
  • Előkészületek az objektumok és osztályok megértéséhez: (pl. dinamikus adatot tartalmazó struktúra és hozzá tartozó globális függvények elkészítése).
  • Előkészített struktúrából osztály létrehozása. Egységbezárás hatásának bemutatása.
  • Osztályok és tagfüggvényeik (konstruktorok, destruktor, operatorok) gyakorlása. Kivételkezelés bevezetése. Házi feladat kiadása.
  • Tárolók létrehozása, gyakorlás.
  • Öröklés különböző módjainak és hatásainak gyakorlása.
  • Virtuális tagfüggvények.
  • Mutató konverzió. Heterogén kollekció.
  • Többszörös öröklés gyakorlása. Egyszerű példák a perzisztencia megvalósítására.
  • Generikus szerkezetek, generikus algoritmusok.
  • Iterátorok használata és szerepe. Alapvető STL fogalmak,  STL tárolók gyakorlása.
  • Házi feladatok ellenőrzése, beszedése.
9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

A tárgyból számítógépes laboratóriumi foglalkozásokat tartunk a Hallgatói Számítóközpont (HSZK) termeiben részben MS Windows *, részben UNIX környezetben, az órarend szerinti időpontokban, kiscsoportos (12-20 fős) oktatással. A laborgyakorlatok szorosan egymásra épülnek. Több alkalommal a megelőző gyakorlaton megkezdett feladatot, vagy a tantárgyhoz kapcsolódő weblapról letölthető programvázat kell felhasználni. 

10. Követelmények

A laboratóriumi foglalkozásokon való megjelenés kötelező, az elmulasztott laborgyakorlatok nem pótolhatók.

A foglalkozások anyaga szorosan kapcsolódik a Programozás alapjai (VIIIA114) c. tárgy megelőző heti anyagaihoz, melyek tárgyhoz kapcsolódó weblapon elérhetők. Azok ismerete, folyamatos követése a laborgyakorlatok sikeres elvégzésének előfeltétele.

A laboratóriumi foglalkozások előtt a laborvezetőknek lehetősége van a hallgatók felkészülését ellenőrizni. Elégtelen felkészülés esetén a hallgató laborgyakorlatot nem folytathatja. Az adott alkalom mulasztott laborgyakorlatnak számít.

A félév során legalább 5 előre meghirdetett alkalommal ellenőrző dolgozatot íratnak a laborvezetők. Az ellenőrző dolgozatokból a 3 legeredményesebb eredményének átlagát képezzük. Ha valaki 3-nál kevesebb ellenőrző dolgozatot írt, akkor a meg nem írt dolgozatok eredményét 0-nak tekintjük.

Az ellenőrző dolgozatokon kívül minden hallgatónak egy nagy házi feladatot is meg kell oldania. A nagy házi feladatokat a terhelési táblázat szerint a 6. héten adjuk ki, és a 13. héten kell beadni a megoldásokat. A megoldások pótlólagos beadására – a laborvezető oktatóval egyeztetett időpontban – a pótlási hét végéig (utolsó napon 12:00 óráig), különeljárási díj megfizetésével van mód, azon túl a nagy házi feladat nem pótolható. A pótlási héten már csak olyan feladatok é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 felkészülést ill. a gyakorlást a laborvezetők ún. kis házi feladatok kiadásával is segítik. Ezek megoldása nem kötelező, határidő után nem pótolhatók, ugyanakkor alkalmasak a hallgatói aktivitás mérésére.

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:

  • az ellenőrző dolgozatok átlaga legalább elégséges (>2,00), és
  • a nagy házi feladat a kiírás szerint elkészült, a laborvezető 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 3 feltétel 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 3 legjobb ellenőrző dolgozat osztályzatának átlaga és a nagy házi feladatra kapott osztályzat számtani közepe határozza meg a jegyet, amelyet +/- 1 jeggyel módosíthat a laborvezető a hallgató laborgyakorlatokon tanúsított felkészültsége, teljesítménye és aktivitása (pl. kis feladatok) alapján.

11. Pótlási lehetőségek

Az ellenőrző dolgozatok, kis házi feladatok és az elmulasztott laborgyakorlatok nem pótolhatók.

A nagy házi feladat pótlására – a laborvezető oktatóval egyeztetett időpontban – a pótlási hét végéig (utolsó napon, 12:00 óráig), különeljárási díj megfizetésével van mód, azon túl a nagy házi feladat nem pótolható.

A pótlási héten már csak olyan feladatok és/vagy dokumentációk pótolhatók, melyek hiányosság vagy működési hiba miatt kerültek elutasításra.

12. Konzultációs lehetőségek Konzultációra a laborfoglalkozások alkalmával, illetve a laborvezetőkkel történő külön megbeszélés alapján van lehetőség.
13. Jegyzet, tankönyv, felhasználható irodalom Bármely az objektum-orientált programozással és a C++ programozási nyelvvel foglalkozó könyv vagy jegyzet használható. Ajánlott irodalom:
  • B. Stroustrup: A C++ programozási nyelv (Kiskapu, 2001)
  • Benedek Zoltán - Levendovszky Tihamér: Szoftverfejlesztés C++ nyelven (SZAK, 2007)
  • Nyisztor Károly: Gyakorlati C++, Kossuth Kiadó, 2004
  • Kondorosi Károly - László Zoltán - Szirmay-Kalos László: Objektum-orientált szoftverfejlesztés (CompuerBooks, 2004)
  • Benkő Tiborné - Poppe András: "Együtt könnyebb a programozás" sorozat: Objektum-orientált C++ (CompuerBooks, 2004)
  • UNIX – A rendszer használata - Szeberényi Imre, Ketler Iván, Szigeti Szabolcs (PANEM 2004)
14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
Kontakt óra28
Félévközi készülés órákra-
Felkészülés zárthelyire-
Félévközi készülés órákra, ellenőrző feladatokra10
Házi feladat elkészítése22
Vizsgafelkészülés-
Összesen60
15. A tantárgy tematikáját kidolgozta
Dr. Szeberényi Imreegyetemi docensIIT
Dr. Poppe Andrásegyetemi docensEET
Dr. Levendovszky Tihamér adjunktusAUT