Funkcionális programozás a gyakorlatban: a Haskell

A tantárgy angol neve: Functional Programming in Practice: Haskell

Adatlap utolsó módosítása: 2008. május 14.

Tantárgy lejárati dátuma: 2010. április 20.

Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar
Mérnök informatikus szak

 

Villamosmérnöki szak

 

Választható tárgy

 

 

Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VITMAV69   2/0/0/f 2  
3. A tantárgyfelelős személy és tanszék Dr. Rétvári Gábor Ferenc,
4. A tantárgy előadója
Név:

 

Beosztás:

 

Tanszék, Int.:

 

Dr. Rétvári Gábor

 

tud. segédmunkatárs

 

TMIT

 

Németh Felicián

 

egy. tanársegéd

 

TMIT

 

5. A tantárgy az alábbi témakörök ismeretére épít

A számítógép-programozás alapjai

6. Előtanulmányi rend
Ajánlott:
nincs
7. A tantárgy célkitűzése Napjaink egyik legdivatosabb, és kétségkívül egyik legérdekesebb programozási nyelve a Haskell. A Haskell erősen típusos, tisztán funkcionális programozási nyelv, mely remekül használható az általános mérnöki gyakorlatban és az infokommunikáció szűkebb területén egyaránt. A tárgy célkitűzése, hogy a hallgatók gyakorlati problémák megoldásán keresztül a problémamegoldás egy új, a mérnöki gyakorlatban széles körben használható megközelítését sajátítsák el. A hallgatók a félév során megismerkednek a Haskell szintaktikájával, majd az infokommunikáció mérnöki gyakorlatában fontos hálózati és gráfelméleti feladatok megoldásával járatosságot szereznek a funkcionális programozás alapvető módszertanában
8. A tantárgy részletes tematikája

Ismerkedés a Haskellel, a fordítókörnyezet és interpreterek letöltése, installálása. Elemi szintaktika, beépített típusok, felhasználói típusok, polimorfikus típusok, rekurzív típusok. Aritmetika, alapműveletek, műveletek listákkal, (map, fold, filter), list comprehensions, string-ek

Függvények, mintaillesztés, wildcard-ok, késleltetett (lusta) kiértékelés. Típusok, típusosztályok. Alapvető adatstruktúrák (bináris fák, általános fák, stb) és algoritmusok (keresés, rendezés, stb), indexlisták, tömbök, asszociatív memóriák. Hálózati problémák tisztán funkcionális megoldása: gráf-adatstruktúrák és -algoritmusok, legrövidebb út, hálózati folyamproblémák megoldása

Input/output, standard input/output, fájlműveletek, kivételkezelés. A Standard Prelude és a beépített osztályok és könyvtárak, modulok, szimbólumok importálása/exportálása, névterek

Programozás monádokkal, értelmezés, használat, szintaktika, egyszerű állapotmonád implementálása. Hálózati problémák monadikus megoldása: monadikus gráfalgoritmusok

9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

Előadás

10. Követelmények

 

a. A szorgalmi időszakban: féléves házifeladat megoldása


11. Pótlási lehetőségek

A házifeladatok pótlólagos leadása a pótlási időszakban, egy kijelölt időpontban lehetséges.

 

12. Konzultációs lehetőségek

Igény szerint, az oktatóval egyeztetve.

13. Jegyzet, tankönyv, felhasználható irodalom

Paul Hudak: The Haskell school of expression, Cambridge University Press, New York, 2000

14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
Kontakt óra28
Félévközi készülés órákra10
Felkészülés zárthelyire 
Házi feladat elkészítése22
Kijelölt írásos tananyag elsajátítása 
Vizsgafelkészülés 
Összesen60

 

15. A tantárgy tematikáját kidolgozta
Név:

 

Beosztás:

 

Tanszék, Int.:

 

Dr. Rétvári Gábor

 

tud. segédmunkatárs

 

TMIT