I studieretningscasen handler det ikke om at lave det perfekte program, men om at vise forståelse for programmering som metode: hvordan man analyserer, planlægger, strukturerer og løser et problem med programmering som værktøj. Det er processen og refleksionen, vi vurderer. Du skal ikke udvikle et færdigt og fuldt fungerende program, men om at vise, at du forstår programmering som metode og problemløsningsværktøj.
Det betyder, at vi i programmeringsdelen kigger på:
Hvordan du analyserer og forstår en problemstilling
Hvordan du planlægger en løsning med programmering
Hvordan du organiserer data og struktur i din løsning
Hvordan du koder og dokumenterer løsningen (det kan være delvis)
Selve løsningen behøver ikke være stor eller kompleks – det vigtige er, at du kan forklare, hvordan programmering kan bruges til at løse casens behov, og at du kan omsætte dine idéer til kode i et vist omfang.
I denne del af projektet arbejder du som en programmør: Du undersøger, tænker logisk, planlægger og prøver at komme frem til en løsning. Det er altså din proces og faglige forståelse, vi vurderer – ikke om du kan programmere alt fra A til Z. I denne opgave vurderer vi ikke bare selve koden, men især din proces og faglige forståelse. Det betyder, at du skal vise, at du kan:
Identificere relevante data og funktioner
Organisere din løsning med struktur og overblik
Forklare teknisk, hvad din kode gør og hvordan
Har styr på begreber som variabler, funktioner, loops, input/output osv.
Du kommer derfor til at arbejde i flere trin, der tilsammen viser din programmeringsforståelse:
Analyse – Du starter med at finde ud af, hvilke data og funktioner casen kræver, og hvordan de hænger sammen.
Strukturering af data – Du vælger passende variabler og datastrukturer (fx lister eller ordbøger), og visualiserer hvordan informationerne organiseres.
Flowdiagram – Du planlægger logikken i programmet og viser, hvad det skal gøre, trin for trin.
Klassediagram – Hvis din løsning arbejder med objekt-orienteret struktur, kan du vise det med et klassediagram.
Delvis implementering – Du kan kode hele produktet, men det er ikke et krav. Du koder en mindre, central del af løsningen, så man kan se, hvordan din idé fungerer i praksis.
Teknisk dokumentation – Du kommenterer din kode og forklarer teknisk, hvordan den virker og hænger sammen med casens behov.
Gennem disse trin viser du, at du forstår, hvordan man bruger programmering til at løse konkrete problemer – og hvordan man arbejder systematisk og fagligt med kode.
Når man arbejder med en programmeringsvinkel i et studieretningsprojekt, er det vigtigt at forstå problemet grundigt, før man begynder at kode. Det første trin er derfor at analysere casens indhold og identificere, hvilke oplysninger og funktioner, der skal håndteres i et digitalt system.
Du bør stille dig selv spørgsmål som:
Hvilke typer informationer (data) skal håndteres?
Hvad skal systemet kunne gøre med disse data?
Hvordan relaterer forskellige dataelementer sig til hinanden?
På baggrund af analysen skal du finde frem til hvilke variabler og datastrukturer (f.eks. lister, ordbøger, objekter/klasser) der er nødvendige for at kunne organisere og behandle informationen.
Eksempel:
Hvis casen handler om en festival, kan det være nødvendigt at holde styr på oplysninger om kunstnere, spilletider og scener. Det kunne fx gøres ved at bruge en liste af ordbøger, hvor hver ordbog indeholder information om én kunstner.
Det kan være nyttigt at notere disse ned i en tabel eller tegne en struktur. For at få overblik, kan det være en hjælp at tegne, hvordan oplysningerne hænger sammen. Det kan du gøre som en enkel tegning eller tabel, hvor du viser:
Hvilke typer information du skal bruge
Hvilke "felter" eller detaljer hver ting skal indeholde
Om du skal have én ting eller en liste af flere
Forestil dig, at din case handler om en festival. Du vil gemme oplysninger om kunstnere. Hvis hver kunstner har tre ting: navn, tidspunkt og scene. Så kan du tegne det sådan her:
Kunstner:
- Navn
- Tidspunkt
- Scene
Hvis du skal have flere kunstnere, kan du tegne det som en liste:
kunstnere = [
["Band A", "14:00", "Hovedscenen"],
["DJ X", "15:30", "Electroteltet"]
]
Her er det en liste, hvor hvert element indeholder:Navn på kunstner,Tidspunkt,Scene. Det hjælper dig med at:
Forstå hvilke data dit program skal bruge
Planlægge hvilke variabler du skal lave
Skrive mere overskuelig kode senere
Du må gerne tegne det i hånden, som bokse eller tabeller – du behøver ikke bruge kode endnu. Det vigtige er, at du viser, hvordan oplysningerne skal organiseres.
Et flowdiagram er en visuel måde at vise, hvordan programmet arbejder trin for trin. Det hjælper både dig selv og andre med at forstå, hvad koden skal gøre, og i hvilken rækkefølge det sker.
Et godt flowdiagram viser centrale ting som:
Beslutninger (f.eks. if-sætninger)
Gentagelser (f.eks. loops)
Handlinger (f.eks. funktioner, input, output, beregninger)
Start med at kortlægge, hvordan programmet behandler data eller løser en opgave. Markér, hvor der træffes valg, og hvor bestemte handlinger udføres.
Eksempel: Hvis programmet skal hente data, tjekke om noget er gyldigt, behandle information og til sidst vise et resultat, skal hvert af disse trin vises i diagrammet. Pile viser, hvordan programmet bevæger sig fra det ene trin til det næste, alt efter hvad der sker.
Et flowdiagram hjælper dig med at planlægge din løsning før du koder – eller forklare, hvordan koden fungerer bagefter.
Hvis du arbejder med objektorienteret programmering (OOP), kan det være en fordel at lave et klassediagram. Det viser, hvordan forskellige klasser i din løsning hænger sammen, hvilke egenskaber (attributter) de har, og hvilke funktioner (metoder) de indeholder.
Et klassediagram gør det lettere at tænke struktureret og genbruge kode. Det hjælper dig også med at undgå for meget gentagelse og med at skabe en logisk opbygning i dit program.
Eksempel: En klasse Bruger kunne have attributter som navn, email, og metoder som logInd(). En anden klasse Produkt kunne have attributter som navn, pris, og en metode visProdukt().
Du skal ikke implementere alt det, klassediagrammet viser – men det er en god måde at få overblik og planlægge fremtiden.
Før du begynder at skrive rigtig kode, kan det være en stor hjælp at skrive din løsning i pseudokode. Det betyder, at du beskriver, hvad programmet skal gøre – trin for trin – i almindeligt sprog blandet med kode-lignende struktur, uden at skulle følge reglerne for syntaks.
Pseudokode er en måde at beskrive logikken bag dit program på, uden at tænke på præcis, hvordan det skal skrives i Python eller et andet sprog. Det er en slags "opskrift" på, hvad programmet skal gøre.
Det gør det lettere at:
Finde ud af hvad din kode skal indeholde
Dele din løsning op i små logiske trin
Undgå fejl og forvirring, når du senere skal skrive den rigtige kode
Vise, at du forstår den underliggende struktur og logik bag løsningen
Forestil dig, at du skal lave et program, der finder gennemsnittet af nogle tal. Her er et eksempel på, hvordan det kan se ud i pseudokode:
START
Lav en liste med tal
Sæt en variabel til at holde summen = 0
Gå gennem hvert tal i listen
Læg tallet til summen
Divider summen med antallet af tal
Vis resultatet
STOP
Det minder om rigtig kode – men det er skrevet i et mere forståeligt og frit sprog.
Inden man koder, for at planlægge løsningen
Sammen med flowdiagrammer, som en anden måde at vise logikken på
Som dokumentation, der viser dine tanker bag koden
Du må meget gerne inkludere pseudokode i din dokumentation for at vise, hvordan du har tænkt løsningen igennem – særligt hvis du ikke når at kode det hele. Det viser, at du forstår opgaven og kan oversætte problemet til programmeringstænkning.
Tip: Skriv pseudokode, som om du skulle forklare det til en anden – det skal være let at følge, men stadig struktureret og teknisk.
Det er ikke nødvendigt (eller forventet), at du kan programmere hele din løsning. Men det er vigtigt, at du viser, hvordan en del af løsningen kunne se ud i praksis gennem kodning.
Her kan du f.eks. vælge at implementere:
En funktion, der behandler nogle centrale data
En prototype af et brugerinterface
En klasse med grundlæggende funktionalitet
Når du skriver koden, er det vigtigt at bruge kommentarer og navngive dine funktioner og variabler tydeligt, så andre kan forstå dem.
Eksempel: Du kunne lave en funktion beregnTotalPris() der modtager en liste af produkter og returnerer summen. Det viser, at du forstår logikken og kan omsætte den til funktionel kode.
Når du har implementeret dele af din løsning, er det vigtigt, at du dokumenterer din kode teknisk, så det tydeligt fremgår, hvad koden gør, og hvordan den fungerer.
Du skal:
Skrive kommentarer direkte i koden, der forklarer funktionernes formål, hvilke input og output de arbejder med, og hvordan de centrale dele fungerer.
Lave en teknisk beskrivelse af din implementering. Her beskriver du i tekstform, hvilke funktioner eller klasser du har lavet, hvordan de hænger sammen, og hvordan de arbejder med data.
Brug faglige begreber fra programmering, såsom funktion, parameter, loop, objekt, returnværdi osv.
Den tekniske dokumentation handler ikke om at forklare dine valg eller refleksioner, men om at vise, at du forstår din egen kode, og at du kan formidle den korrekt og præcist med det rette fagsprog.
Eksempel:
Hvis du har skrevet en funktion beregnGennemsnit(data), så bør du i kommentarerne forklare, at data er en liste med tal. Funktionen gennemløber listen med en løkke, summerer alle værdier og dividerer med længden af listen for at finde gennemsnittet.
I den tekniske beskrivelse kan du forklare, for eksempel at funktionen har én parameter, anvender de indbyggede funktioner sum() og len(), og returnerer et enkelt tal som output.