Skip to content
Datalogi · Gymnasiet 2

Idéer för aktivt lärande

Händelsestyrd programmering

Händelsestyrd programmering är grunden för nästan alla moderna användargränssnitt. Istället för att programmet körs från start till mål i en rak linje, 'lyssnar' det efter händelser som musklick, tangenttryckningar eller nätverksmeddelanden. Detta kräver en förståelse för asynkronitet och händelseloopar.

Skolverket KursplanerDAODAT0 - 3. ProgramkonstruktionDAODAT0 - 6. Gränssnitt
20–30 minPar → Hela klassen3 aktiviteter

Aktivitet 01

Simuleringsövning25 min · Hela klassen

Simuleringsövning: Händelseloopen

En elev agerar 'Händelseloop' och tar emot lappar från klasskamraterna (händelser som 'klick' eller 'timer'). Eleven måste fördela dessa till rätt 'hanterare' (andra elever) i rätt ordning utan att blockera loopen.

Hur fungerar en händelseloop?
TillämpaAnalyseraUtvärderaSkapaSocial MedvetenhetBeslutsfattande
Skapa en komplett lektion

Aktivitet 02

Utforskande cirkel30 min · Smågrupper

Utforskande cirkel: UI-detektiverna

Eleverna undersöker en känd app och identifierar alla möjliga händelser som kan ske på en viss skärm. De skissar sedan i små grupper på hur logiken bakom dessa händelser skulle kunna se ut i pseudokod.

Vad är en callback-funktion?
AnalyseraUtvärderaSkapaSjälvregleringSjälvkännedom
Skapa en komplett lektion

Aktivitet 03

EPA (Enskilt-Par-Alla): Varför fryser programmet?

Eleverna får diskutera en situation där en app slutar svara när man laddar ner en stor fil. De brainstormar lösningar i par på hur man kan hålla gränssnittet aktivt medan nedladdningen sker i bakgrunden.

Hur hanteras asynkrona händelser?
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 programmet kör alla händelser samtidigt.

    Förklara att de flesta miljöer (som JavaScript) är enkeltrådade och kör en sak i taget i en kö. Genom att simulera kön fysiskt förstår eleverna varför en långsam funktion kan blockera hela gränssnittet.

  • Att en callback-funktion körs direkt när den definieras.

    Visa att funktionen bara skickas med som en instruktion för framtiden. Genom att använda liknelsen med ett 'recept som ska lagas först när gästerna kommer' blir konceptet tydligare.


Metoder som används i denna översikt