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 II.

    A tantárgy angol neve: Basics of Programming II.

    Adatlap utolsó módosítása: 2006. július 1.

    Tantárgy lejárati dátuma: 2013. június 30.

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

    Műszaki Informatika Szak

    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIEE1240 2 0/2/0/f 2 2/2
    3. A tantárgyfelelős személy és tanszék Dr. Poppe András,
    4. A tantárgy előadója

    Név:

    Beosztás:

    Tanszék, Int.:

    Dr. Poppe András

    egyetemi docens

    EET

    Vitéz András

    egyetemi adjunktus

    HIT

    Dr. Szeberényi Imre

    főtanácsos

    IIT

    Dr. Vajk István

    egyetemi docens

    AUT

    A tantárgy előadója évente változik a tanszékek közötti munkamegosztásnak megfelelően. 2004-ben az előadó Szeberényi Imre.

    5. A tantárgy az alábbi témakörök ismeretére épít

    Programozás alapjai 1. félév (viee1239)

    6. Előtanulmányi rend
    Kötelező:
    TárgyEredmény( "BMEVIEE1226" , "jegy" , _ ) >= 2 VAGY TárgyEredmény( "BMEVIHI1226" , "jegy" , _ ) >= 2 VAGY TárgyEredmény( "BMEVIAU1226" , "jegy" , _ ) >= 2 VAGY TárgyEredmény( "BMEVIMH1506" , "jegy" , _ ) >= 2 VAGY TárgyEredmény( "BMEVIMH1501" , "jegy" , _ ) >= 2 VAGY TárgyEredmény( "BMEVIEE1239" , "jegy" , _ ) >= 2

    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:

    Programozás alapjai 1. félév, (kötelező)
    Számítógép labor 1. félév (ajánlott)

    Tematikaütközés miatt a tárgyat csak azok vehetik fel, akik korábban nem hallgatták a következő tárgyakat:

    -

    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, bevezessen az objektum-orientált programozásba. Ezt a tárgy az előző félévben megszerzett C nyelvi tudásra alapozva, a C++ nyelv megismertetésével éri el.

    További cél, hogy részletesen megismertessen egy elterjedten alkalmazott többfelhasználós operációs rendszer felhasználói és programozói felületével, általános célú eszközeivel, valamint a hordozható programok írásának szabályaival. Ezt a UNIX operációs rendszer adta programfejlesztési lehetőségek bemutatásával éri el.

    8. A tantárgy részletes tematikája

    A célkitűzésnek megfelelően a tárgy két fő témára koncentrál:

    I. UNIX rendszer eszközei, lehetőségei

    • A UNIX operációs rendszer felépítése, védelmi és állományrendszere.
    • Az alapvető Unix parancsok. Shell feladata, egy általánosan használt shell legfontosabb parancsainak megismerése.
    • Shell programozási alapok. Legfontosabb környezeti változók jelentése, kényelmi beállítások.
    • Állomány- és paraméterhelyettesítés, B/K átirányítás.
    • UNIX grafikus felhasználói felülete, általános alapelvek.
    • Szűrők és más segédprogramok jelentősége a UNIX-ban. Reguláris kifejezések.
    • Verzió követést, és forrásprogram karbantartást segítő eszközök bemutatása (rcs, cvs).
    • Speciális feldolgozó és elemző nyelvek (pl. awk, perl, yacc, lex) bemuatása.

    II. Objektum-orientált programozás alapjai a C++ nyelv bemutatásával

    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 túlterhelés;
    • 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.

    Objektumok létrehozása

    • 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 (túlterhelés)

    • Operátor overload fogalma.
    • Dinamikusan allokált mezővel rendelkező objektumok értékadása és inicializásása, copy constructor.
    • 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).

    Öröklés

    • 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 osztályok

    • Generikus adatszerkezetek jelentősége.
    • Dinamikus adatstruktúrák, generikus osztályok.
    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

    (előadás, gyakorlat, laboratórium):

    Gyakorlat, ill. összevont gyakorlat, amelyet előadás jelleggel tartunk az órarend szerinti helyen és időben, mely előadásokhoz mindvégig szorosan kapcsolódnak a Számítógép labor II című tárgy foglalkozásai.

    10. Követelmények

    A hallgatóknak készség szintű jártasságot kell szerezniük a C/C++ nyelv, valamint a UNIX operációs rendszer használatában olyan szinten, hogy azt további tanulmányaik során képesek legyenek hatékonyan alkalmazni.

    A szorgalmi időszak alatt egy alkalommal, az évfolyamfelelős oktatóval egyeztetett időpontban nagyzárthelyi dolgozatot íratunk. A zárthelyi a szorgalmi időszakban egy alkalommal pótolható, a hallgatókkal egyeztetett időpontban.

    A szorgalmi időszakban több gyakorló feladatot adunk ki, amelyek megoldását egy számítógépes program ellenőrzi.

    A tárgy a félév végén félévközi jeggyel zárul. A félévközi jegy megszerzésének feltételei:

    • elégséges (pót)zárthelyi dolgozat megírása.
    • a legfeljebb 2 évvel korábban megszerzett aláírást fogadjuk el.

    Félévközi jegy a nagyzárthelyi eredménye, amelyet fél jegy erejéig pozitívan módosíthat a számítógépen benyújtott gyakorló feladatok eredménye.

    b, A vizsgaidőszakban:
    A félévközi jegy megszerzésére ill. a félévközi követelmények pótlására a vizsgaidőszak első 2 hetében, a hallgatókkal egyeztetett időben, egyetlen alkalommal, beszámoló dolgozat megírásával van mód. Ennek eredménye a félévközi jegy.

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

    A szorgalmi időszakban 1 alkalommal pótzárthelyit tartunk, a hallgatókkal egyeztetett időpontban. Vizsgaidőszakban a vizsgaidőszak első 2. hetének végéig további 1 alkalommal beszámoló dolgozat megírására van lehetőség. A szorgalmi időszakban kiadott gyakorló feladatok megoldása vizsgaidőszakban nem pótolható.

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

    A Zh előtt az előadóval történő előzetes időpont-egyeztetéssel tartunk konzultációt.

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

    [1] Kondorosi, László, Szirmay-Kalos:
    Objektum orientált szoftver fejlesztés,
    ComputerBooks, 1999

    [2] B. Stroustrup:
    A C++ programozási nyelv
    Kiskapu, 2001

    [3] Lippmann:
    C++ Primer
    Addison-Wesley, 1986

    [4] Benkő Tiborné, Benkő László:
    Programozási feladatok és algoritmusok Turbo C és C++ nyelven
    ComputerBooks, 1997

    [5] Tóth Bertalan:
    Programozzunk C++ nyelven
    ComputerBooks, 2003

    [6] Bartók Nagy János – Laufert Judit:
    UNIX felhasználói ismeretek
    Openinfo Könyvek, Budapest, 1994
    (http://www.szabilinux.hu/ufi/main.htm)

    [7] Szeberényi Imre:
    Bevezetés a UNIX operációs rendszerbe
    Műegyetemi Kiadó, 2003

    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka

    Kontakt óra

    30

    Félévközi készülés órákra

    10

    Felkészülés zárthelyire

    20

    Házi feladat elkészítése

    Kijelölt írásos tananyag elsajátítása

    Vizsgafelkészülés

    Összesen

    60

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

    Név:

    Beosztás:

    Tanszék, Int.:

    Dr. Szeberényi Imre

    főtanácsos

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

    Dr. Poppe András

    egyetemi docens

    Elektronikus Eszközök Tanszéke

    a Programozás tárgyak oktatói munkaközössége ajánlásainak megfelelően.