A programozás alapjai 2.

A tantárgy angol neve: Basics of Programming 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.
Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIIIA114   2/2/0/f 4  
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( "BMEVIEEA100" , "jegy" , _ ) >= 2
VAGY
TárgyEredmény( "BMEVIEE1239" , "jegy" , _ ) >= 2
VAGY
TárgyEredmény( "BMEVIMH1506" , "jegy" , _ ) >= 2 )

ÉS
TárgyEredmény( "BMEVIIIA115" , "jegy" , _ ) >= 2 )

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


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

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


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:

  • VIEEA110 Programozás alapjai 1 c. tárgyból kredit pontot szerzett
  • VIEE1239 Programozás alapjai I c. tárgyból kredit pontot szerzett
  • VIMH1506 Programmplanung I.c. tárgyból kredit pontot szerzett

 

7. A tantárgy célkitűzése

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évben 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 a C programozási nyelv ismeretét, megismertesse a nagyméretű programozási feladatok megoldásának lépéseit, és bevezessen az objektum-orientált programozásba.

Célkitűzését a tárgy az előző félévben megszerzett C nyelvi tudásra alapozva, a C++ nyelv megismertetésével éri el. A gyakorlatok anyaga folyamatosan követi az előadások tematikáját, azok mélyebb megértését teszi lehetővé.

A tárghoz szorosan kapcsolódik a Szoftver labor 2 c. tárgy (VIIIA115), mely laborgyakorlatokkal segíti a megszerzet ismeretek elmélyítését.

8. A tantárgy részletes tematikája Fő témakörök:
  • C++ nyelv származtatása a C-ből
    • Makró (inline), konstans megvalósítás, típusértékű struct, enum; prototípusok, default argumentumok és függvény overload.
    • Memória allokáció, new, delete, new_handler; referencia típus, függvény paraméterek és visszatérési érték, cin, cout, cerr objektumok; adatok láthatóság és érvényessége.
  • Objektum-orientált programozás alapjai C++ környezetben.
    • Objektum-orientált programozás alapfogalmai, elvei, objektum fogalma. Osztály, fogalma, egységbezárás, védelem és információtakarás.
    • Tagfüggvények típusai, védelem enyhítése, friend mechanizmus. Konstruktor, destruktor, adatok (objektumok) inicializálása, this pointer használata.
    • Operátorok értelmezésének kiterjesztése: operátor overload fogalma. Dinamikusan allokált mezővel rendelkező objektumok értékadása és inicializásása, másoló konstruktor.
    • Operátorok értelmezésének kiterjesztése tagfüggvénnyel és friend mechanizmussal. Referencia típussal visszatérő függvény mint balérték (index operátor).
    • Az öröklés szerepe az objektumorientált programozásban. Öröklés, származtatott osztály, alaposztály. Védelem öröklés alatt. Virtuális függvények, fordítási és késői összerendelés, inicializálás; többszörös öröklés. Virtuális alaposztály. Objektumok mint más objektumok attribútumai. Objektum tömbök.
    • Generikus adatszerkezetek jelentősége. Dinamikus adatstruktúrák, generikus osztályok.
  • Problémamegoldás objektum-orientált és nem objektum-orientált szemlélettel:
    • Adat, algoritmus, program.
    • Szoftverkészítés, programfejlesztés.
    • Strukturált tervezés, modularitás, dekompozíció.
    • Funkcionális dekompozició, absztrakt adat, adat-orientált dekompozíció.
  • Operációs rendszerek és fejlesztést támogató eszközök használatának alapvető ismerete.
9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium) A tárgyból heti 1 alkalommal 2 órás előadást tartunk a teljes évfolyamnak és heti 2 óra tantermi gyakorlatot tartunk 20-30 fős hallgatói csoportok (tanulókörök) számára. Az előadáshoz és a tantermi gyakorlatokhoz a Szoftver laboratórium 2 című tárgy laborfoglalkozásai szorosan csatlakoznak.
10. Követelmények

A tárgyból hetente 2 óra előadást és 2 óra tantermi gyakorlatot tartunk az órarend szerinti helyeken és időben.

A szorgalmi időszak alatt 1 alkalommal az évfolyam terhelési táblázata szerinti időpontban nagy zárthelyi dolgozatot íratunk.

A nagy zárthelyi dolgozaton túl a félév során legalább 5 db ellenőrző dolgozat megíratására is sor kerül. 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.

A felkészülést egyéni szorgalmi feladatok is segítik, melyek megoldása nem kötelező. A határidőre és sikeresen megoldott szorgalmi feladatokkal egy-egy extra pont szerezhető, amelyeket a félévközi jegy kialakításánál veszünk figyelembe.

A félévközi jegy megszerzésének feltétele:

  • legalább elégséges (pót)zárthelyi,
  • legalább elégséges ellenőrző dolgozat átlag (>2,00),
  • valamint a gyakorlatokon való részvétel.
A hiányzások maximális mértéke - a TVSz előírásainak megfelelően - a gyakorlatokon 30%, az előadásokon 50%.

A félévközi jegy a nagy zárthelyi osztályzatának és a 3 legjobb ellenőrző dolgozat átlagának súlyozott átlaga. A nagy zárthelyi eredményét 2-szeres súllyal, az ellenőrző dolgozatok átlagát pedig 1-szeres súllyal vesszük figyelembe. Az így kialakult érték +/-1 jeggyel korrigálható figyelembe véve a szorgalmi feladatokkal szerzett extra pontokat és a gyakorlatokon nyújtott folyamatos teljesítményt.

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

Elégtelen nagy zárthelyi egyetlen alkalommal alanyi jogon pótolható.

Elmaradt ellenőrző dolgozat, illetve határidőre nem teljesített szorgalmi feladat nem pótolható, azokat 0 értékkel vesszük figyelembe.

A félév végén az elégtelen (pót)zárthelyi vagy az elégtelen ellenőrző dolgozatátlag a pótlási héten - különeljárási díj megfizetése mellett -  egyetlen alkalommal pótolható. A TVSz 16.§ (3) rendelkezése értelmében a félévközi jegy megszerzéséhez szükséges két jegy közül csak az egyik (zárthelyi vagy az ellenőrző dolgozatok átlaga) pótolható.

12. Konzultációs lehetőségek Konzultációt a tantermi gyakorlatok tanulócsoportjai szintjén szervezünk a tanulócsoportok igénye szerint.
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:
  • Benedek Zoltán - Levendovszky Tihamér: Szoftverfejlesztés C++ nyelven (SZAK, 2007)
  • B. Stroustrup: A C++ programozási nyelv (Kiskapu, 2001)
  • 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)
14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
Kontakt óra56
Félévközi készülés órákra24
Felkészülés zárthelyire20
Házi feladat elkészítése-
Kijelölt írásos tananyag elsajátítása20
Vizsgafelkészülés-
Összesen120
15. A tantárgy tematikáját kidolgozta
Dr. Szeberényi Imreegyetemi docensIIT
Dr. Poppe Andrásegyetemi docensEET
Dr. Levendovszky TihaméradjunktusAUT