„Deklaratív programozás” változatai közötti eltérés
a |
|||
(12 közbenső módosítás, amit 9 másik szerkesztő végzett, nincs mutatva) | |||
1. sor: | 1. sor: | ||
− | {{ | + | {{Tantárgy |
− | | | + | |tárgykód=VISZAD00 |
+ | |régitárgykód=VISZA402,VISZA403 | ||
|nev=Deklaratív programozás | |nev=Deklaratív programozás | ||
− | |kredit= | + | |kredit=3 |
|felev=7 | |felev=7 | ||
+ | |kereszt=nincs | ||
|kiszh=nincs | |kiszh=nincs | ||
− | |vizsga= | + | |vizsga=nincs |
|nagyzh=van | |nagyzh=van | ||
− | |hf= | + | |hf=7 kisHF + opcionális nagyHF |
|szak=info | |szak=info | ||
|tad=https://www.vik.bme.hu/kepzes/targyak/VISZA402/ | |tad=https://www.vik.bme.hu/kepzes/targyak/VISZA402/ | ||
− | |targyhonlap= | + | |targyhonlap=https://dp.iit.bme.hu/ |
|levlista=[http://bagira.iit.bme.hu/mailman/listinfo/dp-l lista] | |levlista=[http://bagira.iit.bme.hu/mailman/listinfo/dp-l lista] | ||
}} | }} | ||
+ | |||
+ | Az informatikus alapképzés többi tárgyában a programozási paradigmák közül a procedurális és objektumorientált paradigmákra esik a hangsúly. Ezekkel a módszerekkel a Hogyan? kérdést igyekszünk megválaszolni kódírásnál. Az algoritmusok, állapotok pontos ismerete szükséges. Létezik egy másik család is, a deklaratív programozás, ami elsősorban a Mit? kérdésre ad választ: nem határozzuk meg pontosan, hogyan kapjuk meg az eredményt, csak azt, hogy mire van szükségünk. A tárgy ezt a családot mutatja be egy logikai és egy funkcionális programozási nyelven keresztül. | ||
==Követelmények== | ==Követelmények== | ||
− | |||
− | |||
===Félévközi feladatok=== | ===Félévközi feladatok=== | ||
− | |||
* Sikeres nagyZH (azaz mindkét nyelvből legalább 40%-os teljesítmény) | * Sikeres nagyZH (azaz mindkét nyelvből legalább 40%-os teljesítmény) | ||
* Legalább 3 kisházi sikeres beadása (de mindkét nyelvből legalább 1) | * Legalább 3 kisházi sikeres beadása (de mindkét nyelvből legalább 1) | ||
===Megajánlott jegy=== | ===Megajánlott jegy=== | ||
− | * Azok a hallgatók, akiknek a nagy házi feladata mindkét nyelven bejut a létraversenybe, megajánlott jegyet kaphatnak. | + | * Azok a hallgatók, akiknek a nagy házi feladata mindkét nyelven bejut a létraversenybe (80% vagy jobb teszteredmény), megajánlott jegyet kaphatnak. A létraversenyben az alap teszteknél nehezebb, időigényesebb tesztesetekkel futtatják a megoldásod, így igencsak hatékonyan kell megírod. |
− | + | ** 4-es jegyhez a két nyelv nagy házijához dokumentációt is kell készíteni, és a házit meg kell védeni. | |
− | * Jeles megajánlott jegyet kap az, akinek programja ezen felül a létraverseny teszteseteinek legalább 40%-át időkorláton belül teljesíti. | + | ** Jeles megajánlott jegyet kap az, akinek programja ezen felül a létraverseny teszteseteinek legalább 40%-át időkorláton belül teljesíti. |
==A tárgyról== | ==A tárgyról== | ||
− | * [[Deklaratív programozás | + | * [[Deklaratív programozás - Kedvcsináló | Kedvcsináló]] |
* '''Mottó:''' Ami igaz, nem biztos, hogy gyors is. | * '''Mottó:''' Ami igaz, nem biztos, hogy gyors is. | ||
− | * [[ | + | * [[Tantárgynevek rövidítései levlistás levelek tárgyához|Ajánlott rövidítés]]: dp/deklapo |
===Kapcsolódó tárgyak=== | ===Kapcsolódó tárgyak=== | ||
− | * [[ | + | * [[Nagyhatékonyságú logikai programozás]] |
==Miből érdemes tanulni?== | ==Miből érdemes tanulni?== | ||
* [http://dp.iit.bme.hu/dp-current/ Fóliák]. A diasor nagyon jó, mindent meg lehet belőle tanulni. | * [http://dp.iit.bme.hu/dp-current/ Fóliák]. A diasor nagyon jó, mindent meg lehet belőle tanulni. | ||
+ | * [[Media:depo_ea_2016.pdf|A 2016-os előadás diák]] | ||
* Prolog: | * Prolog: | ||
** jegyzet: Szeredi Péter, Benkő Tamás: Deklaratív programozás. Bevezetés a logikai programozásba. Oktatási segédlet, 2004. [http://dp.iit.bme.hu/prolog/jegyzet/dp04s_jegyzet.pdf.gz Eredeti], [[Media:dp_2004_jegyzet.pdf | VIKWiki mirror – kereshető változat]]. | ** jegyzet: Szeredi Péter, Benkő Tamás: Deklaratív programozás. Bevezetés a logikai programozásba. Oktatási segédlet, 2004. [http://dp.iit.bme.hu/prolog/jegyzet/dp04s_jegyzet.pdf.gz Eredeti], [[Media:dp_2004_jegyzet.pdf | VIKWiki mirror – kereshető változat]]. | ||
47. sor: | 49. sor: | ||
==Gyakorlatok== | ==Gyakorlatok== | ||
− | A tárgyból kéthetente gyakorlatok vannak, az előadáson szereplő programozási nyelvnek megfelelően. | + | A tárgyból általában, de nem rendszeresen kéthetente hetente gyakorlatok vannak, az előadáson szereplő programozási nyelvnek megfelelően. |
− | + | Gyakorlatok után érdemes az ETS-ben lévő feladatokat megoldani pluszban, önáló munkaként. | |
− | |||
− | + | ==Kis házi feladatok== | |
− | * Kötelező beadni a 7 kisháziből 3- | + | * Kötelező beadni a 7 kisháziből 3-mat, de mindét nagy nyelvből legalább 1-1 kell hogy legyen. |
− | * 3-3 feladat Prologból és Erlang-ból. | + | * 3-3 feladat Prologból és Erlang-ból, és egy Céklából. |
− | * Beadás ETS-en keresztül. | + | * Beadás ETS-en keresztül, automatikusan tesztelésre kerül. |
− | * Minden feladat jó megoldásáért 1-1 pluszpont | + | * Minden feladat jó megoldásáért 1-1 pluszpont. |
* Össz. max. +7 pont. | * Össz. max. +7 pont. | ||
− | + | ==Nagy házi feladat== | |
− | * Nem kötelező beadni. | + | * Nem kötelező beadni. Ugyanakkor még ZH-ra készülés mellett is érdemes próbálkozni a feladat megoldásával, ráadásul néhány pontot könnyen lehet szerezni még akkor is, ha nem teljes és hatékony a megoldásod. |
* 1 feladat, amit Prologban és Erlangban is meg lehet oldani. | * 1 feladat, amit Prologban és Erlangban is meg lehet oldani. | ||
* 10 teszteset, 0,5 pont/helyes lefutás/nyelv. | * 10 teszteset, 0,5 pont/helyes lefutás/nyelv. | ||
− | * 5 pont a doksi. | + | * 2,5 pont a doksi nyelvenként. |
* Össz. 15 pont. | * Össz. 15 pont. | ||
+ | * A nagy házi megoldása időigényes, sok dolgot kell számításba venni. Előre nézd meg, a többi tárgy mellett lesz-e rá időd. | ||
+ | * A nehézség ellenére mégis érdemes erre hajtani, hiszen rögtön ki tudod próbálni a programot, ZH-n sokkal bizonytalanabb leszel, több időd jut megtervezni és elkészíteni a feladatot. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
==Zárthelyi== | ==Zárthelyi== | ||
− | * Kötelező. | + | * Kötelező azoknak, akiknek nem fogadták el, vagy nem adtak be nagyházit. |
* Semmilyen jegyzet, segédlet nem használható. | * Semmilyen jegyzet, segédlet nem használható. | ||
− | * A | + | * A zh anyaga az egész féléves anyag, beleértve az előadáson elhangzott néhány alapszintű könyvtári függvényt/eljárást. |
* A sikeres zh feltétele a maximális részpontszám 40%-ának megszerzése mindkét nyelven. | * A sikeres zh feltétele a maximális részpontszám 40%-ának megszerzése mindkét nyelven. | ||
− | * | + | * Össz. 85 pont. |
− | * | + | * A ZH-n mindkét nyelv részének max pontszáma 85. A végeredménynél ezek számtani átlagát veszik. |
+ | |||
+ | * [[Deklaratív programozás - Tippek ZH-ra és vizsgára | Régi tárgyhoz tartozó tippek ZH-ra és vizsgára]] | ||
− | == | + | ==Hasznos fordítók és futtató környezetek a házikhoz== |
+ | ===Emacs howto Windows alá=== | ||
− | + | Írtam egy rövid összegzést arról, hogy az emacsot mi módon lehet Windows alatt összekapcsolni az SML és Prolog fordítókkal: [[Deklaratív programozás - Emacs telepítési lépések|Emacs telepítési lépések]]. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | ===Online Prolog IDE-k=== | |
− | |||
− | |||
− | + | * [http://swish.swi-prolog.org/ SWISH] | |
+ | ** Bal oldalt kell megadni a kódot, jobb alul a futtatandó parancsot és jobb felül jelenik meg az eredmény. | ||
+ | ** Jobb alul a Solutions -> Debug (trace)-re kattintva lehet debug-olni. | ||
+ | * [http://www.tutorialspoint.com/execute_prolog_online.php tutorialspoint - Coding Ground] | ||
− | |||
− | + | {{Lábléc_-_Mérnök_informatikus_alapszak}} |
A lap jelenlegi, 2019. május 22., 16:28-kori változata
Az informatikus alapképzés többi tárgyában a programozási paradigmák közül a procedurális és objektumorientált paradigmákra esik a hangsúly. Ezekkel a módszerekkel a Hogyan? kérdést igyekszünk megválaszolni kódírásnál. Az algoritmusok, állapotok pontos ismerete szükséges. Létezik egy másik család is, a deklaratív programozás, ami elsősorban a Mit? kérdésre ad választ: nem határozzuk meg pontosan, hogyan kapjuk meg az eredményt, csak azt, hogy mire van szükségünk. A tárgy ezt a családot mutatja be egy logikai és egy funkcionális programozási nyelven keresztül.
Tartalomjegyzék
Követelmények
Félévközi feladatok
- Sikeres nagyZH (azaz mindkét nyelvből legalább 40%-os teljesítmény)
- Legalább 3 kisházi sikeres beadása (de mindkét nyelvből legalább 1)
Megajánlott jegy
- Azok a hallgatók, akiknek a nagy házi feladata mindkét nyelven bejut a létraversenybe (80% vagy jobb teszteredmény), megajánlott jegyet kaphatnak. A létraversenyben az alap teszteknél nehezebb, időigényesebb tesztesetekkel futtatják a megoldásod, így igencsak hatékonyan kell megírod.
- 4-es jegyhez a két nyelv nagy házijához dokumentációt is kell készíteni, és a házit meg kell védeni.
- Jeles megajánlott jegyet kap az, akinek programja ezen felül a létraverseny teszteseteinek legalább 40%-át időkorláton belül teljesíti.
A tárgyról
- Kedvcsináló
- Mottó: Ami igaz, nem biztos, hogy gyors is.
- Ajánlott rövidítés: dp/deklapo
Kapcsolódó tárgyak
Miből érdemes tanulni?
- Fóliák. A diasor nagyon jó, mindent meg lehet belőle tanulni.
- A 2016-os előadás diák
- Prolog:
- jegyzet: Szeredi Péter, Benkő Tamás: Deklaratív programozás. Bevezetés a logikai programozásba. Oktatási segédlet, 2004. Eredeti, VIKWiki mirror – kereshető változat.
- Erlang
- magyar könyv nincs, a diasorból érdemes tanulni
- ajánlott könyv: Joe Armstrong: Programming Erlang: Software for a Concurrent World
- ELTE anyagok: http://nyelvek.inf.elte.hu/leirasok/Erlang/
- ingyenes tutorial: http://learnyousomeerlang.com/
Gyakorlatok
A tárgyból általában, de nem rendszeresen kéthetente hetente gyakorlatok vannak, az előadáson szereplő programozási nyelvnek megfelelően.
Gyakorlatok után érdemes az ETS-ben lévő feladatokat megoldani pluszban, önáló munkaként.
Kis házi feladatok
- Kötelező beadni a 7 kisháziből 3-mat, de mindét nagy nyelvből legalább 1-1 kell hogy legyen.
- 3-3 feladat Prologból és Erlang-ból, és egy Céklából.
- Beadás ETS-en keresztül, automatikusan tesztelésre kerül.
- Minden feladat jó megoldásáért 1-1 pluszpont.
- Össz. max. +7 pont.
Nagy házi feladat
- Nem kötelező beadni. Ugyanakkor még ZH-ra készülés mellett is érdemes próbálkozni a feladat megoldásával, ráadásul néhány pontot könnyen lehet szerezni még akkor is, ha nem teljes és hatékony a megoldásod.
- 1 feladat, amit Prologban és Erlangban is meg lehet oldani.
- 10 teszteset, 0,5 pont/helyes lefutás/nyelv.
- 2,5 pont a doksi nyelvenként.
- Össz. 15 pont.
- A nagy házi megoldása időigényes, sok dolgot kell számításba venni. Előre nézd meg, a többi tárgy mellett lesz-e rá időd.
- A nehézség ellenére mégis érdemes erre hajtani, hiszen rögtön ki tudod próbálni a programot, ZH-n sokkal bizonytalanabb leszel, több időd jut megtervezni és elkészíteni a feladatot.
Zárthelyi
- Kötelező azoknak, akiknek nem fogadták el, vagy nem adtak be nagyházit.
- Semmilyen jegyzet, segédlet nem használható.
- A zh anyaga az egész féléves anyag, beleértve az előadáson elhangzott néhány alapszintű könyvtári függvényt/eljárást.
- A sikeres zh feltétele a maximális részpontszám 40%-ának megszerzése mindkét nyelven.
- Össz. 85 pont.
- A ZH-n mindkét nyelv részének max pontszáma 85. A végeredménynél ezek számtani átlagát veszik.
Hasznos fordítók és futtató környezetek a házikhoz
Emacs howto Windows alá
Írtam egy rövid összegzést arról, hogy az emacsot mi módon lehet Windows alatt összekapcsolni az SML és Prolog fordítókkal: Emacs telepítési lépések.
Online Prolog IDE-k
- SWISH
- Bal oldalt kell megadni a kódot, jobb alul a futtatandó parancsot és jobb felül jelenik meg az eredmény.
- Jobb alul a Solutions -> Debug (trace)-re kattintva lehet debug-olni.
- tutorialspoint - Coding Ground
Bevezetők | |
---|---|
1. félév | |
2. félév | |
3. félév | |
4. félév | |
5. félév | |
6. félév | |
7. félév |