At sætte deltagerne i stand til at anvende funktionsprogrammering ved løsning af praktiske såvel som mere teoretiske problemer.
Læringsmål:
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
anvende funktionsprogrammering på praktisk forekomne problemer
sætte sig ind i funktionelle teoridannelser og udnytte dem i forbindelse med programkonstruktion
analysere ressourceforbruget for et funktionelt program
opstille et funktionelt programdesign
analysere et funktionelt programdesign
vurdere funktionsprogrammerings rolle i en systemsammenhæng
give en kritisk analyse af program design
dokumentere et softwareprodukt kort og klart
Kursusindhold:
Kurset giver indsigt i avancerede emner indenfor funktionsprogrammering og deres brug i forbindelse med konkrete anvendelser. Der vil blive undervist i teoretiske emner. Disse vil indgå i konstruktionsopgaver der er inspireret af praktisk og/eller forskningsorienterede problemer.
Kursusforløbet er styret af 3 miniprojekter. Et miniprojekt er afpasset en uges varighed og det opstartes ved forelæsninger og øvelser som støtter op om emnet. Et miniprojektet resulterer i et produkt i form af et program og en minirapport.
Kursets indhold ændres årligt. Eksempler på temaer: Databaseanvendelser, ressourceplanlægning, parallel opsamling af information, Apps til mobiltelefoner, domænespecifikke sprog, afgørbarhedsprocedurer, fortolkere, analyseværktøjer, monadisk programmering, højereordens parsning.
Bemærkninger:
Kurset er tænkt som en overbygning af 02157 Funktionsprogrammering, som skal muliggøre en effektiv udnyttelse af funktionsprogramming i forbindelse med efterfølgende kurser og projekter på kandidatuddannelsen i Informationsteknologi, for eksempel indenfor programanalyse, afgørbarhedsprocedurer, og analyseværktøjer til indlejrede systemer.