Skip to content
Datalogi · Gymnasiet 2

Idéer för aktivt lärande

Funktionell programmering

Funktionell programmering (FP) erbjuder ett alternativt sätt att tänka kring problemlösning, där vi fokuserar på 'vad' som ska göras snarare än 'hur' det ska göras steg för steg. Istället för att ändra på variabler använder vi rena funktioner och oföränderlig data. Detta paradigm blir allt viktigare i modern utveckling, särskilt för att hantera parallellism och stora datamängder.

Skolverket KursplanerDAODAT0 - 3. ProgramkonstruktionDAODAT0 - 4. Problemlösning
15–45 minPar → Hela klassen3 aktiviteter

Aktivitet 01

Stationsundervisning45 min · Smågrupper

Stationsundervisning: Map, Filter, Reduce

Tre stationer med olika uppgifter: en för att transformera data (map), en för att rensa data (filter) och en för att sammanställa data (reduce). Eleverna löser uppgifterna först med papper och penna för att förstå logiken.

Vad är en ren funktion?
MinnasFörståTillämpaAnalyseraSjälvregleringRelationsförmåga
Skapa en komplett lektion

Aktivitet 02

Utforskande cirkel30 min · Par

Utforskande cirkel: Kod-refaktorisering

Eleverna får en lång, rörig loop med många 'if'-satser. Deras uppgift är att i par skriva om den till en enda rad med funktionella metoder och diskutera vilken version som är lättast att läsa och testa.

Varför är oföränderlig data viktigt?
AnalyseraUtvärderaSkapaSjälvregleringSjälvkännedom
Skapa en komplett lektion

Aktivitet 03

EPA (Enskilt-Par-Alla): Varför oföränderlighet?

Eleverna diskuterar ett scenario där två personer försöker ändra samma dokument samtidigt. De utforskar hur idén om 'oföränderlig data' (att man skapar en ny kopia istället för att ändra originalet) kan lösa problemet.

Hur används map, filter och reduce?
FörståTillämpaAnalyseraSjälvkännedomRelationsförmåga
Skapa en komplett lektion

Några anteckningar om att undervisa detta avsnitt


Se upp för dessa missuppfattningar

  • Att funktionell programmering bara är för matematiker.

    Visa hur vanliga verktyg som Excel eller JavaScript-bibliotek använder funktionella principer. Genom praktiska exempel på datahantering ser eleverna nyttan i vardaglig kodning.

  • Att 'oföränderlig data' är ineffektivt för att det tar mer minne.

    Förklara hur moderna system optimerar detta och att vinsten i säkerhet och färre buggar ofta är värd det. Diskussioner om 'side effects' hjälper eleverna att förstå varför vi vill undvika att ändra globala variabler.


Metoder som används i denna översikt