Lektionsplanering för Avancerad Programmering
Årskurs: Gymnasiet
Ämne: Tillämpad programmering
Tema: Avancerad programmering
Koppling till styrdokument
Centralt innehåll
Denna lektion fokuserar på avancerade programmeringskoncept, inklusive rekursion och
iterativa metoder samt grundläggande programmeringsmönster. Eleverna får lära sig att använda
dessa tekniker för att lösa mer komplexa problem och förstå hur de kan effektivisera
programkod.
Kunskapskrav
Eleven ska kunna använda avancerade programmeringsmetoder och förstå hur dessa kan tillämpas
för att lösa problem och optimera kod.
Lärarledda instruktioner
Introduktion till rekursion (10 min)
- Förklara vad rekursion är och hur det fungerar inom programmering.
- Diskutera fördelarna och nackdelarna med att använda rekursion jämfört med iterativa
metoder. - Ge exempel på rekursiva funktioner, såsom Fibonacci-sekvensen och faktorialfunktioner.
Iterativa metoder (15 min)
- Beskriva vad en iterativ metod är och hur den skiljer sig från rekursion.
- Demonstrera hur man löser problem med loopar istället för rekursion.
- Ge exempel på när det är mer effektivt att använda iteration snarare än rekursion.
Programmeringsmönster (15 min)
- Introducera begreppet designmönster och deras syfte i programmering.
- Gå igenom några vanliga designmönster, exempelvis Singleton och Observer.
- Diskutera hur mönster kan hjälpa till att lösa vanliga problem och skapa mer återanvändbar
kod.
Praktisk tillämpning och exempel (10 min)
- Visa exempel på ett problem som kan lösas både rekursivt och iterativt, och diskutera
skillnaderna i implementeringen. - Besvara eventuella frågor och förbereda eleverna för praktiska övningar.
Aktivitet
Eleverna ska arbeta i par för att skriva och jämföra rekursiva och iterativa lösningar på ett
vanligt programmeringsproblem, som att beräkna ett tal i Fibonacci-sekvensen. De ska
analysera fördelarna och nackdelarna med varje metod. Genom denna aktivitet får de en
praktisk förståelse för både rekursion och iteration, samt hur olika typer av lösningar kan
påverka effektiviteten.
Exit-ticket
- Vad är rekursion? (En metod där en funktion anropar sig själv för att lösa ett problem.)
- Nämn ett exempel på ett problem som ofta löses med rekursion. (Fibonacci-sekvensen eller
faktorial.) - Vad är en iterativ metod? (En metod som upprepade gånger utför en åtgärd under en loop.)
- Ge ett exempel på ett designmönster. (Singleton eller Observer.)
- Vilken är en nackdel med att använda rekursion? (Det kan leda till stack overflow om
rekursionen går för djupt eller om basfallet inte hanteras korrekt.)
Hemuppgift
Som hemuppgift ska eleverna skapa ett program som implementerar både rekursiva och iterativa
lösningar för att räkna ut faktorialer för ett givet tal. De ska beskriva skillnaderna i kod
och diskutera vilken metod som var mer effektiv och varför. Syftet är att förstärka
förståelsen för avancerade programmeringskoncept.
Citat
”Programmering är konsten att skriva instruktioner för en maskin.” – Donald Knuth (1974)
Citatet understryker vikten av både design och struktur inom programmering, särskilt när det
gäller att hantera komplexa problem med avancerade tekniker.