Tantárgy » BMEVISZAD01
Deklaratív programozás
Declarative Programming
A tantárgyleírás hatályossága
Hatályosság kezdete:
2026. March 21.
Hatályosság vége:
—
| Tantárgy neve (magyarul, angolul) |
Deklaratív programozás
Declarative Programming
|
||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Tantárgykód | BMEVISZAD01 | ||||||||||||
| Tantárgyjelleg | — | ||||||||||||
| Képzési szint | — | ||||||||||||
| Kurzustípusok és óraszámok (heti/féléves) |
|
||||||||||||
| Tanulmányi teljesítmény/értékelés típusa | félévközi érdemjegy | ||||||||||||
| Tantárgy kreditértéke | 5 | ||||||||||||
| Tantárgyfelelős |
Dr. Szeredi Péter
elérhetőség:
szeredi.peter@vik.bme.hu
|
||||||||||||
| Tantárgyat gondozó oktatási szervezeti egység |
Számítástudományi és Információelméleti Tanszék
|
||||||||||||
| Kar | Villamosmérnöki és Informatikai Kar | ||||||||||||
| Tantárgy weboldala | https://dp.iit.bme.hu | ||||||||||||
| Tantárgy elsődleges mintatantervi jellege | — | ||||||||||||
| Közvetlen előkövetelmények – Erős előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Gyenge előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Párhuzamos előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Mérföldkő előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Kizáró feltétel | nincs |
Célkitűzés
Tantárgyprogram
Az előadások részletes tematikája
A gyakorlatok részletes tematikája
A deklaratív – más néven nonimperatív – programozási paradigma megismertetése, a két fő irányzat – a funkcionális és a logikai programozás – bemutatása, valamint gyakoroltatása kis-közepes feladatok megoldásával.
Tanulmányi eredmények
Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:
Tudás
Nincsenek rögzített tanulási eredmények.
Képességek
Nincsenek rögzített tanulási eredmények.
Attitűd
Nincsenek rögzített tanulási eredmények.
Autonómia és felelősség
Nincsenek rögzített tanulási eredmények.
Oktatási módszertan
Előadás és gyakorlat
Tanulástámogató anyagok
Online források
Jegyzet:; Szeredi Péter, Benkő Tamás: Deklaratív programozás. Oktatási segédlet. Bevezetés a logikai programozásba. Számítástudományi és Információelméleti Tanszék, Budapest, 2005. Letölthető a tárgy honlapjáról. ; Ajánlott irodalom: ; Erlang on-line documentation https://erlang.org/doc.html Erlang Programming. Wiki Books. https://en.wikibooks.org/wiki/Erlang_ProgrammingFred Hébert: Learn you some Erlang. https://learnyousomeerlang.com/ Erlang Tutorial. https://www.tutorialspoint.com/erlang Elixir. https://elixir-lang.org/ Elixir Tutorial. https://www.tutorialspoint.com/elixirAn Introduction to Elm. https://guide.elm-lang.org/ Beginning Elm. https://elmprogramming.com/ Elm Tutorial. https://www.tutorialspoint.com/elm/ Farkas Zsuzsa, Futó Iván, Langer Tamás, Szeredi Péter: MProlog programozási nyelv. Műszaki Könyvkiadó, Budapest, 1989. Márkusz Zsuzsa: Prologban programozni könnyű. Novotrade, Budapest, 1988. Richard A. O'Keefe: The Craft of Prolog. MIT Press, 1990. ISBN 0-262-15039-5 Leon Sterling, Ehud Shapiro: The Art of Prolog. Advanced Programming Techniques, 2nd Edition, MIT Press, 1994, ISBN 0-262-19338-8 Peter Flach: Logikai Programozás. Az intelligens következtetés példákon keresztül. Panem-John Wiley & Sons, 2001 Ulf Nilsson and Jan Maluszynski: Logic, Programming and Prolog (2nd ed.). Previously published by John Wiley & Sons Ltd. https://www.ida.liu.se/%7Eulfni/lpp/
A tantárgy teljesítéséhez ajánlott előzetes ismeretek
Tudás típusú kompetenciák
(azon előzetes ismeretek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
Programozás, programozási technológia, matematikai logika
Képesség típusú kompetenciák
(azon előzetes képességek és készségek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
nincs
Ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák
(azon ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák összessége, amelyek jelentősen hozzájárulnak a tantárgy eredményes teljesítéséhez)
Programozás, programozási technológia, matematikai logika
Általános szabályok
Követelmények:
a) Zárthelyi dolgozatok értékelése és elfogadása
A félév során két zárthelyi dolgozatot iratunk, elfogadásukhoz a pontszám legalább 40%-át kell megszerezni.
Pótlás vagy javítás esetén az utolsó zárthelyi eredménye lesz érvényes.
b) Kis házi feladatok
A félév során több alkalommal adunk ki kis házi feladatként programozási feladatokat. A beadás módját a tárgy honlapján közzéteendő feladatkiírás részletezi.
A kis házi feladatokra vonatkozó követelmény teljesítéséhez az szükséges, hogy a beadható programok legalább 2/3-a lefusson mindkét programozási nyelven a tesztesetek 100%-os teljesítésével.
c) Nagy házi feladatok, megajánlott jegy
Mind a funkcionális, mind a logikai programozási tárgyrészből egy-egy nagy házi feladatot adunk ki. A nagy házi feladatok megoldása nem kötelező, azonban a féléves osztályzatba beszámít az eredményük, és a beadásukkal megajánlott jegy is szerezhető.
A programokat, valamint a dokumentációkat elektronikus úton kell beadni az ütemtervben előírt oktatási héten. A beadás módját a tárgy honlapján közzéteendő feladatkiírás részletezi. A beadott megoldásokkal kapcsolatban a hallgató kérdéseket fog kapni (ez a nagy házi feladat megvédése, az önálló munkavégzés igazolása).
A tesztesetek legalább 80%-át megoldó programokat további bonyolultabb, nagyobb méretű tesztesetekkel futtatjuk az ún. létraversenyben. A létraverseny eredményétől függ a megajánlott jegy (lásd alább).
d) A féléves osztályzat megállapítása
A féléves osztályzatban a zárthelyikre max. 85 pontot, a nagy házi feladatokra max. 15 pontot kaphatnak a hallgatók. A kis házi feladatok megoldására kapott és a létraversenyen szerzett ún. pluszpontokkal az összpontszám 100 pontnál nagyobb is lehet.
A féléves összpontszám a zárthelyikre, a kis és nagy házi feladatokra, valamint a létraversenyen kapott pontok összege. Ennek alapján állapítjuk meg a félévi osztályzatot. Az egyes osztályzatok alsó határa: elégséges – 40 pont, közepes – 55 pont, jó – 70 pont, jeles – 85 pont.
Jó (4) megajánlott jegyet kaphat az, aki a kis házi feladatokra vonatkozó követelményeket teljesíti, mindkét programozási nyelven beadja a nagy házi feladat megoldását, ezeket megfelelően dokumentálja, a programjai bejutnak a létraversenybe és a nagy házi feladatot sikeresen megvédi. Jeles (5) megajánlott jegyet kaphat az, akinek mindkét programja megoldja a létraverseny teszteseteinek legalább 40%-át.
A megajánlott jegy elfogadása esetén a zárthelyit nem kell megírni, az esetleg megírt zárthelyi eredményét nem vesszük figyelembe.
e) Meg nem engedett eszközök alkalmazása
A kis és nagy házi feladatokat minden hallgatónak önállóan, egyénileg kell megoldania, másoktól ötleteken kívül egyebet – pl. teljes kódot vagy akár csak kódrészletet – nem vehet át. A programok szerkezeti hasonlóságát automatikus eszközökkel is vizsgálhatjuk.
Mástól származó program vagy programrészlet átvétele/átadása és beadása esetén az összes kis és nagy házi feladatot érvénytelennek tekintjük. A zárthelyin a meg nem engedett eszközöket használókat az érvényes kari, ill. egyetemi rendelkezések szerint büntetjük. Egyéb kérdésekben a TVSz rendelkezései az irányadók.
Pótlási lehetőségek:
A házi feladatokat nem lehet pótolni. A zárthelyik pótlására, illetve javítására két alkalommal lesz lehetőség. Ezen alkalmakkor is a zárthelyiken elvárt tananyagot kell tudni. Mindkét alkalommal mindkét zárthelyi pótolható.
Teljesítményértékelési módszerek
Szorgalmi időszakban végzett teljesítményértékelések részletes leírása
Nincs megadva részletes értékelés.
Szorgalmi időszakban végzett teljesítményértékelések részaránya
Nincs megadva részarány.
Vizsgaidőszakban végzett teljesítményértékelések részletes leírása
Nincs megadva részletes értékelés.
Vizsgarészek részaránya
Nincs megadva részarány.
Érdemjegy megállapítása
Nincs megadva érdemjegy határ.
Jelenléti és részvételi követelmények
Nincs megadva jelenléti követelmény.
Javítás, ismétlés és pótlás különös szabályai
Nincs megadva.
Rövid leírás
Nincs megadva.
Részletes leírás
IMSc program:
Az IMSc program hallgatói számára a gyakorlatokon emelt szintű fakultatív programozási feladatokat kínálunk, valamint – részben ezen feladatokhoz kapcsolódó – önállóan tanulmányozandó irodalmat teszünk elérhetővé, fakultatív konzultációs lehetőség biztosításával.
IMSc pontok:
A tantárgyból kétféle módon szerezhető IMSc pont:
a zárthelyik során pluszfeladat megoldásával (maximum 18 pont), a létraversenyen a megajánlott jeles érdemjegyhez szükséges 40%-os teljesítés felett minden további 10% teljesítéséért mindkét programozási nyelv esetén 1–1 pont (összesen maximum 12 pont)
A hallgató a fenti módokon szerzett pontok összegét, de legfeljebb 25 IMSc pontot kap.
Az IMSc pontok gyűjtése teljesen független a zárthelyikre és házi feladatokra kapott pontoktól. Ezen pontok megszerzése és a fakultatív feladatok megoldása nélkül is jeles szinten teljesíthetők a tantárgy követelményei.
Az IMSc pontok megszerzése az IMSc programban nem résztvevő hallgatók számára is lehetséges.
Ajánlott tantárgyak
Nincs megadva.
A tantárgy elvégzéséhez szükséges tanulmányi munka
Nincs megadva munkaidő bontás.
Tantárgykövetelmények hatályossága
Tantárgykövetelmények hatályosságának kezdete:
—
Tantárgykövetelmények hatályosságának vége:
—
Tantervi elhelyezés
Nincsenek rögzített tantervi elhelyezések ehhez a tárgyverzióhoz.