Programiranje u Haskellu
Nositelji
Predavanja
Laboratorijske vježbe
Opis predmeta
Studijski programi
Sveučilišni preddiplomski
Vještine - 3. semestar (3. semestar) Vještine - 5. semestar (5. semestar)Sveučilišni diplomski
Vještine - dipl.studij_FER3 - 1. semestar (1. semestar) Vještine - dipl.studij_FER3 - 3. semestar (3. semestar) Vještine - dipl.studij_FER3 - 1. semestar (1. semestar) Vještine - dipl.studij_FER3 - 3. semestar (3. semestar)Opće kompetencije
Studenti će se upoznati s osnovnim konceptima funkcijskog programiranja u Haskellu, upoznat će i steći razumijevanje osnove sintakse i semantike programskoga jezika Haskell, razvit će sposobost uočavanja i primjene funkcijskih idioma i funkcijskih oblikovnih obrazaca, bit će sposobni koristiti Haskell za rješavanje jednostavnijih praktičnih problema, pronaći i koristiti gotove programske biblioteke za rješavanje složenijih problema, znat će usporediti dva programa te utvrditi koji je program bolji prema zadanome kriteriju i upoznat će se osnovama razvoja programske podrške u Haskellu.
Ishodi učenja
- Definirati osnovne koncepte funkcijskog programiranja u Haskellu
- Objasniti sintaksu i semantiku programa u Haskellu
- Primijeniti Haskell za rješavanje jednostavnijih praktičnih problema
- Primijeniti funkcijske idiome i obrasce
- Koristiti gotove programske biblioteke za rješavanje složenijih problema
- Usporediti dva programa te utvrditi koji je program bolji prema zadanome kriteriju
- Dizajnirati programe u Haskellu
Oblici nastave
Tri sata nastave tjedno kroz 15 tjedana.
Laboratorijske vježbeDva sata predavanja ispresijecana su s nekoliko praktičnih vježbi na računalu (ukupno jednan sat vježbi na svaka dva sata predavanja).
Programske vježbeStudenti će dobivati domaće zadaće u obliku programskih zadataka, a svoja rješenja demonstrirat će nastavniku ili demonstratoru.
Način ocjenjivanja
Kontinuirana nastava | Ispitni rok | |||||
---|---|---|---|---|---|---|
Vrsta provjere | Prag | Udio u ocjeni | Prag | Udio u ocjeni | ||
Laboratorijske vježbe | 50 % | 70 % | 0 % | 0 % | ||
Seminar/Projekt | 50 % | 30 % | 0 % | 0 % |
Napomena / komentar
Međuispit ne doprinosi ukupnim bodovima, ali je potrebno točno riješiti barem 50% međusipita.
Tjedni plan nastave
- Uvod u funkcijsko programiranje. GHC prevodioc i drugi resursi.
- Osnovni jezični konstrukti. N-torke i liste.
- Tipovi i tipski razredi.
- Sintaksa funkcija.
- Rekurzivne funkcije. Korekurzivne funkcije.
- Funkcije višeg reda 1.
- Funkcije višeg reda 2.
- Korisnički definirani tipovi podataka 1.
- Korisnički definirani tipovi podataka 2. Moduli.
- Korisnički definirani tipovi podataka 3. Standardna biblioteka.
- Ulazno-izlazne operacije 1.
- Ulazno-izlazne operacije 2. Generator slučajnih brojeva.
- Monade i monadičko programiranje 1.
- Monade i monadičko programiranje 2.
- Striktnost. Dokumentiranje programskog koda. Paketi.