Provkonstruktion
Årskurs: Gymnasiet
Ämne: Programmering 2
Tema: Kod
Syfte
Syftet med provet är att bedöma elevernas förståelse och tillämpning av grundläggande begrepp och tekniker inom objektorienterad programmering, inklusive klassdesign, arv, inkapsling, och polymorfism. Provets utformning syftar även till att ge eleverna möjlighet att visa hur väl de kan planera, skapa och analysera programmeringslösningar.
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.
Prov
Faktafrågor
- Vad är en klass i objektorienterad programmering?
A) En typ av databastabell
B) En mall för att skapa objekt
C) En funktion som returnerar värden
D) En algoritm för sortering - Vilket av följande är en princip inom objektorienterad programmering?
A) Loopar
B) Inkapsling
C) Variabler
D) Algoritmer - Vad beskriver arv inom objektorienterad programmering?
A) Att skapa nya svårförståeliga klasser
B) (C) Att utöka ett program med externa bibliotek
C) Att en klass kan få egenskaper från en annan klass
D) Att duplicera kod - Vad menas med polymorfism?
A) Att alla klasser är lika
B) Förmågan hos olika objekt att reagera på samma metodanrop på olika sätt
C) Att bevara data permanenta
D) Att klassers metoder alltid måste vara statiska - Vad är skillnaden mellan en metod och en egenskap?
A) Egenskapen returnerar data medan metoden inte gör det
B) Metoden utför en åtgärd medan egenskapen representerar ett tillstånd
C) Inga skillnader mellan dem
D) Metoden är alltid offentlig medan egenskapen är privat - Vilket av följande är korrekt angående synlighet i klasser?
A) Alla metoder är alltid offentliga
B) Man kan definiera vilken del av en klass som är synlig för andra klasser
C) Synlighet påverkar inte programmeringsspråk
D) Synlighet är endast en fråga om kodpraktik - Vad är en konstruktor i en klass?
A) En metod som avslutar programmet
B) En variabel som håller klassen
C) En speciell metod som används för att skapa objekt
D) En typ av datatyp - Vad innebär inkapsling?
A) Att radera onödig kod
B) Att dölja interna tillstånd och exponerar bara nödvändiga metoder
C) Att skapa dubbla funktioner i klassen
D) Att göra allt offentligt - Vad används generiska klasser och metoder för?
A) Att skapa unika instanser av klasser
B) Att definiera klasser och metoder som kan arbeta med olika datatyper
C) Att skapa arrayfält
D) Att implementera arv - Vad kallas det metodanrop som kan variera beroende på vilket objekt som anropar det?
A) Statisk metod
B) Polymorf metod
C) Beroende metod
D) Privat metod - Vilken av följande är en fördel med objektorienterad programmering?
A) Det kräver alltid mer kod
B) Det möjliggör återanvändning av kod
C) Det gör program långsammare
D) Det är endast för stora projekt
Resonerande frågor
- Diskutera hur arv kan användas för att skapa en mer modulär programdesign. Detta ger eleverna möjlighet att visa sin förståelse för designmönster.
- Reflektera över vikten av inkapsling i kod och hur det kan påverka programmets långsiktiga underhåll. Detta låter eleverna få möjlighet att resonera kring kodens livslängd och hanterbarhet.
- Jämför fördelarna med att använda polymorfism i ett stort program. Eleverna kan visa att de förstår hur polymorfism förenklar programmets struktur.
- Beskriv en situation där du använt objektorienterad programmering i ett projekt. Detta gör att eleverna kan dela konkreta erfarenheter och reflektera över sina metoder.
- Argumentera för vilka etiska slutsatser en programmerare bör dra när de använder personuppgifter i sina program. Eleverna får möjlighet att visa att de kan tänka kritiskt kring sitt arbete.
- Ange hur generiska metoder kan förbättra kodens flexibilitet. Detta uppmuntrar eleverna att tänka på framtida användningar av sin kod.
- Diskutera hur en medveten användning av synlighet kan förhindra fel i programmet. Detta ger eleverna en chans att resonera kring designbeslut och konsekvenser.
- Analysera vikten av att använda konsekvent kodningsstil och tydlig namngivning i programmering. Eleverna ges möjlighet att argumentera för bra praxis i programmering.
Bedömning
Provet består av 15 faktafrågor värderade till 1 poäng vardera (totalt 15 poäng). De resonerande frågorna är värderade till 2 poäng vardera, med en total av 16 poäng. För E-nivå krävs minst 18 poäng, för C-nivå minst 25 poäng och för A-nivå minst 32 poäng, där man måste ha fått poäng på de resonerande frågorna för att uppnå A-nivå.