A tantárgy célja, hogy segítséget nyújtson a Haskell tisztán funkcionális programozási nyelv alaposabb elsajátításában, példákon keresztül megmutassa annak gyakorlati alkalmazási lehetőségeit.
Ki tudja és kinek ajánlott hallgatni a tárgyat?
Az ELTE Eötvös József Collegium hallgatói részére alakítjuk és hirdetjük meg a tárgyat, elsősorban az ő jelentkezésükre számítunk, illetve ők a Neptunos jelentkezéstől is függetlenül fel tudják venni a tárgyat.
A tárgyat leginkább a programtervező informatikus BSc szakon tartott Funkcionális programozás tárgy folytatásaként ajánljuk (de semmiképpen sem azzal párhuzamosan vagy ahelyett). Valamelyest a Fordítóprogramok tárgy ismerete is hasznos, de nem elvárás.
MSc hallgatóknak helyette a Funkcionális nyelvek és Funkcionális nyelvek 2 tárgyak elvégzése javasolt. Akik azokat a tárgyakat már teljesítették, nem is vehetik fel ezt.
Ezeken felül mindenkinek javasolt, aki:
programtervező informatikus BSc szakon tisztán funkcionális programozás, esetleg konkrétan Haskell alkalmazásával szeretne szakdolgozatot készíteni, ilyen témájú kutatási és fejlesztési projektekben résztvenni;
hajlandó és képes félév közben is energiát fektetni a tárgy előadásainak látogatásába, a beadandók elkészítésébe, szükség esetén konzultálni.
Ajánlott irodalom
Az előadásokon olykor ezekből a könyvekből válogatunk esettanulmányokat, így bennük olykor megtalálható azok részletesebb leírása is. De ettől függetlenül általánosságban is javasolt ezek tanulmányozása, hiszen sokat tudnak segíteni a Haskell megismerésében.
B. O'Sullivan, D. Stewart, J. Goerzen. Real World Haskell, 1st Edition. O'Reilly Media, November 2008. (online)
P. Hudak. The Haskell School of Expression, 1st Edition. Cambridge University Press, February 2000.
J. Gibbons, O. de Moor. The Fun of Programming (Cornerstones of Computing). Palgrave Macmillan, June 2005.
G. Hutton. Programming in Haskell. Cambridge University Press, 2007.
S. Thompson. Haskell: The Craft of Functional Programming, 3rd Edition. Addison-Wesley, June 2011.
M. Lipovaca. Learn You a Haskell for Great Good! -- A Beginner's Guide. No Starch Press, April 2011. (online)
Órai jegyzet (2016/2017 tavasz)
(Ide kerülnek majd folyamatosan a tárgyhoz kapcsolódó jegyzetek, forráskódok.)
- előadás: Típusok: szinonimák (
type ), származtatás (newtype ), algebrai adattípusok (data ) (forráskódok)
- előadás:
undefined , kind, típusosztályok (class ), JSON állományok absztrakt ábrázolása (forráskódok)
- előadás: Műveletek a
Maybe típussal, absztrakt JSON-értékek megjelenítése: a Doc típus (forráskódok)
- előadás: JSON formátumú szövegek szintaktikai elemzése a
Parser típussal (forráskódok)
- előadás: JSON beolvasása a
Parser típussal, balrekurzív elemzés (forráskódok)
- előadás: Funktorok és applikatív funktorok, animációk készítése függvényekkel (forráskódok)
- előadás: Animációk funktorokkal, monádok (forráskódok)
- előadás: Programozás monádokkal, különböző monádtípusok definíciója (forráskódok)
- előadás: Rekord szintaxis,
State , Reader és Writer monádok (forráskódok)
- előadás: Monádtörvények, a monádok
join művelete, monádtranszformátorok (forráskódok)
- előadás: Monádtranszformátorok (forráskódok)
Konzultáció
A tantárgyhoz nem tartozik külön terembe beosztott, konzultációs időpont. Igény szerint viszont az oktatót bármikor meg lehet keresni ezügyben a holnapján közölt fogadóórák időpontjában, különleges esetben előzetes, emailen keresztüli egyeztetés alapján megbeszélt alkalommal.
Követelmények
A tárgyhoz tartozó számokérés alapvetően két fázisra osztható.
Félévközi feladatok
A félév folyamán heti rendszerességű kisbeadandókat kell tudni megoldani és beadni a BE-AD rendszeren keresztül, ahol a tárgy Haladó Haskell (EC) néven található meg. Ezek 50%-ának kell elfogadott állapotúnak kell lennie a félévvégi géptermi dolgozat időpontjáig, másképp nem lehet megírni. A BE-AD szerverre a kari, INF-es (Pandorás) azonosítóval és jelszóval lehet belépni.
Félévvégi géptermi dolgozat
A tárgyból jegyet a félév végén, vizsgaidőszakban tartandó géptermi dolgozatírással lehet szerezni. Ez alapvetően programozási feladatok önálló megoldását jelenti, amelyek témájukban igyekeznek felölelni a félév anyagát. Ehhez elérhető egy mintafeladat is.
Vissza az oktatói honlapra
Utolsó módosítás: 2017.05.17.
|