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ó    

    Programozás 2

    A tantárgy angol neve: Programming 2

    Adatlap utolsó módosítása: 2017. június 21.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar

    BME Természettudományi Kar

    Fizikus alapképzés (BSc) Szak
    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIEEA026 2 2/0/2/f 4  
    3. A tantárgyfelelős személy és tanszék dr. Pohl László,
    4. A tantárgy előadója

    Név:

    Beosztás:

    Tanszék, Int.:

    Kohári Zsolt

    tudományos segédmts

    Elektronikus Eszközök T.

    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
    Ajánlott:

    Kötelező:

    vieea024 Programozás c. tárgyból kreditpont megszerzése.

    Viiia114 A programozás alapjai 2, Viaua116 A programozás alapjai 2, VIIIAA00 A programozás alapjai 2, VIAUAA00 tárgyakból megszerzett kredit kizárja a tárgyfelvételt.

    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, hasonlóan gyakorlatias felfogásban, 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 az objektum-orientált programozás alapvető elveinek, és gyakorlati alkalmazásának elsajátítása, amit a C++ nyelv megismertetésével ér el, kifejezetten a fizikus hallgatók igényeihez szabva. 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

    1. hét:  Áttekintés, C ismétlés, függvényhívás menete, const, make, profiling célja és lehetőségei.

    2. hét: Számábrázolási kérdések szimulációkban, pontatlanság, instabilitás, inf, NaN, különböző valós típusok, illeszkedő függvényváltozatok.

    3. hét: Függvény overload, alapértelmezett (default) argumentumok, makrók kiváltása inline függvénnyel, referenciatípus, dinamikus memóriakezelés: new, new[], delete, delete[].

    4. hét: Objektum-orientált programozás alapfogalmai, elvei, objektum, osztály, tagváltozók és tagfüggvények, a this pointer, egységbezárás, láthatóság és adatrejtés (komplex szám osztály).

    5. hét: Konstruktorok és destruktor, kivételkezelés, operátor overload tagfüggvénnyel és globális függvénnyel (racionális szám osztály).

    6. hét: Dinamikus adattaggal rendelkező osztályok, másoló konstruktor, értékadó operátor, destruktor. (vektor és mátrix osztály)

    7. hét: Tagváltozók inicializálása, konstans és statikus tagok, névterek, C++-os I/O, >> és << operátorok overload-ja.

    8. hét: Standard Template Library (STL) vector használata, alkalmazási példák, vector és egyszerű C tömb viselkedése mint paraméter/visszatérési érték.

    9. hét: STL string, vector algoritmusok (find, sort, transform, accumulate ...), további alkalmazási példák.

    10. hét: Függvény- és osztálysablonok.

    11. hét: Öröklés I. Célok, származtatott osztály, alaposztály, láthatóság, konstruktorok/ destruktorok.

    12. hét: Öröklés II. Virtuális függvények, absztrakt osztályok, virtuális destruktor, heterogén kollekció.

    13. hét: Kitekintés, a C++11 néhány érdekesebb eleme.

    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

    A tárgy heti kétórás előadásból és heti kétórás számítógépes laboratóriumi gyakorlatból áll. A laborgyakorlat célja az előadáson elmondottak elmélyítése, gyakorlati kipróbálása, objektumorientált programozási szemlélet kialakítása.

    10. Követelmények

    A tárgyból heti 1 alkalommal 2 órás előadást és 2 órás laborgyakorlatokat tartunk. A laborgyakorlatokon a megjelenés kötelező, a részvételt minden alkalommal ellenőrizzük. A laborgyakorlatokon a felkészültséget ún. beugróval ellenőrizhetjük, amelynek anyaga az adott labor előadáson már bemutatott anyagával kapcsolatos. A beugró lehet teszt, házi feladat vagy órai feladat is. Az elégtelen felkészültség mulasztott laboralkalomnak számít.

    A félév során a laborgyakorlatok alkalmával 5 kis zárthelyit íratunk “röp-zh” jelleggel. Ezeknek a pótlására nincs lehetőség, az elmulasztott kis zh-k eredményét 0-nak tekintjük. A három legeredményesebb kiszh átlaga számít. A félév során a dékáni hivatal ütemezése szerinti időpontban egy nagy zárthelyi dolgozatot íratunk. A nagy zárthelyi dolgozat megírása kötelező. A nagy zárthelyi dolgozat megírására 1 pótlási lehetőséget biztosítunk a pótlási időszak végéig. Főszabály szerint további pótlási lehetőség nincs.

    A félév 6. hetében nagy házi feladat kiadására kerül sor a laborgyakorlatok alkalmával. A feladat beadása a szorgalmi időszak utolsó hetében, a laborgyakorlaton esedékes. Késedelmes feladatbeadás a pótlási időszak szerdáig lehetséges különeljárási díj megfizetése mellett.

     

    A félév elfogadásának és a félév végi jegy megadásának a feltétele:

    Aláírást az kaphat,

    ·    aki a laborgyakorlatokról nem hiányzott többet, mint a TVSZ-ben meghatározott mérték (30%),

    ·    akinek a 3 legjobb kis zárthelyi dolgozat eredményéből számított átlaga legalább elégséges,

    ·    aki legalább elégséges osztályzatot szerzett a nagy zárthelyi dolgozatával, és

    ·       aki a szorgalmi időszakon belül beadta a nagy házi feladatát és arra legalább elégséges osztályzatot kapott.

     

    Félévközi jegyet az szerezhet, aki aláírást is szerzett. A félévközi jegy mind a kis zh-k, mind a nagy zh, mind a nagy házi feladat eredményétől függ, a következők szerint:

     

    ·    nagy zh eredménye:                                 35%    súllyal,

    ·    a 3 legjobb kis zh átlaga:                         35%    súllyal,

    ·       a nagy házi feladatra kapott osztályzat: 30%    súllyal.

     

     

    Az így kialakuló osztályzatot a gyakorlatvezetők a hallgatóknak a laborfoglalkozásokon tanúsított aktivitása alapján, saját belátásuk szerint +/– 0.5 jeggyel módosíthatják. 

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

    A nagy zárthelyi dolgozat megírására 1 pótlási lehetőséget biztosítunk a pótlási időszak végéig. Főszabály szerint további pótlási lehetőség nincs. Laborgyakorlaton való részvétel valamint a kis ZH-k pótlására nincs lehetőség.

     

    Házi feladat késedelmes beadása a pótlási időszak szerdáig lehetséges különeljárási díj megfizetése mellett. 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 pótlások általános szabályai tekintetében az aktuális TVSZ az irányadó.

    12. Konzultációs lehetőségek

    Konzultáció e-mailen, illetve a hallgatók igénye szerint személyesen, az előadóval, gyakorlatvezetővel egyeztetve.

    13. Jegyzet, tankönyv, felhasználható irodalom

    Jegyzet (nyomtatott):

    •   Benedek Zoltán, Levendovszky Tihamér: Szoftverfejlesztés C++ nyelven, SZAK kiadó, 2007

    Elektronikusan elérhető segédanyag:

    • Kondorosi Károly, Szirmay-Kalos László, László Zoltán, Objektum orientált szoftverfejlesztés, 6. fejezet (http://www.tankonyvtar.hu/hu/tartalom/tkt/objektum-orientalt/adatok.html) 

    Ajánlott irodalom haladóknak:

    • B. Stroustrup: The C++ programming language Addison-Wesley, 3rd Edition, 2000 /Bjarne Stroustrup: A C++ programozási nyelv, Kiskapu, 2001
    • Andrei Alexandrescu, Herb Sutter: C++ kódolási szabályok, Kiskapu, 2005
    • Scott Meyers: Hatékony C++, 50 jó tanács programjaink és programterveink javítására, SCOLAR KFT, 2003
    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka

    Kontakt óra

    56

    Készülés előadásokra

    7

    Készülés gyakorlatokra

    0

    Készülés laborra

    14

    Készülés zárthelyire

    16

    Házi feladat elkészítése

    27

    Önálló tananyag-feldolgozás

    0

    Vizsgafelkészülés

    0

    Összesen

    120

    15. A tantárgy tematikáját kidolgozta

    Név:

    Beosztás:

    Tanszék, Int.:

    Kohári Zsolt

    Tudományos segédmunkatárs

    Elektronikus Eszközök T.

    Dr. Czirkos Zoltán

    egyetemi adjunktus

    Elektronikus Eszközök T.

    Dr. Pohl László

    egyetemi adjunktus

    Elektronikus Eszközök T.