Holdet F3d Pro (2025/26) - Undervisningsbeskrivelse

Undervisningsbeskrivelse

Stamoplysninger til brug ved prøver til gymnasiale uddannelser
Termin(er) 2024/25
Institution X - TEC
Fag og niveau Programmering B
Lærer(e) Kenneth Hebel
Hold 2024 Fd Pro (F2d Pro)

Oversigt over gennemførte undervisningsforløb
Titel 1 1: Udtryk, variable og funktionskald
Titel 2 2: Funktioner
Titel 3 3: Kontrolflow
Titel 4 4: Lister
Titel 5 5: Algoritmer
Titel 6 Bevægelser i 2D
Titel 7 6: SRC

Beskrivelse af de enkelte undervisningsforløb (1 skema for hvert forløb)

Titel 2 2: Funktioner

Eleverne får i dette forløb udvidet deres forståelse for det basale i programmering. Det gør de ved at bruge og modificere et program der kan outputte .SVG filer.

Eleverne bliver først øvet i at skrive deres egne funktioner i Python, og derefter får de udleveret et program der kan danne en simpel .SVG fil med rektangler. Projektarbejdet går ud på at videreudvikle programmet så det kan danne forskellige former (cirkler og polygoner), samt at farvelægge formerne.

Fagligt indhold

    - Funktionsdefinitioner (def, returnværdier, argumenter)
    - Funktionskald (argumenter)
    - Dokumentation af kode (docstrings)
    - String manipulation (concatenation, typecasting)


Faglige mål
    - realisere simple krav i simple velstrukturerede programmer
    - bruge programmering til at undersøge et emne
    - arbejde inkrementelt og systematisk i programmeringsprocessen.

Kernestof
    - programmeringssprog og elementer i programmers opbygning, herunder variabler, typer, udtryk, parametrisering/abstraktionsmekanismer.
    - arbejdsgange og systematik i programmeringsprocessen, herunder test og fejlfinding
    - dokumentation
Indhold
Kernestof:
Omfang Estimeret: 12,00 moduler
Dækker over: 4 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer

Titel 3 3: Kontrolflow

Eleverne får i dette forløb udvidet deres forståelse for det basale i programmering. Det gør de ved at videreudvikle på et tekstbaseret spil der foregår i konsollen.

Igennem dette forløb bliver eleverne trænet i forgreninger og løkker. Først igennem en række øvelser i if/else-logik og while-loops. Derefter igennem programmering af et tekstadventure. Eleverne bliver desuden introduceret til teksteditoren Visual Studio Code og hvordan at man kan køre kode vha. dette software.

Fagligt indhold

    - Forgreninger (boolske værdier, boolsk logik, boolske operatorer)
    - Løkker (while-loops)
    - Brugerinput (kommandoer)
    - Dokumentation af kode (Flowdiagram)

Faglige mål
    - bruge programmering til at undersøge et emne eller problemområde, med henblik på – via programmets funktion - at skabe ny indsigt eller til at løse et problem
    - anvende avancerede konstruktioner i et programmeringssprog
    - redegøre for arkitekturen af programmer på forskellige abstraktionsniveauer, herunder relationen mellem brug og funktion
    - redegøre for simple specifikationsmodeller og realisere disse i simple velstrukturerede programmer
    - arbejde inkrementelt og systematisk i programmeringsprocessen.

Kernestof
    - programmeringssprog og elementer i programmers opbygning, herunder variabler, typer, udtryk, kontrolstrukturer, parametrisering/abstraktionsmekanismer
    - arkitekturen for programmers interaktion med omgivelserne med henblik på hændelsesstyret interaktion
    - arbejdsgange og systematik i programmeringsprocessen, herunder test og fejlfinding
    - abstrakte programmeringsbeskrivelser og dokumentation.
Indhold
Kernestof:

Skriftligt arbejde:
Titel Afleveringsdato
If, Else og Flowchart 11-10-2024
Omfang Estimeret: 16,00 moduler
Dækker over: 6 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer

Titel 4 4: Lister

Eleverne får i dette forløb udvidet deres forståelse for det basale i programmering. Det gør de ved at videreudvikle på et tekstbaseret spil der foregår i konsollen.

Igennem dette forløb bliver eleverne trænet i lister og løkker der itere over listernes indhold. Eleverne bygger enten oven på det tekst-adventure de lavede i forløbet "Kontrolflow" eller bygger ovenpå et tekstadventure-template udleveret af læreren.

Fagligt indhold

    - Datastruktur (Lister)
    - Løkker (for-loops)

Faglige mål
    - bruge programmering til at undersøge et emne eller problemområde, med henblik på – via programmets funktion - at skabe ny indsigt eller til at løse et problem
    - anvende avancerede konstruktioner i et programmeringssprog
    - redegøre for arkitekturen af programmer på forskellige abstraktionsniveauer, herunder relationen mellem brug og funktion
    - arbejde inkrementelt og systematisk i programmeringsprocessen.

Kernestof
    - programmeringssprog og elementer i programmers opbygning, herunder variabler, typer, udtryk, kontrolstrukturer, parametrisering/abstraktionsmekanismer
    - arkitekturen for programmers interaktion med omgivelserne med henblik på hændelsesstyret interaktion
    - arbejdsgange og systematik i programmeringsprocessen, herunder test og fejlfinding
Indhold
Kernestof:

Skriftligt arbejde:
Titel Afleveringsdato
Tekst-adventure 15-11-2024
Text-adventure part 2 18-12-2024
Omfang Estimeret: 7,00 moduler
Dækker over: 12 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer

Titel 5 5: Algoritmer

Eleverne får i dette forløb forståelse for algoritmisk tænkning. Det gør de ved at analysere spillet 4-på-stribe og selv finde frem til hvilke algoritmer der er tilstede i det spil. De skal altså på selvstændig vis analysere et regelsæt og på den baggrund udvikle algoritmer der kan placere brikker i et multidimensionelt array, samt tjekke for forskellige winconditions.

Dette forløb starter med analoge øvelser, hvor eleverne skal skrive pseudokode for 4-på-stribe og agere hhv. computer, program og bruger. Derefter skal de implementere deres egen pseudokode i et python program. Der er fokus på problemløsnings kompetencer.  

Fagligt indhold

    - Datastruktur (Nestede Lister)
    - Løkker (for-loops)
    - Pseudokode
    - Flowdiagrammer
    - Fra problem til løsning
    - Fejlfinding (snak-om-koden, læs-koden, print()-debugging og debugging-tools)

Faglige mål
    - bruge programmering til at undersøge et emne eller problemområde, med henblik på – via programmets funktion - at skabe ny indsigt eller til at løse et problem
    - anvende avancerede konstruktioner i et programmeringssprog
    - redegøre for simple specifikationsmodeller og realisere disse i simple velstrukturerede programmer samt teste disse
    - demonstrere viden om fagets identitet og metoder
    - arbejde inkrementelt og systematisk i programmeringsprocessen.

Kernestof
    - programmeringssprog og elementer i programmers opbygning, herunder variabler, typer, udtryk, kontrolstrukturer, parametrisering/abstraktionsmekanismerm, rekursion og algoritmemønstre
    - arkitekturen for programmers interaktion med omgivelserne med henblik på hændelsesstyret interaktion
    - arbejdsgange og systematik i programmeringsprocessen, herunder test og fejlfinding
    - abstrakte programmeringsbeskrivelser og dokumentation.
Indhold
Kernestof:
Omfang Estimeret: 10,00 moduler
Dækker over: 8 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer

Titel 6 Bevægelser i 2D

Tværfagligt forløb mat/pro
I dette projekt er formålet at forstå en 2-dimensionel bevægelse, herunder hvordan tyngdekraften påvirker legemet (en basketball) under bevægelsen, derefter bruge sin matematiske forståelse til at skabe et program der simulerer et kast.

Eleverne skal lave et program der tager højde for tyngdekraft som parameter, når der skydes en bold. Kollisionen med kurven skal beslutte, hvorvidt spilleren rammer, eller bolden bliver skudt væk. Spilleren skal have mulighed for at se den potentielle bue på deres skud inden de skyder, så de har mulighed for at se hvor de rammer.  

Programmet udvikles i Python.
Indhold
Kernestof:
Omfang Estimeret: 6,00 moduler
Dækker over: 6 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer

Titel 7 6: SRC

Eleverne får i dette forløb forståelse for objekt-orienteret programmering og at benytte biblioteksmoduler.

Det gør de ved at udvikle et simpelt 2D spil vha. Python og PyGame. Forløbet starter ud med en gennemgang af PyGames mest basale moduler igennem en forklaring af designmønstret Model View Controller (MVC).

Her får eleverne en forståelse af hvordan et spil ofte er bygget op af modeller, der vises på en skærm og opdateres på baggrund af input fra spilleren. I starten af forløbet får eleverne blot træning i at lave modeller, vise dem på skærmen og interagere med disse. Men når eleverne skal til at udvide kompleksiteten i deres spil, viser jeg dem hvorfor at det er smart at benytte objekt-orienteret programmering til dette. Dermed får de også indblik i hvordan man nedarver metoder fra PyGames klasser, og eleverne får oprettet sine egne typer af spilobjekter. Elevernes egne klasser baseres på klassediagrammer som de også selv laver.

Fagligt indhold

    - Datastruktur (Klasser og Objekter)
    - Model-View-Controller - Designmønster
    - Klassediagrammer
    - Collision-detection

Faglige mål
    - bruge programmering til at undersøge et emne eller problemområde, med henblik på – via programmets funktion - at skabe ny indsigt eller til at løse et problem
    - anvende avancerede konstruktioner i et programmeringssprog
    - redegøre for arkitekturen af programmer på forskellige abstraktionsniveauer, herunder relationen mellem brug og funktion
    - redegøre for simple specifikationsmodeller og realisere disse i simple velstrukturerede programmer samt teste disse
    - rette, tilpasse og udvide avancerede programmer
    - demonstrere viden om fagets identitet og metoder
    - arbejde inkrementelt og systematisk i programmeringsprocessen.

Kernestof
    - programmeringssprog og elementer i programmers opbygning, herunder variabler, typer, udtryk, kontrolstrukturer, parametrisering/abstraktionsmekanismer og polymorfi
    - arkitekturen for programmers interaktion med omgivelserne med henblik på hændelsesstyret interaktion
    - generiske programdele og biblioteksmoduler
    - arbejdsgange og systematik i programmeringsprocessen, herunder test og fejlfinding
    - abstrakte programmeringsbeskrivelser og dokumentation.
Indhold
Kernestof:
Omfang Estimeret: 15,00 moduler
Dækker over: 19 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer