Deklaratív programozás - Kedvcsináló
Mikor válasszam ezt?
NE akkor, ha nulla munkával akarsz kreditet szerezni :) A tárgyban két nehézség van: az egyik az imperatív gondolkodásmódról átállni a deklaratívra, a másik pedig a félévközi feladatok. Tehát aki azt hiszi, hogy nulla munkával jár a 6 kisházi, nagyházi, ZH, és vizsga megírása, az nagyon téved. Alapvetően, ha nem vagy jártas a deklaratív gondolkodásban, akkor elég sok időt rá kell szánni, hogy begyakorold. A kisházik erre nagyon alkalmasak, de így házinként 3-4-5 órát is el lehet pepecselni, és ha nem valamilyen exponenciális lépsészámú algoritmust akarsz megírni, akkor még többet is. Aki emlékszik az MI-re és a PDDL-re, az előnnyel indul, de az ottani házi az kb. az első kisházi felének a megoldásával azonos komplexitású. Ezzel nem azt akarom mondani, hogy nehéz a tárgy, mert alapvetően nem az, de IDŐIGÉNYES, sokat kell fölötte ülni! -- afro - 2009.11.03.
Ha fejlesztőként szeretnél dolgozni, akkor kifejezetten ajánlom a tárgyat, megtanít a deklaratív gondolkozásra, ami számtalan nyelvben előjöhet (pl. C++ template metaprogramozás). Ezen kívül interjúkon szeretnek rákérdezni rekurzív megoldásokra, ha érted a működését, sokkal könnyebben fogsz tudni kezelni pl. egy bináris fát. Megtanítják, hogy hogyan lehet hatékony rekurziót írni (tehát nyilván nem igaz az, hogy a rekurzió mindig használhatatlan).
Igaz, hogy a két nyelv elég régi, viszont ha a működést megérted, akkor a szintaktika nagyon könnyű, szerintem jól használhatóak a szemlélethez. Prologhoz csináltak egy futtatást modellező programot és a SWISH-en végig lehet debuggolni, amit írtál. Erlang-ból nekem nem sikerült működésre bírnom egy értelmes környezetet sem, nem tudom, hogy ott lehetne-e debuggolni. Jó hír viszont, hogy a két nyelv gyakorlatilag mechanikusan átfordítható egymásba, én így csináltam a kis házikat Erlangból (azaz kitalálsz az egyikre egy megoldást a másikhoz csak a szintaktikát kell átírni). Az oktatók nagyon cukik és segítőkészek, látszik rajtuk, hogy tényleg az a céljuk, hogy megértsd a dolgokat. Korrekten pontozzák a zh-kat is, de azért kell készülni ahhoz, hogy átmenj.
A nagy házi kifejezetten nehéz, ha a megajánlott jegyre mennél, akkor több héttel a beadás előtt legalább el kell kezdeni (sokkal nehezebb, mint a kis házik, nem lehet belőlük összerakni). Nekem mindegyik Prolog (és a Cékla) kis házi egy-egy napot vett kb. el a hétvégéből + 1 nap volt, mire rájöttem, hogy hogyan írom át Erlangba. Egyébként én személy szerint nagyon élveztem ezeket írni, mert egy logikai problémára kell megtalálni a megoldást, nem olyan, mint mondjuk egy JAVA házi, hogy van egy béna feladat, de igazából az egész a szintaktikáról és az OO elvekről szól.
Nem nehéz teljesíteni a tárgyat, de tényleg sok munkát kell beletenni. Viszont legalább tanulsz egy olyan dolgot, amit hasznosítani tudsz a későbbiekben. Minél több szemléletet ismersz, annál jobb fejlesztőnek számítasz, és annál könnyebb lesz új nyelveket megtanulni. -- Ráhel - 2020.01.02