Hoppa till innehållet
Teknik · Årskurs 9 · Algoritmer och Avancerad Programmering · Hösttermin

Grundläggande Datastrukturer

Eleverna introduceras till arrayer, listor och andra grundläggande datastrukturer.

Skolverket KursplanerLgr22: Teknik - Åk 7-9 - Hur algoritmer kan skapas och användas vid programmering

Om detta ämne

Grundläggande datastrukturer introducerar elever i årskurs 9 till arrayer, listor och staplar inom ämnet Digital Innovation och Systemförståelse. Eleverna lär sig att arrayer är sekventiella samlingar med fast storlek, vilket ger snabb direktåtkomst men kräver förplanering av utrymme. Listor är dynamiska och flexibla för insättningar och borttagningar i ändarna, men sökning kan ta längre tid. Genom att jämföra dessa strukturer analyserar eleverna hur valet påverkar algoritmers prestanda, kopplat till Lgr22:s mål om att skapa och använda algoritmer i programmering.

I enheten Algoritmer och Avancerad Programmering utforskar elever staplar som LIFO-strukturer (Last In, First Out), med praktiska exempel som återkallande i webbläsare eller undo-funktioner i program. Detta bygger systemtänkande och förståelse för hur dataflöden optimeras i verkliga system. Eleverna ställer sig frågor som: Hur fungerar en stack? Varför välja array framför lista?

Aktivt lärande passar utmärkt för datastrukturer eftersom elever kan modellera dem fysiskt med kort eller block, eller koda enkla exempel i Scratch eller Python. Sådana aktiviteter gör abstrakta koncept greppbara, underlättar jämförelser genom hands-on manipulation och främjar diskussioner om prestanda i små grupper.

Nyckelfrågor

  1. Jämför fördelarna med att använda en array kontra en lista för att lagra data.
  2. Förklara hur en stack fungerar och ge ett exempel på dess användning.
  3. Analysera hur valet av datastruktur påverkar en algoritmens prestanda.

Lärandemål

  • Jämför effektiviteten hos arrayer och länkade listor för datalagring baserat på insättnings- och sökoperationer.
  • Förklara principerna bakom en stack (LIFO) och demonstrera dess användning med ett programmeringsexempel.
  • Analysera hur valet av datastruktur (array, lista, stack) påverkar en given algoritms exekveringstid.
  • Identifiera situationer där en stack är den mest lämpliga datastrukturen för att lösa ett programmeringsproblem.

Innan du börjar

Grundläggande Programmeringskoncept (Variabler, Datatyper, Loopar)

Varför: Eleverna behöver förstå grundläggande programmeringskonstruktioner för att kunna arbeta med och förstå datastrukturer.

Introduktion till Algoritmer

Varför: Förståelse för vad en algoritm är och hur den stegvis löser ett problem är nödvändigt för att analysera datastrukturers påverkan på prestanda.

Nyckelbegrepp

ArrayEn samling av element av samma datatyp, lagrade i sammanhängande minnesplatser. Ger snabb åtkomst till element via index.
Länkad listaEn sekvens av noder där varje nod innehåller data och en referens till nästa nod. Flexibel för insättning och borttagning, men långsammare sökning.
StackEn datastruktur som följer principen LIFO (Last In, First Out). Element läggs till (push) och tas bort (pop) från samma ände.
LIFO (Last In, First Out)Principen för en stack där det senast tillagda elementet är det första som tas bort.

Se upp för dessa missuppfattningar

Vanlig missuppfattningArrayer och listor fungerar exakt likadant.

Vad man ska lära ut istället

Arrayer har fast storlek och konstant åtkomsttid, medan listor är dynamiska men långsammare för slumpmässig åtkomst. Fysiska modeller med kort hjälper elever se skillnaderna direkt, och grupptester avslöjar prestandaförändringar genom praktiska försök.

Vanlig missuppfattningEn stack är bara en lista utan ordning.

Vad man ska lära ut istället

Staplar följer strikt LIFO-princip, till skillnad från listor som tillåter åtkomst var som helst. Hands-on spel med block visar regeln tydligt, och diskussioner korrigerar genom att elever själva upplever begränsningarna.

Vanlig missuppfattningDatastrukturer påverkar inte algoritmers hastighet.

Vad man ska lära ut istället

Valet avgör tidskomplexitet, som O(1) för arrayåtkomst mot O(n) för lista. Aktiviteter med tidmätning i kod eller fysiska simuleringar gör elever medvetna om detta genom egna observationer och jämförelser.

Idéer för aktivt lärande

Se alla aktiviteter

Kopplingar till Verkligheten

  • Webbläsarens historikfunktion använder en stack för att hantera 'Tillbaka'-knappen. Varje besökt sida läggs till på stacken, och när användaren klickar 'Tillbaka' tas den senaste sidan bort från stacken.
  • Programvaruutvecklare använder stackar för att hantera funktionsanrop i program. När en funktion anropas, läggs dess information på stacken; när funktionen avslutas, tas informationen bort, vilket möjliggör återgång till den anropande funktionen.

Bedömningsidéer

Snabbkontroll

Visa eleverna två kodavsnitt: ett som använder en array för att lagra en lista med namn och ett som använder en länkad lista. Be dem skriva ner vilken struktur de tror är mest effektiv om de ofta behöver lägga till namn i slutet av listan och varför.

Diskussionsfråga

Ställ frågan: 'Tänk på en spelapp där du kan ångra ditt senaste drag. Vilken datastruktur skulle vara mest lämplig för att implementera ångra-funktionen, och hur skulle den fungera?' Låt eleverna diskutera i små grupper och presentera sina resonemang.

Utgångsbiljett

Ge varje elev ett kort med antingen 'Array' eller 'Länkad lista'. Be dem skriva en mening som beskriver en situation där deras tilldelade datastruktur är fördelaktig, och en mening om en situation där den är mindre fördelaktig.

Vanliga frågor

Hur förklarar man skillnaden mellan array och lista för årskurs 9?
Börja med fysiska modeller: array som fasta rutor på ett papper, lista som kedja av lappar. Visa hur array ger snabb åtkomst men krånglig utökning, medan lista växer lätt. Koppla till exempel som poänglistor i spel. Låt elever testa i kod för att se prestanda, vilket förstärker förståelsen i Lgr22-kontexten.
Vad är en stack och exempel på användning?
En stack är en LIFO-datastruktur där det senaste inlägget tas ut först. Exempel är webbläsarens bakåtknapp eller ctrl+Z i textredigerare. Elever kan modellera med tallrikar för att greppa principen, och koda enkla implementationer för att analysera prestanda i algoritmer.
Hur påverkar datastruktur en algoritms prestanda?
Fel struktur leder till ineffektiva operationer, t.ex. långsam sökning i stora listor. Arrayer optimerar åtkomst, listor insättningar. Genom tester i aktiviteter mäter elever tidskomplexitet och lär sig välja rätt för uppgifter, centralt i Lgr22:s programmeringsmål.
Hur kan aktivt lärande hjälpa elever förstå datastrukturer?
Aktiva metoder som fysiska modeller med kort och block gör abstrakta idéer konkreta. Elever manipulerar strukturer själva, testar prestanda i par och diskuterar i grupper, vilket avslöjar skillnader bättre än teori. Detta bygger djup förståelse och kopplar till systemtänkande i Digital Innovation.

Planeringsmallar för Teknik