Kursen går igenom dels de programmeringstekniker som används inom funktionella programmeringsspråk, dels hur program kan delas upp i flera exekverande trådar och hur dessa kan koordineras. Exempel på programmeringstekniker är rekursiva definitioner, icke uppdaterbara datastrukturer, högre ordningens funktioner och s.k. “closures”. Koordinering av multipla trådar visas dels genom modifiering av gemensamma datastrukturer dels genom meddelande mellan processer.
Kursen kommer att använda sig av ett programmeringsspråk som huvudspråk men även visa likheter och skillnader med andra funktionella språk.