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: 2014. február 3.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar
    Budapesti Műszaki és Gazdaságtudományi EgyetemVillamosmérnöki és Informatikai KarVillamosmérnöki SzakBSc. képzésKötelező

     

    Kötelező

     

    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIAUA116   2/0/2/f 4  
    3. A tantárgyfelelős személy és tanszék Dr. Forstner Bertalan, Automatizálási és Alkalmazott Informatikai Tanszék
    A tantárgy tanszéki weboldala http://www.aut.bme.hu/Portal/Targy.aspx?courseId=94fbb184-dca9-4495-8ec2-d90f74a0132d
    4. A tantárgy előadója
    Név:Beosztás:Tanszék, Int.:
    Dr. Forstner BertalandocensAutomatizálási és Alkalmazott Informatikai Tanszék
    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( "BMEVIHIA106" , "jegy" , _ ) >= 2
    VAGY TárgyEredmény( "BMEVIET1015" , "jegy" , _ ) >= 2
    VAGY TárgyEredmény( ahol a TárgyKód = "BMEVIMH1506", ahol a Típus = "JEGY", ahol a Ciklus = tetszőleges, ahol a KépzésKód = tetszőleges) >= 2 )
    ÉS NEM ( TárgyEredmény( "BMEVIAUAA00" , "jegy" , _ ) >= 2
    VAGY
    TargyEredmeny("BMEVIAUAA00", "FELVETEL", AktualisFelev()) > 0)

    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:

    vihia106 A programozás alapjai 1. c. tárgyból kreditpont megszerzése

     

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

    A tárgy alapvető célja, hogy alapozó tárgyként folytassa 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 laborok anyaga folyamatosan követi az előadások tematikáját, azok megértését, elmélyítését támogatja.

    8. A tantárgy részletes tematikája C++ mint a C javított változata
    • Az előző félévi anyag rendszerező összefoglalása. Függvényhívás alacsony szinten. Referenciatípus.
    • Függvénynév túlterhelése (overload). Alapértelmezett (default) függvényargumentumok. Makrók kiváltása inline függvénnyel.
    Objektum-orientált programozás alapjai a C++ nyelv bemutatásával
    • Objektum-orientált programozás alapfogalmai, elvei, objektum fogalma. Osztály, egységbezárás, láthatóság és információrejtés fogalma. Tagváltozók és tagfüggvények. A this pointer.
    • Konstruktorok és destruktorok. Dinamikus memóriakezelés: new, new[], delete, delete[]. Dinamikus adattagokat karbantartó osztályok.
    • Tagváltozók inicializálása. Konstans és statikus tagok. A láthatóság enyhítése: friend mechanizmus. Névterek. Bevezetés a C++ I/O-ba. Névterek.
    • Operátorok túlterhelésének fogalma. Operátorok túlterhelésének megvalósítása tagfüggvénnyel és globális függvénnyel. Megkötések.
    • Az öröklés szerepe az objektumorientált programozásban. Öröklés, származtatott osztály, alaposztály. Az öröklés hatása a láthatóságra. Konstruktorok és az öröklés.
    • Behelyettesíthetőség. Virtuális függvények, absztrakt osztályok. Korlátozó öröklés. Virtuális destruktorok.
    • Többszörös öröklés, virtuális alaposztályok. Konstruktorok és destruktorok automatikus feladatai.
    • Típuskonverziók. C++ konverziós operátorok.
    • Kivételkezelés.
    • Generikus adatszerkezetek jelentősége. Függvény- és osztálysablonok.
    • Standard Template Library (STL): tárolók és algoritmusok. Bonyolultságelméleti megfontolások.
    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

    Előadás, laboratórium

    10. Követelmények

    a. A szorgalmi időszakban:

    (1) A folyamatos tananyagkövetést a laborgyakorlatokon íratott kis zárthelyikkel (5 db) és beugró feladatokkal ellenőrizzük.

    (2) Az ismeretek átfogó és részletes áttekintését a szorgalmi időszak alatt 1 alkalommal, az évfolyam terhelési táblázata szerinti időpontban íratott nagy zárthelyivel mérjük, valamint (3) az ismeretek alkalmazását és készségszintű megértését elősegítő nagy házi feladatot adunk ki, amely átfogja a programtervezés, az algoritmizálás, tesztelés és dokumentálás valamennyi fázisát.

    A félév elismerést jelentő félév végi jegy megszerzésére akkor van lehetőség, ha

    · A nagyzárthelyi eredménye legalább elégséges

    · A három legjobb kis zárthelyi átlaga egyenként legalább elégséges (40%), az összesített eredményük legalább 66%-os (ebbe az összes megírt kisZH pontszámát beleszámítjuk, nemcsak a lejobb 3-ét) 

    · a nagy házi feladat a kiírás szerint elkészült, a gyakorlatvezető személyesen átvette és elfogadta: (a) a hiánytalan dokumentációt, (b) az elkészített programot, melyet együtt ki is próbáltak. A nagy házi feladatra pontszám/jegy nem adható.

    · a hallgató a laborok 70%-án részt vett (TVSz 13.§ (8)). A részvételt a laborvezető úgynevezett beugró feladat megoldásához kötheti, amelynek sikertelensége esetén a hallgató nem vehet részt a laboron, az hiányzásnak számít.

     

    A fenti feltételek bármelyikének nem teljesülése esetén a félév végi jegy elégtelen /TVSz 13.§ (5a)/. Amennyiben a fenti feltételek teljesülnek, a félév végi jegy kialakítása a következő:

    A kis zárthelyik átlaga a 3 legjobb kis zárthelyi átlaga. 

    Az érdemjegy kialakítása a kis zárthelyik átlagának, illetve a nagy zárthelyinek a súlyozott átlaga, ahol a nagy zárthelyi kétszeres , a többi egyszeres súllyal számolandó.

     

    A kis ZH-k átlagát a laborvezetők saját belátásuk szerint +/-0,5 jeggyel módosíthatják figyelembe véve a hallgatók laborfoglalkozásokon tanúsított folyamatos teljesítményét és az elvégzett feladatok megoldásainak minőségét.

    11. Pótlási lehetőségek
    • Elégtelen nagyzárthelyi egyetlen alkalommal pótolható a pótlási héten megírandó pótzárthelyivel, vagy arról való igazolt távollét esetén a vizsgaidőszak első hetére ütemezett pótpótzárthelyivel, abban az esetben, ha a házi feladat a pótlási héten megjelölt időpontig elfogadásra került 
    • A nagy házi feladat pótlására – az oktatóval egyeztetett időpontban – a pótlási hét szerda délig, 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 Igény szerint előadóval/laborvezetővel egyeztetve.
    13. Jegyzet, tankönyv, felhasználható irodalom
    • Benedek Zoltán, Levendovszky Tihamér: Szoftverfejlesztés C++ nyelven, SZAK kiadó, 2007
    • Nyisztor Károly: Gyakorlati C++, Kossuth Kiadó, 2004
    • B. Stroustrup: The C++ programming language Addison-Wesley, 3rd Edition, 2000 /Bjarne Stroustrup: A C++ programozási nyelv, Kiskapu 2001
    • Tóth Bertalan: Programozzunk C++ nyelven, ComputerBooks, 2003
    • Benkő Tiborné, Benkő László: Programozási feladatok és algoritmusok Turbo C és C++ nyelven, ComputerBooks, 1997
    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ákra20
    Felkészülés zárthelyire20
    Házi feladat elkészítése24
    Összesen120
    15. A tantárgy tematikáját kidolgozta

    Név:

    Beosztás:

    Tanszék, Int.:

    Dr. Jereb László

    egyetemi tanár

    Hálózati Rendszerek és Szolgáltatások Tanszék

    Dr. Németh Pál

    adjunktus

    Elektronikai Technológiai Tanszék

    Dr. Szeberényi Imre

    egyetemi docens

    Irányítástechnika és Informatika Tanszék

    Dr. Tevesz Gábor

    egyetemi docens

    Automatizálási és Alkal­ma­zott Infor­ma­tikai Tanszék

    Dr. Forstner Bertalan

    egyetemi docens

    Automatizálási és Alkalmazott Informatikai Tanszék

    Dr. Levendovszky Tihamér

    adjunktus

    Automatizálási és Alkal­ma­zott Infor­ma­tikai Tanszék