At give deltagerne et begrebsmæssigt og praktisk grundlag for at modellere, analysere og konstruere systemer med udgangspunkt i en funktionel, deklarativ tilgang.
Læringsmål:
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
etablere et funktionelt design for et givet problem, således at hovedbegreberne for problemet direkte kan spores i designet
beherske funktionelle tilgange til programmering
kommunikere løsninger til problemer på en klar og præcis måde
anvende begrebet om funktioner som "first-class citizens"
aflede typer for funktionelle programmer
analysere effekten af et program skrevet i et funktionelt sprog
bevise programkorrekthed baseret på en given metode
formulere programkorrekthed og evaluere forskellige bevisstrategier, og foretage beviser
forstå den rolle en funktionel tilgang har i samspil med andre paradigmer
Kursusindhold:
Funktionsprogrammering, herunder rekursive funktioner, rekursivt definerede datatyper, højereordens funktioner, et stærkt typebegreb, og problemløsningsteknikker.
Deklarativ modellering ved brug af et funktionsprogrammeringssprog med et stærkt typebegreb, og "rapid prototyping".
Programkorrekthed, herunder strukturel induktion og andre bevisteknikker.