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

    A tantárgy angol neve: Basics of Programming

    Adatlap utolsó módosítása: 2018. augusztus 21.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar
    Üzemmérnök-informatikus szak, BProf képzés
    közös tárgy

    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIEEBA01   2/0/4/v 7  
    3. A tantárgyfelelős személy és tanszék Dr. Czirkos Zoltán, Elektronikus Eszközök Tanszéke
    4. A tantárgy előadója

    Név

    Beosztás

    Tanszék

    Dr. Czirkos Zoltán

    Egyetemi docens

    Elektronikus Eszközök Tanszéke

    6. Előtanulmányi rend
    Kötelező:
    Training.Code=("5N-A9")

    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.

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

    A tantárgy célkitűzése, hogy a hallgatók készség szinten alkalmazható ismereteket szerezzenek a számítógépes problémamegoldás módszereinek és alapvető eszközeinek használatában, úgy mint elemi és összetett adatok, programozási tételek, fájlkezelés. További cél, hogy a megszerzett ismereteket és készségeket további tanulmányaik során hatékonyan legyenek képesek alkalmazni.

    A célkitűzés teljesítését egy magas szintű programozási nyelv, a Python megismerése teszi lehetővé. A tárgyat teljesítő hallgató képes lesz:

    • (K3) alkalmazni az imperatív programozás ismertetett eszköztárát,
    • (K3) összetett típusokat és tárolókat használni programjában, ezeken alapvető algoritmusokat, elemi programozási tételeket alkalmazni,
    • (K3) a Python programozási nyelvet és integrált fejlesztőkörnyezetet használni a fenti eszközöket használó programok implementálásához,
    • (K2) elemi megfontolásokat tenni egy program erőforrásigényére,
    • (K2) specifikációkat, programozói dokumentációkat megérteni,
    • (K2) elmagyarázni a tematikában szereplő magasabb szintű absztrakciók és nemlineáris adatszerkezetek működését, alkalmazási lehetőségeit.
    8. A tantárgy részletes tematikája

    Az előadások tematikája:

    Előadás

    Előadás anyaga

    1.

    Bevezetés. Programozás fogalma. Kifejezések és változók, típus fogalma. Egyszerű kifejezések a programban. Operációs rendszer alapismeretek: parancssor, program indítása parancssorból, szabványos bemenet és kimenet, átirányítás, paraméterek. Egyszerű Python program futtatása.

    2.

    Algoritmusok elemei, vezérlési szerkezetek. Ciklus, elágazás, szekvencia. Összetett vezérlési szerkezetek és kifejezések. Integrált fejlesztői környezet bemutatása.

    3.

    Programozási tételek. Összegzés, számlálás, szélsőérték keresése és szétválogatás tételei. Hibakeresési technikák: nyomkövetés, értékadások megfigyelése, változók vizsgálata. Beolvasás és kiírás. Formátumhibák kezelése, kivételek.

    4.

    Függvények fogalma, használata. Absztrakció, paraméterek és lokális változók. Felülről lefelé tervezés.

    5.

    Listák létrehozása. Listaműveletek. Érték és referencia szerinti paraméterátadás fogalma.

    6.

    Keresések és rendezések. Egész és lebegőpontos számok ábrázolása, számábrázolási korlátok. Operátorok. Precedencia, kiértékelés, mellékhatás fogalma.

    7.

    Összetett adatszerkezetek, saját típusok definíciója.

    8.

    Véges automata, mintafelismerő és szűrő programok. Felsorolt típus.

    9.

    Program kapcsolata a külvilággal: parancssori paraméterek és fájlkezelés. Esettanulmány: programszegmentálás, Karbantartható programok írása, dokumentáció.

    10.

    Rekurzió. Rekurzió tervezése: báziskritérium és egyszerűsítési lépések.

    11.

    Verem és várakozási sor létrehozása lista segítségével. Asszociatív tömbök, halmazok.

    12.

    Bináris fák. Keresőfák, hierarchikus adattárolás, dekódoló fák. Fák bejárása.

    13.

    Generikus algoritmusok, predikátumok. Gráfok algoritmusai.

    A laborok tematikája: a laborgyakorlatok szorosan, heti bontásban követik az előadásokat, azzal teljesen megegyező tematikával. Az egyes, szorosan nem összefüggő anyagrészek sorrendje az elmaradó órák függvényében változhat.
    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

    A tárgyból heti egy alkalommal a teljes évfolyamnak előadást és heti két alkalommal a tanulókörök számára laborgyakorlatot tartunk. A tárgyból számítógépes laboratóriumi foglalkozásaira a Hallgatói Számítógép Központ (HSZK) termeiben kerül sor, az órarend szerinti időpontokban, kiscsoportos oktatással. A csoport- és terembeosztást külön hirdetményben tesszük közzé a tárgy weboldalán.

    A laboratórium célja, hogy a hallgatók gyakorlati jártasságot szerezzenek az előadáson és megismert módszerek kipróbálása által, és készség szinten elsajátítsák a fejlesztőkörnyezetek használatát. A laborok anyaga folyamatosan követi az előadások tematikáját, azok mélyebb megértését, az algoritmusok részletes megismerését támogatja.

    Az anyag jobb elsajátítása érdekében a laboratóriumi foglalkozásokhoz kapcsolódóan egy nagyobb házi feladatot is meg kell oldani. A kis zárthelyik célja a folyamatos készülés motiválása. A nagy zárthelyi és a vizsga a megszerzett ismeretek alkalmazására fókuszálnak.

    A tárgy tananyaga egyes heteken szorosan kapcsolódik az Algoritmusok és gráfok című, azonos félévben futó tárgyhoz.

    10. Követelmények

    A szorgalmi időszakban, a félév végi aláírás feltételei:

    • Jelenlét: az órákon (előadás, labor) való rendszeres részvétel. A hiányzások megengedett mértékét a TVSz rögzíti (30%). A feltételnek mindkét óratípuson külön-külön is teljesülnie kell.
    • A laborgyakorlatokon a felkészültséget szintfelmérővel (beugróval) ellenőrizzük, amelynek anyaga az adott laborhoz tartozó előadás anyagával kapcsolatos. A beugró lehet rövid dolgozat, házi feladat vagy órai feladat is. Sikertelen beugró esetén az adott laboralkalom nem teljesítettnek számít.
    • Kis zárthelyik (ellenőrző dolgozat): a félév során hat alkalommal kis zárthelyit íratunk a laborokon. Ezek három témakört ölelnek fel, azaz három dolgozatpárost jelentenek. Minden pár közül a jobban sikerült eredménye számít; ez kell elérje az adott dolgozatra szerezhető pontszám 40%-át. A meg nem írt dolgozatok pontszámát nullának tekintjük.
    • Nagy zárthelyi (összegző értékelés): a szorgalmi időszak alatt egy alkalommal, az évfolyam terhelési táblázata szerinti időpontban nagy zárthelyi dolgozatot íratunk. A pontszáma el kell érje a szerezhető pontszám 50%-át.
    • Nagy házi feladat (részteljesítmény értékelés): minden hallgatónak egy egyéni nagy házi feladatot kell megoldania, önálló munkával. Ennek elfogadható szintű teljesítése a félév követelménye. A nagy házi feladatokat az 5. héten adjuk ki és a 12. héten kell beadni a megoldásokat. Az előrehaladást a félév közben ellenőrizzük, és az értékelésnél figyelembe vesszük. A házi feladatra kapott pontszám el kell érje az erre szerezhető pontszám 50%-át.
    • 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 extra pontok szerezhetők, amelyeket a megajánlott jegy kialakításánál veszünk figyelembe.

    A vizsgaidőszakban:

    • Írásbeli vizsga.

    Az osztályzat megállapításának módja:

    • Aki a félévközi eredményekkel kiváló eredményt ért el, megajánlott jelest kap: max(KZH1, KZH2) + max(KZH3, KZH4) + max(KZH5, KZH6) + NZH + NHF + szorgalmi >= 80 pont.
    • Vizsga esetén az érdemjegy meghatározásánál az alábbi pontszámokat vesszük figyelembe:
      40 pont – vizsgadolgozat 2× súllyal (80 pont)
      40 pont – nagy zárthelyi
      20 pont – nagy házi feladat
      Az érdemjegy: 0-69 pont: elégtelen, 70-90 pont: elégséges, 91-105 pont: közepes, 106-119 pont: jó, 120-140 p: jeles
    11. Pótlási lehetőségek

    A jelenlét és a laborgyakorlatokon írt beugrók nem pótolhatóak.

    A kis zárthelyik félév közbeni pótlását az teszi lehetővé, hogy páronként mindig a jobban sikerült számít. Az egyik kis zárthelyi pár pótlására a pótlási héten is biztosítunk lehetőséget, különeljárási díj megfizetése mellett.

    Nagy zárthelyi pótlására egy alkalommal a félév közben, és egy alkalommal a pótlási héten van lehetőség.

    A nagy házi feladat javítására vagy pótlására a szorgalmi időszak végéig (utolsó tanítási napon, 14.00 óráig), azon túl a nagy házi feladat nem adható be. Pótlás esetén különeljárási díj fizetendő. Javítani csak előzőleg már elfogadott megoldást lehet.

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

    A tárgy oktatóival egyeztetett módon. A tantárgy weboldalán is rendszeresen hirdetünk meg konzultációkat.

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

    ·       A tárgy weboldalán elérhető elektronikus jegyzet.

    ·       Mark Summerfield: Python 3 programozás.

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

    Kontaktóra

    84

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

    6

    Készülés gyakorlatra

    -

    Készülés laborra

    28

    Készülés zárthelyire

    20

    Házi feladat elkészítése

    16

    Önálló tananyag-feldolgozás


    Vizsgafelkészülés

    56

    Összesen

    210

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

    Név:

    Beosztás:

    Tanszék, Int.:

    Dr. Czirkos Zoltán

    Egyetemi docens

    Elektronikus Eszközök Tanszéke