Högskola och universitet hos Göteborgs universitet, 7,5 högskolepoäng.
Denna kurs bygger vidare på grundläggande funktionell programmering och fokuserar på avancerade tekniker för att designa robusta, underhållbara och effektiva program. Studenterna utforskar centrala abstraktioner som funktorer och monader för att hantera effekter som tillstånd och I/O på ett rent funktionellt sätt. Kursen behandlar även design av inbäddade domänspecifika språk (EDSL), säker samtidighet med Software Transactional Memory (STM) och tekniker för parallell beräkning baserade på algebraiska egenskaper. Stor vikt läggs vid praktiska färdigheter i funktionell programmering, med fokus på egenskapsbaserad testning och kalkylerande resonemang för att uppnå korrekthet och prestanda. Kursen utvecklar förmågan att kritiskt bedöma avvägningar mellan abstraktion och effektivitet.