Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    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, Irányítástechnika és Informatika Tanszék
    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 rendek grafikus formában itt láthatók.

    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