Lektionsplanering
Årskurs: Gymnasiet
Ämne: Programmering 2
Tema: Kod
Koppling till styrdokument
Centralt innehåll
- Grunderna för klasserna, objekt, egenskaper och metoder.
- Arv, inkapsling och polymorfism.
- Skapande av klasser och objekt i ett objektorienterat programspråk utifrån tidigare analys och design.
- Användning av klasser och att genom arv förändra beteende hos klasser som ingår i egna och andras klasshierarkier och standardbibliotek.
- Generiska klasser och metoder.
- Variablers och metoders synlighet och livslängd.
- Stark och svag samt statisk och dynamisk typning.
- Identifierares synlighet och livslängd.
Betygskriterier
- Eleven formulerar och planerar i samråd med handledare programmeringsuppgifter med pseudokod eller diagramteknik.
- I planeringen väljer eleven med viss säkerhet kontrollstrukturer, metoder, variabler, datastrukturer och algoritmer som är adekvata för uppgiften.
- I sin programmering skapar eleven med konsekvent kodningsstil och tydlig namngivning korrekt, strukturerad och enkelt kommenterad källkod med tillfredsställande resultat.
Lärarledda instruktioner
Introduktion till objektorienterad programmering (10 min)
- Presentera grunderna för objektorienterad programmering och dess nyckelkoncept.
- Förklara begrepp som klasser, objekt, arv och polymorfism.
- Ge exempel på vardagliga objekt som kan omvandlas till programmeringsobjekt.
- Diskutera vikten av återanvändbarhet och modularitet i programmering.
Metoder och egenskaper (10 min)
- Förklara skillnaden mellan egenskaper och metoder i klasser.
- Visa hur man definierar en klass med olika egenskaper.
- Demonstrera skapandet av metoder och hur de kan användas i klassen.
- Låt eleverna se exempel på hur dessa tillämpas i praktiken genom kodsnuttar.
Arv i programmering (15 min)
- Introducera begreppet arv och varför det är viktigt inom objektorienterad programmering.
- Visa hur man skapar en basklass och dess underklasser.
- Diskutera de fördelar som arv medför, såsom kodåteranvändning.
- Ge exempel med en konkret kod som demonstrerar arv.
Praktisk övning med klasser (15 min)
- Låt eleverna arbeta i par för att skapa sina egna klasser.
- Be dem inkludera metoder och egenskaper i klasserna.
- Uppmuntra dem att använda arv för att se hur de kan utvidga sin klassdesign.
- Kort feedback och diskussion kring vad som har fungerat bra och vad som har varit en utmaning.
Ämnesbegrepp
Begrepp | Förklaring | Etymologi |
---|---|---|
Klass | En mall eller struktur för att skapa objekt. | Från latin “classis” som betyder “kategori”. |
Objekt | En instans av en klass med definierade egenskaper. | Från latin “objectum” som betyder “vad som ligger framför”. |
Arv | Mekanismen där en klass kan ärva egenskaper och metoder från en annan klass. | Från latin “hereditas” som betyder “arv”. |
Polymorfism | Förmågan hos olika objekt att reagera på samma metodanrop på olika sätt. | Från grekiska “polus” (många) och “morphe” (form). |
Inkapsling | Principen att dölja interna objektets tillstånd och endast exponera en offentlig metod. | Från latin “inclusio” som betyder “att stänga in”. |
Diskussionsfrågor
- A. Vad är fördelarna med att använda objektorienterad programmering jämfört med proceduriell programmering? Kan ni ge exempel på projekt där detta kan vara viktigt?
- B. Hur kan arv förenkla utvecklingen av ett program? Diskutera hur det kan leda till färre fel och enklare underhåll.
- C. Vilka etiska överväganden borde programmerare ta hänsyn till när de utvecklar program som använder eller samlar in personlig data? Diskutera potentiella risker och hur man kan mildra dem.
Aktivitet
Låt eleverna arbeta med en praktisk uppgift där de ska designa och bygga en enkel applikation i sina valda programmeringsspråk med fokus på objektorienterad programmering. Eleverna ska skapa minst två klasser som representerar olika objekt i ett scenario, definiera deras egenskaper och metoder, samt implementera arv mellan klasserna. De bör också inkludera en interaktiv del där användaren kan interagera med deras program. Avrunda aktiviteten med en gemensam genomgång där grupperna presenterar sina klassdiagram och exempel på kod.
Exit-ticket
- Vad är en klass och dess betydelse i programmering?
- Hur implementeras arv i objektorienterad programmering?
- Beskriv en situation där polymorfism är användbar.
- Vad är en egenskap och hur skiljer den sig från en metod?
- Vilka är de främsta fördelarna med inkapsling inom programmering?
Hemuppgift
Eleverna ska skriva en kortare rapport (1-2 sidor) där de beskriver ett projekt de varit involverade i, där objektorienterad programmering användes. De ska inkludera en diskussion kring de klasser de skapade, vilka metoder och egenskaper som definierades, samt hur arv och polymorfism tillämpades i deras lösning. Eleverna ska även reflektera över eventuella utmaningar de stötte på under arbetets gång, hur de löste dem och vad de skulle ha gjort annorlunda.
Citat
”Simplicity is the soul of efficiency.” – Austin Freeman. Citatet påminner om vikten av att hålla programmering enkel och effektiv genom att använda objektorienterade principer som arv och inkapsling, vilket är centrala teman i lektionen.
Nästa lektion
Förslag på tema för nästa lektion: “Felsökning och testning av programmeringskod”. Den föreslagna lektionen syftar till att ge eleverna verktyg och metoder för effektiv felsökning, testning och kvalitetssäkring av deras kod.