Skip to content

Funktioner och modularitetAktiviteter & undervisningsstrategier

Att arbeta aktivt med funktioner och modularitet genom konkreta uppgifter gör abstrakt programmeringstänkande synligt och tillgängligt för eleverna. Genom att fysiskt skapa, bryta ner och omorganisera kod förstår de direkt hur funktioner förenklar uppgifter och minskar komplexitet. Aktiviteterna är utformade för att eleverna ska erfara nyttan av modularitet snarare än att bara lära sig definitioner.

Årskurs 6Digitalt skapande och tekniska system4 aktiviteter35 min50 min

Lärandemål

  1. 1Designa en funktion i blockbaserad programmering som utför en specifik grafisk uppgift, såsom att rita en kvadrat.
  2. 2Analysera hur en befintlig kodsnutt kan delas upp i mindre funktioner för att förbättra läsbarheten.
  3. 3Förklara med egna ord hur användningen av funktioner minskar antalet kodrader och gör det lättare att hitta fel.
  4. 4Jämföra två liknande program, där det ena använder funktioner och det andra inte, och argumentera för fördelarna med det funktionsbaserade programmet.

Vill du en komplett lektionsplan med dessa mål? Skapa ett uppdrag

Färdiga Aktiviteter

45 min·Par

Parprogrammering: Bygg ett räkneprogram

Dela elever i par. Låt dem först skriva ett linjärt program för att räkna poäng i ett spel. Sedan bryter de ner det i funktioner för poängberäkning och uppdatering. Testa och jämför tid för felsökning före och efter.

Förberedelse & detaljer

Analysera hur funktioner kan förbättra läsbarheten och underhållbarheten i ett program.

Handledningstips: Under parprogrammeringen, uppmuntra eleverna att turas om att vara 'förare' och 'navigatör' för att säkerställa att båda reflekterar över funktionernas roll.

Setup: Flexibel möblering för gruppbyten

Materials: Texter eller material till expertgrupperna, Mall för anteckningar, Grafisk arrangör för sammanfattning

FörståAnalyseraUtvärderaRelationsförmågaSjälvreglering
50 min·Smågrupper

Stationer: Funktionsexempel

Sätt upp tre stationer med Scratch-projekt: en för ritfunktion, en för loopfunktion och en för input-hantering. Grupper roterar, skapar egna funktioner och integrerar i ett gemensamt projekt. Diskutera modularitet efteråt.

Förberedelse & detaljer

Designa en funktion som utför en specifik uppgift i ett större program.

Handledningstips: Vid stationerna, placera tydliga exempel på både bra och dålig modularitet bredvid varandra så eleverna direkt kan se skillnaden.

Setup: Flexibel möblering för gruppbyten

Materials: Texter eller material till expertgrupperna, Mall för anteckningar, Grafisk arrangör för sammanfattning

FörståAnalyseraUtvärderaRelationsförmågaSjälvreglering
35 min·Par

Refaktoriseringstävling

Ge hela klassen samma röriga kod. Individivt eller i par omvandlar de den till moduler med funktioner. Jämför i helklass och mät tid för att lägga till ny funktion.

Förberedelse & detaljer

Förklara hur uppdelning i funktioner gör det enklare att felsöka och återanvända kod.

Handledningstips: Under refaktoriseringstävlingen, ge eleverna ett tidsintervall per omgång och be dem motivera sina designval inför klassen efteråt.

Setup: Flexibel möblering för gruppbyten

Materials: Texter eller material till expertgrupperna, Mall för anteckningar, Grafisk arrangör för sammanfattning

FörståAnalyseraUtvärderaRelationsförmågaSjälvreglering
40 min·Individuellt

Funktionsdesignutmaning

Presentera ett stort problem, som ett väderprogram. Elever skissar funktioner på papper först, kodar sedan individuellt och delar i små grupper för feedback.

Förberedelse & detaljer

Analysera hur funktioner kan förbättra läsbarheten och underhållbarheten i ett program.

Handledningstips: För funktionsdesignutmaningen, be eleverna skissa sina funktioner på papper innan de skriver koden för att träna planeringsfasen.

Setup: Flexibel möblering för gruppbyten

Materials: Texter eller material till expertgrupperna, Mall för anteckningar, Grafisk arrangör för sammanfattning

FörståAnalyseraUtvärderaRelationsförmågaSjälvreglering

Att undervisa detta ämne

Lär eleverna att funktioner inte bara är en fråga om att spara tid eller plats i koden, utan om att skapa logiska enheter som kan testas och återanvändas. Undvik att introducera funktioner för tidigt; låt eleverna först uppleva frustration med upprepad och svåröverskådlig kod. Använd analogier från vardagen, som att jämföra funktioner med recept i en kokbok där varje recept är en tydlig och återanvändbar enhet.

Vad du kan förvänta dig

Eleverna ska kunna förklara varför funktioner används, identifiera lämpliga ställen att bryta ner kod i funktioner och tillämpa detta i praktiken. De ska också kunna jämföra modular och linjär kod samt argumentera för designval utifrån läsbarhet och återanvändbarhet.

De här aktiviteterna är en startpunkt. Det fullständiga uppdraget är upplevelsen.

  • Komplett handledningsmanuskript med lärardialoger
  • Utskriftsklart elevmaterial, redo för klassrummet
  • Differentieringsstrategier för varje typ av elev
Skapa ett uppdrag

Se upp för dessa missuppfattningar

Vanlig missuppfattningUnder parprogrammeringen, se upp för elever som enbart fokuserar på att korta ner koden utan att reflektera över modularitet eller läsbarhet.

Vad man ska lära ut istället

Ställ frågor som: 'Hur skulle någon annan kunna förstå den här delen av koden utan att ha skrivit den själv?' och 'Vilken del av koden gör egentligen vad?'

Vanlig missuppfattningUnder stationerna, observera om eleverna tror att fler funktioner automatiskt gör koden bättre.

Vad man ska lära ut istället

Be dem att jämföra ett exempel med fyra funktioner som gör ungefär samma sak med ett annat som har två funktioner som täcker alla steg. Fråga: 'Vilket är lättast att förstå och varför?'

Vanlig missuppfattningUnder funktionsdesignutmaningen, lyssna efter elever som tror att funktioner alltid måste anropas i en bestämd ordning.

Vad man ska lära ut istället

Be dem att testa sina funktioner genom att anropa dem i olika ordning och se om resultatet blir detsamma. Fråga: 'Vad händer om du byter plats på anropen?'

Bedömningsidéer

Utgångsbiljett

Efter parprogrammeringen, ge eleverna ett kodexempel i Scratch där en uppgift utförs utan funktioner. Be dem att rita en funktion som löser samma uppgift och namnge den. Fråga också varför denna funktion gör koden bättre.

Diskussionsfråga

Under refaktoriseringstävlingen, ställ frågan: 'Hur skulle ni organisera bygget av ett hus om ni delade upp arbetet i funktioner? Ge minst två exempel på 'funktioner' i husbyggandet och motivera varför de är användbara.'

Snabbkontroll

Under stationerna, visa två liknande kodblock i Scratch, där det ena är en lång, upprepad sekvens och det andra har brutits ner i funktioner. Be eleverna peka på det program som är lättast att förstå och förklara varför, med fokus på begreppet funktion.

Fördjupning & stöd

  • Utmana eleverna att skapa en funktion som hanterar flera inmatningar och ger olika resultat beroende på villkor, t.ex. en funktion som beräknar pris för olika mängder av en vara.
  • För elever som har svårt att se nyttan med funktioner, be dem att skriva om samma kod två gånger: en gång utan funktioner och en gång med, och sedan jämföra hur lätt det är att ändra i den senare versionen.
  • Låt eleverna utforska hur funktioner kan anropa andra funktioner, t.ex. en funktion för att rita en kvadrat som sedan används i en funktion för att rita ett hus.

Nyckelbegrepp

funktionEn namngiven samling kod som utför en specifik uppgift. Man kan 'anropa' funktionen för att köra koden den innehåller.
anropaAtt starta eller köra en funktion. När en funktion anropas, utförs koden som finns inuti den.
modulEn mindre, självständig del av ett större system. Inom programmering är en funktion ofta en modul.
parametrarVärden som skickas in till en funktion när den anropas, för att styra hur funktionen ska bete sig eller vad den ska arbeta med.
återanvändningMöjligheten att använda samma kod (ofta en funktion) flera gånger i ett program, eller till och med i olika program, utan att behöva skriva om den.

Redo att undervisa Funktioner och modularitet?

Skapa ett komplett uppdrag med allt du behöver

Skapa ett uppdrag