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

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

    Adatlap utolsó módosítása: 2016. április 27.

    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
    VIEEA100 1 2/2/0/v 5 2/1
    3. A tantárgyfelelős személy és tanszék Dr. Czirkos Zoltán,
    A tantárgy tanszéki weboldala http://www.eet.bme.hu/vieea100/
    4. A tantárgy előadója
    Név:

     

    Beosztás:

     

    Tanszék, Int.:

     

    Dr. Czirkos Zoltán

    egy. docensElektronikus Eszközök Tsz.

     

     Nagy Gergely

     egy.tanársegéd

     Elektronikus Eszközök Tsz.

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

    -

    6. Előtanulmányi rend
    Kötelező:
    TárgyEredmény( "BMEVIEEA101" , "jegy" , _ ) >= 2

    É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:
    Tematikaütközés miatt a tárgyat csak azok vehetik fel, akik korábban nem hallgatták a következő tárgyakat:

     

    Neptun-kód       Cím

     

    -                         -

     

    7. A tantárgy célkitűzése
    • A tantárgy célkitűzése, hogy a hallgatók megfelelő jártasságot szerezzenek a számítógépes problémamegoldás módszereinek és alapvető eszközeinek használatában annak érdekében, hogy a megszerzett ismereteket és készségeket további tanulmányaik során hatékonyan legyenek képesek alkalmazni. A tárgy további célkitűzése a hordozható programok készítésének bemutatása. A célkitűzés teljesítését egy magas szintű programozási nyelv, a C megismerése teszi lehetővé. A gyakorlatok anyaga folyamatosan követi az előadások tematikáját, azok megértését, az algoritmusok részletes megismerését támogatja.

       

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

    1. hét.

    Előadás: Bevezetés. Programozás fogalma. Kifejezések és változók, típus fogalma. C nyelv alapjai. Egyszerű kifejezések a programban.

    Gyakorlat: Hétköznapi algoritmusok. Folyamatábraszerű rajz készítése közismert algoritmusokhoz (pl. írásbeli összeadás, prímtényezős felbontás).

    2. hét.

    Előadás: Forráskódok elemei. Algoritmus fogalma, leírása. Ciklus, elágazás, szekvencia. Kombináció. Összetett vezérlési szerkezetek, összetett kifejezések. Számítógép felépítése röviden.

    Gyakorlat: Algoritmizálás gyakorlása a kártyapakli példáján. Benne van-e az adott kártya? Melyik a leg...? Hogyan lehet sorba rakni?

    3. hét.

    Előadás: Egyszerű algoritmusok pszeudokód / C változatai. Összegzés, szélsőérték keresés tételei. Egész alapú típusok. Karakter és logikai típus. Tömbök.

    Gyakorlat: Algoritmusok leírása C nyelven. Számelméleti példák. Másodfokú egyenlet. Numerikus módszerek, pl. pi kiszámítása ciklussal. Prímszám-e több változatban. Tükörszám.

     

    4. hét.

    Előadás: Beépített típusok részletesen. Véges ábrázolás. Egész és lebegőpontos számok ábrázolása, számábrázolási korlátok. Függvények fogalma, használata.

    Gyakorlat: Tömbbel megoldható feladatok gyakorlása. Naptár napjai, szökőévek. Eratoszthenész szitája. Bankautomata.

     

    5. hét.

    Előadás: Operátorok. Precedencia, kiértékelés, mellékhatás. Struktúrák.

    Gyakorlat: Összetett problémák, dekompozíció. Függvények használata; paraméterek és visszatérési értékek. Egyszerű, matematikai jellegű függvények írása. Saját toupper, Caesar kódolás.

     

    6. hét.

    Előadás: Felsorolt típus. Állapotgép. Pointerek. Sztringek röviden.

    Gyakorlat: Struktúrák. 3D vektor struktúra. Műveletek, függvények. Többszörösen összetett adatok. Struktúrában tömb, tömbben struktúra.

     

    7. hét.

    Előadás: Program kapcsolata a külvilággal. Előfeldolgozó. Programszegmentálás. Karbantartható programok írása. Const szerepe.

    Gyakorlat: Tömbök és függvények használata, tömb átadása függvénynek. Sztringes feladatok. Szöveg megfordító, palindrom. Sztring átadása függvénynek. Tömbméret és sztringhossz közti különbség. Túlindexelés veszélye.

     

    8. hét.

    Előadás: Tömbi algoritmusok. Keresések. Rendezések.

    Gyakorlat: Állapotgépek tervezése példákon keresztül; részletek implementálása. Ly számláló, mondat nagybetűsítő, kommentszűrő.

     

    9. hét.

    Előadás: Dinamikus memóriakezelés. Dinamikus tömbök. Dinamikus sztring kódolása. Memóriakezelés rendszerező tárgyalása.

    Gyakorlat: Tömb rendezése. Medián keresése. N legkisebb elem. Egyforma elemek intervalluma. Rendezés kulcsai. Kártyapakli: tömbben struktúra; rendezés szín szerint, rendezés römiszerűen.

     

    10. hét.

    Előadás: Dinamikus adatszerkezet: láncolt listák. Listák használata. Bejárás, törlés, beszúrás. Listával megvalósítható adatszerkezetek: LIFO, FIFO.

    Gyakorlat: Komplett halmaz "osztály" kódolása. Munka dinamikus tömbbel. Méret nyilvántartása, keresés, átméretezés. Munka struktúrákra mutató pointerekkel.

     

    11. hét.

    Előadás: Rekurzió, dinamikus adatszerkezetek. Fák, bináris fák használata. Keresőfák, dekódoló fák. Fák bejárásai.

    Gyakorlat: Adatszerkezetek választása. Listák használata; elemek átláncolása.

     

    12. hét.

    Előadás: Függvényre mutató pointerek. Függvénykirajzoló program tervezése. Unionok, bitmezők.

    Gyakorlat: Rekurzív függvények gyakorlása. Fák algoritmusai. Csomópontok, szintek, levelek. Tükörképek, szimmetrikus fa vizsgálata.

     

    13. hét.

    Előadás: További adatszerkezetek. Nagyobb programok tervezése. Funkcionális

    dekompozíció bemutatása egy komplex példán.

    Gyakorlat: Függvényre pointerek. Numerikus integrálás.

     

    14. hét.

    Tartalék előadás.

    Gyakorlat: vizsgára gyakorlás.

     

    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 30-35 fős hallgatói csoportok (tanulókörök) számára. Az előadáshoz és a tantermi gyakorlatokhoz a Szoftver labor 1 című tárgy laborfoglalkozásai szorosan csatlakoznak. Jelen tárgy keretén belül az elméleti ismeretek kerülnek előadásra

    10. Követelmények Az előadások és a gyakorlatok látogatása kötelező. Az előadásokon a jelenlétet azok kezdetén és végén is a félév folyamán minden alkalommal ellenőrizzük, aláírást nem kaphat az a hallgató, aki ezek alapján az alkalmak több, mint 30%-áról hiányzott (a viszonyítási alap a ténylegesen megtartott előadások száma). A gyakorlatokon a jelenlétet minden alkalommal ellenőrizzük, 30%-ot meghaladó hiányzás esetén a tantárgyból sem aláírás sem kreditpont nem szerezhető.

    a. A szorgalmi időszakban:

    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 iratunk. A félév végi aláírás megszerzésének egyik feltétele az elégséges (pót)zárthelyi. A félév során öt alkalommal kis zárthelyit íratunk a gyakorlatokon. Az aláírás megszerzésének második feltétele, hogy a három legjobban sikerült kis zárthelyi összpontszáma elérje a három kis zárthelyire szerezhető összpontszám 40%-át. Az aláírás megszerzésének harmadik feltétele az órákon való részvétel. A hiányzások mértékét a TVSz rögzíti. A korábban ebből a tárgyból megszerzett, 2 évnél nem régebbi aláírást elfogadjuk. A kis és nagy ZH-kon legkiválóbban teljesítő hallgatók megajánlott jegyet kaphatnak.

    b. A vizsgaidőszakban:

    A tárgyból a félév befejeztével írásbeli vizsgát kell tenni. A vizsgára bocsátás feltétele az aláírás megszerzése.

    c. Elővizsga:

    A pótlási héten elővizsgát tartunk. Az elővizsgán annyian vehetnek részt, ahány vizsgahely a vizsgateremben rendelkezésre áll, a részvétel feltétele a zh-n elért megfelelően magas pontszám.

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

    A szorgalmi időszakban egy alkalommal pót zárthelyi dolgozat megírására van lehetőség, az évfolyam terhelési táblázata szerinti időpontban. Pót zárthelyi dolgozatot annak kell írnia, aki nem írt elégséges eredményű zárthelyi dolgozatot. A zárthelyi pótlására a TVSz előírásainak megfelelően a pótlási héten is biztosítunk lehetőséget. Gyakorlaton való részvétel valamint a kis ZH-k pótlására nincs lehetőség.

     

    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, a gyakorlatvezetőkkel egyeztetve.

     

     

     

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

    Pohl László: A programozás alapjai, elektronikus jegyzet, mely letölthető a tárgy honlapjáról.

     

    Továbbá bármely, programozási módszerekkel és az ISO C programozási nyelvvel foglalkozó könyv vagy jegyzet használható.

    Ajánlott irodalom:

     

    Alap algoritmusok tekintetében:

    Pongor György: Szabványos PASCAL programozás és algoritmusok. (Műszaki Könyvkiadó, 1999)

    Niklaus Wirth: Algoritmusok + Adatstruktúrák = Programok (Műszaki Könyvkiadó 1982.)

     

    A C programozási nyelv tekintetében: bármely, a nyelvvel foglalkozó könyv, például:

    B. W. Kernighan, Ritchie: A C programozási nyelv: az ANSI szerint szabványosított változat (Műszaki Könyvkiadó, 1994)

    Benkő Tiborné, Benkő László, Tóth Bertalan: Programozzunk C nyelven! (ComputerBooks, 1996)

    Benkő Tiborné - Poppe András: "Együtt könnyebb a programozás" sorozat: C (CompuerBooks, 2004)

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

    (a tantárgyhoz tartozó tanulmányi idő körülbelüli felosztása a tanórák, továbbá a házi feladatok és a zárthelyik között (a felkészülésre, ill. a kidolgozásra átlagosan fordítandó/elvárható idők félévi munkaórában, kredit x 30 óra, pl. 5 kredit esetén 150 óra)):

     

    Kontakt óra

    56

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

    19

    Felkészülés zárthelyire

    20

    Házi feladat elkészítése

     10

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

     25

    ..

     

    Vizsgafelkészülés

    20

    Összesen

    150

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

    Név:

    Beosztás:

    Tanszék, Int.:

    Dr. Czirkos Zoltásn

    Egyetemi adjunktus

    Elektronikus Eszközök Tsz.

       

    Az elsőéves programozás tárgyakat oktatók munkaközössége.

    .