Tantárgy » BMEVISZA403
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 | BMEVISZA403 | ||||||||||||
| 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 | http://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
- Bevezetés.
Az imperatív és a deklaratív (funkcionális és logikai) programozás összevetése. Ismerkedés a deklaratív nyelvekkel: Cékla, a C++ egy deklaratív résznyelve.
- Funkcionális programozás Erlang nyelven.
Az Erlang nyelv alapjai: elemi kifejezések, listák és más adatszerkezetek, változók, függvények, operátorok, összetett kifejezések. Mintaillesztés. Őrök. Kiértékelés. Rekurzió, iteráció. Modulok. Beépített függvények. Hibakezelés. Párhuzamos programozás: folyamatok, üzenetek. Elosztott programozás: csomópontok, távoli eljáráshívás. Új irányzatok a funkcionális programozásban.
- Logikai programozás Prolog nyelven.
A Prolog nyelv alapjai: eljárások, visszalépésen és mintaillesztéses eljáráshíváson alapuló vezérlés, összetett adatszerkezetek, operátorok, listák. Beépített eljárások. Programozási módszerek. Fejlettebb nyelvi elemek és alkalmazásuk, modularitás, hibakezelés. Új irányzatok a logikai programozásban.
A deklaratív - más néven nonimperatív - programozási paradigma
megismertetése, többek között a párhuzamos és elosztott programozás (pl.
a többmagos processzorok programozása), a korlátalapú programozás, a
mesterségesintelligencia-módszerek, az ontológiakezelés és a
szemantikusweb-kezelés korszerű megalapozására.
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
10*4 óra előadás és 10*2 óra kiscsoportos foglalkozás a félév első 10 hetében egyenletesen elosztva.
Tanulástámogató anyagok
Online források
A tantárgy egy részéhez sokszorosított jegyzet vásárolható a; tantárgy honlapján megadott módon és helyen. Elektronikus változata a; Webről is letölthető:; 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; Ajánlott irodalom:; a. Joe Armstrong: Programming Erlang: Software for a Concurrent World. The Pragmatic Programmers, July 2007. ISBN 978-1-9343560-0-5 http://www.pragprog.com/titles/jaerlang/programming-erlangb. Joe Armstrong, Robert Virding, Claes Wikström, Mike Williams: Concurrent Programming in Erlang. Second Edition. Prentice Hall, 1996. ISBN 0-13-508301-X. Az első rész szabadon letölthető PDF-ben: http://erlang.org/download/erlang-book-part1.pdf.; c. Erlang on-line documentation http://erlang.org/doc.htmld. Erlang Programming. Wiki Books. http://en.wikibooks.org/wiki/Erlang_Programminge. Francesco Cesarini, Simon Thompson: Erlang Programming. O'Reilly Media,Inc., December 2008. ISBN 978-0596518189; f. Farkas Zsuzsa, Futó Iván, Langer Tamás, Szeredi Péter: MProlog programozási nyelv. Műszaki Könyvkiadó, Budapest, 1989.; g. Márkusz Zsuzsa: Prologban programozni könnyű. Novotrade, Budapest, 1988.; h. Richard A. O'Keefe: The Craft of Prolog. MIT Press, 1990. ISBN 0-262-15039-5; i. Leon Sterling, Ehud Shapiro: The Art of Prolog. Advanced Programming Techniques, 2nd Edition, MIT Press, 1994, ISBN 0-262-19338-8; j. Peter Flach: Logikai Programozás. Az intelligens következtetés példákon keresztül. Panem-John Wiley & Sons, 2001; k. Ulf Nilsson and Jan Maluszynski: Logic, Programming and Prolog (2nd ed.). Previously published by John Wiley & Sons Ltd. http://www.ida.liu.se/~ulfni/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) Részvétel a gyakorlatokon
A tantermi gyakorlatok 70 százalékán részt kell venni.b) Zárthelyi dolgozat értékelése és elfogadása
A
zárthelyi elfogadásához szükséges annak nyelvenként legalább 40%-os
szintű megoldása. A zárthelyi megírásához írószeren, üres papíron és a
kiadott feladatlapon kívül nem használható semmilyen segédeszköz.
Egynél több zárthelyi megírása esetén az utolsót tekintjük érvényesnek.
c) Kis házi feladatok
(A
félév során több alkalommal adunk ki kis házi feladatot. A Cékla-,
Erlang-, ill. Prolog-nyelvű programok beadásának módját a tárgy
honlapján közzéteendő feladatkiírás részletezi. Az alábbiakban fő programozási nyelvnek az Erlang és Prolog nyelveket nevezzük.)
A
kis házi feladatok 50%-ának beadása, a tesztesetek 100%-os
teljesítésével úgy, hogy mindkét fő programozási nyelven legalább egy
100%-ot teljesítő programot be kell adni.
d) Nagy házi feladat, megajánlott jegy
A
nagy házi feladat megoldása nem kötelező a jegy megszerzéséhez, azonban
a jegyszámításba beszámít, és beadásával megajánlott jegy is
szerezhető.Az Erlang- és Prolog nyelven megírt
programokat, valamint a dokumentációt 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 feladatokkal
kapcsolatban a hallgató a beszámolón kérdéseket kaphat (a házi feladat megvédése), amely kérdésekre adott válaszok az önálló munkavégzést is hivatottak bizonyítani. Azok
a programok, amelyek a tesztesetek legalább 80%-át hibátlanul megoldják
és megfelelően dokumentáltak, létraversenyben vesznek részt. A
létraversenyben részt vevő programokat bonyolultabb, nagyobb méretű
tesztesetekkel futtatjuk. A létraversenyben jó helyezést elérő programok
pluszpontot kapnak, amit az osztályzat megállapításakor figyelembe
veszünk. A pluszpontszám maximumát nyelvenként a leggyorsabb program
kapja meg, a többi program egyre kevesebb pluszpontot szerez.Jó
(4) megajánlott jegyet kap az, aki a gyakorlatokkal, zárthelyivel és
kis házi feladatokkal kapcsolatos követelmények teljesítése mellett
mindkét fő programozási nyelvből bejut a létraversenybe, és a házi
feladatát sikeresen megvédi. Jeles (5) megajánlott jegyet kap az, aki
emellett mindkét fő programozási nyelvből legalább 40%-os eredményt ér
el a létraversenyen (azaz mindkét programja megoldja a létraverseny
teszteseteinek legalább 40%-át).
A megajánlott jegy elfogadása a beszámoló alóli mentességet jelenti (lásd következő pont).e) Beszámoló
A
11. vagy a 12. héten kell teljesíteni a beszámolót. A beszámoló
írásbeli feladatmegoldással kombinált szóbeli beszámoló a tárgy
anyagából. A sikeres beszámoló feltétele a beszámolón megszerezhető
maximális pontszám 40%-ának elérése külön-külön mindkét fő programozási
nyelvből.f) A félévvégi osztályzat megállapításaA
félévvégi osztályzatban a beszámolóra kapott pontszámot 70%-os, a
zárthelyire és a nagy házi feladatra kapott pontszámot 15-15%-os súllyal
vesszük figyelembe. A kis házi feladatok megoldására kapott és a
létraversenyen szerzett pontszám az összpontszámot javítja, tehát
ezekkel együtt az összpontszám 100%-nál nagyobb is lehet.Az egyes osztályzatok alsó határai, az összpontszám százalékában: elégséges - 40%, közepes - 55%, jó - 70%, jeles - 85%.
g) 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áljuk.
A zárthelyin és a beszámolón semmilyen segédeszköz nem használható.
Mástól
származó program vagy programrészlet átvétele/átadása és beadása esetén
az összes kis és a nagy házi feladatot érvénytelennek tekintjük. A
zárthelyin és a beszámolón 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:
Gyakorlat pótlására, és a házi feladatok pótlására nincs lehetőség. A
nagyzárthelyi pótlására, illetve javítására a a pótzárthelyin, továbbá a
pótlási időszakban (a pótpótzárthelyin) adunk lehetőséget. Ezen
alkalmakkor is a nagyzárthelyin elvárt tananyagot kell tudni. A
beszámoló pótlására is a pótlási héten adunk lehetőséget.
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
Nincs megadva.
Ajánlott tantárgyak
----
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.