A programozás alapjai

A tantárgy angol neve: Basics of Programming

Adatlap utolsó módosítása: 2021. augusztus 31.

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. Ress Sándor László,
4. A tantárgy előadója

Név

Beosztás

Tanszék

Dr. Ress Sándor

Egyetemi docens

Elektronikus Eszközök Tanszéke

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

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

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. A hat kis ZH közül a legjobban sikerült négy pontszámát vesszük figyelembe; ezek összege kell elérje a megszerezhető összpontszám 50%-á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) + KZH5 + KZH6 + NZH + NHF + szorgalmi >= 90 pont.
  • Vizsga esetén az érdemjegy meghatározásánál az alábbi pontszámokat vesszük figyelembe:
    80 pont – vizsgadolgozat 2× súllyal (2×40 pont)
    20 pont – nagy házi feladat
    Az érdemjegy: 0-39 pont: elégtelen, 40-54 pont: elégséges, 55-69 pont: közepes, 70-84 pont: jó, 85-100 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 hatból csak a legjobb négyet vesszük figyelembe. Pótlási héten ezek már nem pótolhatóak.

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